[发明专利]一种基于列存数据库对海量数据进行高效的批量更新方法在审
申请号: | 201910789871.9 | 申请日: | 2019-08-26 |
公开(公告)号: | CN110515950A | 公开(公告)日: | 2019-11-29 |
发明(设计)人: | 赵伟;张海亮 | 申请(专利权)人: | 江苏华库数据技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28;G06F16/23;G06F16/2455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 命中 更新 存储单元 海量数据 内容更新 未命中 目标存储单元 数据存储单元 磁盘空间 更新操作 更新内容 批量更新 写入 数据库 膨胀 查询 重复 保证 | ||
本发明公开了一种基于列存数据库中对海量数据进行高效的批量更新方法,包括如下步骤:首先将每列的数据被切分成多个存储单元,每个存储单元中包含多个block;定义block的命中状态为未命中、部分命中、全命中,更新时查询block的命中状态,若未命中,说明当前block完全没有需要更新的内容,若部分命中,说明该block有部分需要更新的内容,若全命中,说明该block的内容需要全部更新,再写入目标存储单元;进行下一个block更新,有新的内容更新时重复之前的步骤,没有新的内容更新时更新内容即可结束。此方法保证数据存储单元的连续性;杜绝了磁盘空间的浪费,海量数据的更新操作也不会造成数据膨胀。
技术领域
本发明涉及数据库更新技术领域,尤其涉及一种基于列存数据库中对海量数据进行高效的批量更新方法。
背景技术
在电信、金融、互联网等许多领域,数据已经渗透到每一个行业和业务职能领域,如何对海量数据进行发掘与应用,决定着行业与企业未来发展的深度与广度。随着数据的不断积累,如何对海量数据进行高效的更新则是大数据时代各数据库厂商需要解决的问题。
列存数据库中,数据是以列为单位进行组织的,每列数据又被划分成多个block进行管理。当对海量数据进行批量更新时,涉及到更新的列文件中大部分数据将会被更新,现有更新策略是对更新行的原有存储位置设置无效标记,表示该行数据已经无效,并把更新后的数据行追加到数据存储位置的末尾。这种更新方式对于小数据量的更新比较合适,但是对于海量数据的批量更新却不合适,有如下缺点:
1.更新性能的效率低下,严重影响业务的执行效率;
2.浪费大量存储空间,数据膨胀严重;
3.大量的无效数据会导致读取数据时的I/O浪费严重,从而影响查询效率。
发明内容
本发明的目的在于提供一种基于列存数据库中对海量数据进行高效的批量更新方法,能够提高对海量数据进行更新的效率,提升业务执行的整体效率。数据分析场景OLAP中的批量更新是指单条update sql能够更新较多数据。
为实现上述目的,本发明提供如下技术方案:一种基于列存数据库中对海量数据进行高效的批量更新方法包括以下步骤:步骤一:首先将每列的数据被切分成多个存储单元,每个存储单元中包含多个block,更新时以block为单位进行,遍历该列所有的block数据,查询条件命中的行更新成新值,未命中的行采用原值,将涉及到更新的列文件重新生成,生成完毕后进行新旧数据版本的切换;
步骤二、定义block的命中状态为未命中、部分命中、全命中,更新时查询block的命中状态,若未命中,说明当前block完全没有需要更新的内容,从源数据文件中直接取出再写入新存储单元即可,不需要解压缩;若部分命中,说明该block有部分需要更新的内容,需要把该block从源数据文件中读取出来并解压缩,根据表中需要更新的行号以及更新的内容一起重新构建block,再写入目标存储单元;若全命中,说明该block的内容需要全部更新,则这个block不再需要读取源数据文件中的信息,直接根据新的内容重新构建block,再写入目标存储单元;
步骤三、进行下一个block更新,有新的内容更新时重复步骤一即可,没有新的内容更新时更新内容即可结束。
作为优选,所述的步骤一中同时更新表中多列数据时,每列数据更新的行号是一样的,并且每列数据在where条件中对应的block的命中状态也是一样的,依次执行更新即可;
与现有技术相比,本发明的有益效果是:1、批量写数据(单个存储单元通常大小为128M-2G),磁盘执行连续大块数据写入,写入性能通常可以达到磁盘写入的最优性能,并且由于是列存储,只维护更新列数据,I/O浪费较少;
2、保证数据存储单元的连续性(整块存储单元重写),不会因为频繁的更新导致查询性能下降;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏华库数据技术有限公司,未经江苏华库数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910789871.9/2.html,转载请声明来源钻瓜专利网。