基于列存储的数据更新方法、装置、服务器及存储介质制造方法及图纸

技术编号:19692577 阅读:19 留言:0更新日期:2018-12-08 11:22
本发明专利技术公开了一种基于列存储的数据更新方法、装置、服务器及存储介质,涉及数据库领域,该方法包括:获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值;将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中;根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区;根据所述数据区的数据和所述待更新数据,重新计算所述数据区的统计信息,并修改所述列存储表对应的列存储辅助表中与所述统计信息对应的记录。本发明专利技术采用上述技术方案,提高了基于列存储的数据的更新效率。

【技术实现步骤摘要】
基于列存储的数据更新方法、装置、服务器及存储介质
本专利技术实施例涉及数据库
,尤其涉及一种基于列存储的数据更新方法、装置、服务器及存储介质。
技术介绍
随着大数据技术的不断发展,数据库中包含的数据量急剧增加,对传统的基于行存储模式的查询性能提出了挑战。目前,为了提高数据库查询性能,人们开始考虑一种与传统行存储不同的存储方式——列存储。列存储技术是将数据表以列为单位进行存储,相同列的数据存储在一个数据文件中或者按照数据规模存储在多个文件中。列存储方式固然可以提高数据查询性能,但是在进行数据更新时,对多个字段的更新需要分别对不同的列对应的存储文件进行定位和更新,因此数据的更新性能低于行存储方式。
技术实现思路
有鉴于此,本专利技术实施例提供一种基于列存储的数据更新方法、装置、服务器及存储介质,以提高列存储表的数据更新效率。第一方面,本专利技术实施例提供了一种基于列存储的数据更新方法,所述方法包括:获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值;将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中;根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区;根据所述数据区的数据和所述待更新数据,重新计算所述数据区的统计信息,并修改所述列存储表对应的列存储辅助表中与所述统计信息对应的记录。第二方面,本专利技术实施例还提供了一种基于列存储的数据更新装置,所述装置包括:待更新数据获取模块,用于获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值;插入模块,用于将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中;数据区确定模块,用于根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区;记录修改模块,用于根据所述数据区的数据和所述待更新数据,重新计算所述数据区的统计信息,并修改所述列存储表对应的列存储辅助表中与所述统计信息对应的记录。第三方面,本专利技术实施例还提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任一实施例所述的基于列存储的数据更新方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任一实施例所述的基于列存储的数据更新方法。本专利技术通过利用更新辅助表来记录列存储表中的待更新数据,从而将对列存储表的更新转化为对更新辅助表的插入,从而避免了对数据文件进行读写,解决了数据更新效率较低的问题,提高了基于列存储的数据的更新效率。附图说明图1是本专利技术实施例一提供的基于列存储的数据更新方法的流程图;图2是本专利技术实施例二提供的基于列存储的数据更新方法的流程图;图3是本专利技术实施例三提供的基于列存储的数据更新装置的结构示意图;图4是本专利技术实施例四提供的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。实施例一图1是本专利技术实施例一提供的一种基于列存储的数据更新方法的流程图,本实施例可适用于对基于列存储的数据进行更新的情况,该方法可以由基于列存储的数据更新装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在服务器中,如图1所示,本实施例提供的技术方案具体如下:步骤110,获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值。列存储就是把数据以列为单位进行存储,其具体存储规则和管理实现方式会直接决定列存储表的操作效率。所有数据均存储在列存储表中。其中,列存储表是将每一列数据按照一定的预先设定的行数进行分区存储,这样的区称为数据区,预先设定的行数称为区大小。同一个数据区中的数据存储在同一个数据文件中,一个数据文件可以存储一到多个数据区。同一列数据形成的数据区直接存储在一个数据文件或按照数据规模存储在多个数据文件中,并辅以列存储辅助表、插入辅助表和删除辅助表。插入辅助表的结构为行存储的形式,用于缓存向列存储表插入的数据,且缓存的数据的行数小于列存储表中的数据区的区大小。当插入辅助表中的数据行数达到区大小时,把插入辅助表中的数据以列为单位写入每个列对应的数据文件,然后清空插入辅助表。删除辅助表的结构为行存储的形式,用于按照数据区记录每个数据区中的删除的数据,具体的,删除辅助表可以记录要删除的数据所在的行号,在删除的数据为连续多行的数据时,可以记录要删除的数据的起始行号及对应的删除行数。其中,列存储辅助表用于记录每个列的每个区在数据文件中的偏移地址和数据长度等控制信息,以及每个区中存储的列值的最大值和最小值等统计信息,存储形式为行存储。可选的,列存储辅助表的结构如表1所示,其中的统计信息为辅助表查询使用。表1列存储辅助表结构下面对上述列存储表的结构进行解释说明:1)列号:该列在创建表时表定义中对应的序号;2)区号:不同的数据区会有不同的编号,数据区所对应的编号为区号;3)文件号:数据文件所对应的文件编号;4)文件中的偏移:当前数据区在数据文件中的偏移字节,例如,若三个数据区保存到同一个数据文件中,则第一个数据区的文件中的偏移为0,第二个数据区的文件中的偏移为第一个数据区占用的数据空间,第三个数据区的文件中的偏移为第一个和第二个数据区占用的数据空间。5)区大小:数据区所能存储数据的总行数,是用户预先设定的;6)区内有效数据行数:去除删除数据后数据区中数据的行数;7)数据占用空间大小:数据存储所占用的字节数;8)包括的空(NULL)值的行数:数据区中的数据中空值所占的行数;9)所有数据互不相同的行数:列存储表中所存储的数据中互不相同的数据所占的行数;10)区内最大值:数据区中的最大数据值;11)区内最小值:数据区中的最小数据值;12)区内所有值的和:数据区内所有数据值得总和。其中,列存储辅助表中的列号、区号、文件号、数据占用空间大小、文件中的偏移为控制信息;区内最大值、区内最小值、区内所有值的和、区大小、区内有效数据行数、包括的空值的行数及所有数据互不相同的行数为统计信息。本申请实施例中的待更新数据可以是任意需要更新的数据对象,示例性地,可以是学生数据对象,其中,学生数据对象通常包含学生的姓名、性别、学号、年龄、年级等字段,或是老师数据对象,其中,老师数据对象通常包含姓名、年龄、教龄、薪资等字段。可选的,待更新数据也可以是数据对象中的某一字段,示例性的,可以是学生数据对象中的年龄或年级等。可选的,待更新数据也可以包括待更新数据所在的行号或列号。示例性地,可以是某学生数据对象所在的行号。待更新数据可以包括更新数据对象的值、数据对象所在的行号和数据对象所在的列号,每次进行更新时,可以一次更新若干条记录,每条记录包括所述行号、所述列号和更新后的值。可选的,获取待更新数据包括:获取列存储表的更新语句,并根据所述更新语句,确定所述待更新数据。获取待更新数据可以通过首先获取列存储表的更新语句,并根据所述更新语句,确定所述待更新数据。步骤120,将所述行号、列号及更新后的值插本文档来自技高网...

【技术保护点】
1.一种基于列存储的数据更新方法,其特征在于,所述方法包括:获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值;将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中;根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区;根据所述数据区的数据和所述待更新数据,重新计算所述数据区的统计信息,并修改所述列存储表对应的列存储辅助表中与所述统计信息对应的记录。

【技术特征摘要】
1.一种基于列存储的数据更新方法,其特征在于,所述方法包括:获取列存储表的待更新数据,所述待更新数据包括待更新的行号、列号及更新后的值;将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中;根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区;根据所述数据区的数据和所述待更新数据,重新计算所述数据区的统计信息,并修改所述列存储表对应的列存储辅助表中与所述统计信息对应的记录。2.根据权利要求1所述的方法,其特征在于,将所述行号、列号及更新后的值插入到所述列存储表对应的更新辅助表中,包括:根据所述行号和所述列号,扫描所述更新辅助表中的记录;若所述更新辅助表中存在所述行号和所述列号的记录,则将所述更新辅助表中对应的更新的值修改为所述更新后的值;若所述更新辅助表中不存在所述行号和所述列号的记录,则将所述行号、列号及更新后的值插入到所述更新辅助表中。3.根据权利要求1所述的方法,其特征在于,获取待更新数据包括:获取列存储表的更新语句,并根据所述更新语句,确定所述待更新数据。4.根据权利要求1所述的方法,其特征在于,根据所述行号和所述列号,确定所述待更新数据在所述列存储表中对应的数据区,包括:根据所述行号和所述列号,在所述列存储辅助表中查询确定所述待更新数据对应的数据区。5.根据权利要求1所述的方法,其特征在于,还包括:在预设时间,将所述更新辅助表中的数据写入所述列存储表对应的数据文件。6.一种基于列存储的数据更新装置,其特征在于,所述装置包括:待更新数据获取...

【专利技术属性】
技术研发人员:郭琰王攀周智伟
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1