CN109828974A - 数据重整方法、装置、设备和存储介质 - Google Patents
数据重整方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109828974A CN109828974A CN201910149673.6A CN201910149673A CN109828974A CN 109828974 A CN109828974 A CN 109828974A CN 201910149673 A CN201910149673 A CN 201910149673A CN 109828974 A CN109828974 A CN 109828974A
- Authority
- CN
- China
- Prior art keywords
- data
- initial data
- supplementary table
- reforming
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据重整方法、装置、设备和存储介质,其中该方法包括:获取数据重整请求,数据重整请求中包括待重整的列存储表的标识;根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中;其中,原始数据包括原始数据区中的数据和插入辅助表中的数据。本发明实施例通过将列存储表中的数据和插入辅助表中的数据进行数据整理之后重新写入重整数据区中,实现了数据重整,使得数据重整之后的列存储表在进行数据查询时,其查询效率得到大幅提高。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据重整方法、装置、设备和存储介质。
背景技术
传统的存储数据的方式是行存储,但是行存储的查询性能较低。为了提高数据查询性能,用列存储方式存储数据的方法应运而生。
列存储表的查询性能固然优于行存储表,但是其增删改性能低于行存储表。为了提高列存储表的增删改性能,可以使用辅助表的方法用于存储增删改的数据。辅助表虽然能提高列存储表的增删改性能,但是当辅助表中的数据较多时,反而会降低列存储表的查询性能。
发明内容
本发明实施例提供了一种数据重整方法、装置、设备和存储介质,可以解决现有技术中采用辅助表的列存储表的查询性能低的技术问题。
第一方面,本发明实施例提供了一种数据重整方法,包括:
获取数据重整请求,所述数据重整请求中包括待重整的列存储表的标识;
根据所述列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
基于所述操作辅助表对原始数据执行对应的操作,将执行操作之后的所述原始数据写入重整数据区中;
其中,所述原始数据包括所述原始数据区中的数据和所述插入辅助表中的数据。
进一步的,所述原始数据区的数量为至少一个,基于所述操作辅助表对原始数据执行对应的操作之前,还包括:
分别确定各所述原始数据区是否满足预设的数据重整条件,若是,则执行所述基于所述操作辅助表对原始数据执行对应的操作,其中所述数据重整条件为该原始数据区存在数据更新或者数据删除。
进一步的,所述操作辅助表包括删除辅助表和更新辅助表。
进一步的,基于所述操作辅助表对原始数据执行对应的操作,包括:
根据所述删除辅助表中的删除数据对所述原始数据进行删除,得到有效数据,所述删除数据包括删除行的行号;
根据所述更新辅助表中的更新数据对所述有效数据进行更新,所述更新数据包括更新值和更新位置。
进一步的,基于所述操作辅助表对原始数据执行对应的操作之前,还包括:获取原始数据,
所述获取原始数据,包括:
基于预设的列存储辅助表获取所述原始数据区中的数据,作为第一原始数据;
获取所述插入辅助表中的数据,作为第二原始数据。
进一步的,所述重整数据区包括所述原始数据区和新增数据区,
将执行操作之后的所述原始数据写入重整数据区中,包括:
将执行删除和更新操作之后的所述第一原始数据写入所述原始数据区中;
将执行删除和更新操作之后的所述第二原始数据写入所述新增数据区中。
进一步的,将执行操作之后的所述原始数据写入重整数据区中之后,还包括:
获取所述重整数据区的物理信息和统计信息,并根据所述物理信息和所述统计信息更新预设的列存储辅助表。
第二方面,本发明实施例还提供了一种数据重整装置,该装置包括:
请求获取模块,用于获取数据重整请求,所述数据重整请求中包括待重整的列存储表的标识;
数据获取模块,用于根据所述列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
数据重整模块,用于基于所述操作辅助表对原始数据执行对应的操作,将执行操作之后的所述原始数据写入重整数据区中;
其中,所述原始数据包括所述原始数据区中的数据和所述插入辅助表中的数据。
进一步的,所述原始数据区的数量为至少一个,所述装置还包括数据重整判断模块,所述数据重整判断模块具体用于:基于所述操作辅助表对原始数据执行对应的操作之前,
分别确定各所述原始数据区是否满足预设的数据重整条件,若是,则执行所述基于所述操作辅助表对原始数据执行对应的操作,其中所述数据重整条件为该原始数据区存在数据更新或者数据删除。
进一步的,所述操作辅助表包括删除辅助表和更新辅助表。
进一步的,所述数据重整模块包括操作单元,所述操作单元具体用于:
根据所述删除辅助表中的删除数据对所述原始数据进行删除,得到有效数据,所述删除数据包括删除行的行号;
根据所述更新辅助表中的更新数据对所述有效数据进行更新,所述更新数据包括更新值和更新位置。
进一步的,所述装置还包括原始数据模块,所述原始数据模块用于:基于所述操作辅助表对原始数据执行对应的操作之前,获取原始数据,
所述获取原始数据,包括:
基于预设的列存储辅助表获取所述原始数据区中的数据,作为第一原始数据;
获取所述插入辅助表中的数据,作为第二原始数据。
进一步的,所述重整数据区包括所述原始数据区和新增数据区,所述数据重整模块还包括数据写入单元,所述数据写入单元具体用于:
将执行删除和更新操作之后的所述第一原始数据写入所述原始数据区中;
将执行删除和更新操作之后的所述第二原始数据写入所述新增数据区中。
进一步的,所述装置还包括列存储辅助表模块,所述列存储辅助表模块具体用于:将执行操作之后的所述原始数据写入重整数据区中之后,
获取所述重整数据区的物理信息和统计信息,并根据所述物理信息和所述统计信息更新预设的列存储辅助表。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的数据重整方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据重整方法。
本发明实施例通过获取数据重整请求,数据重整请求中包括待重整的列存储表的标识,根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表,并基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中。本发明实施例通过将列存储表中的数据和插入辅助表中的数据进行数据整理之后重新写入重整数据区中,实现了数据重整,使得数据重整之后的列存储表在进行数据查询时,其查询效率得到大幅提高。
附图说明
图1为本发明实施例一中的数据重整方法的流程图;
图2为本发明实施例一中的数据重整过程的示意图;
图3为本发明实施例二中的数据重整方法的流程图;
图4为本发明实施例三中的数据重整装置的结构示意图;
图5为本发明实施例四中的设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的数据重整方法的流程图,本实施例可适用于实现数据库中列存储表数据重整的情况,该方法可以由数据重整装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于设备中,例如该设备可以为电脑、平板或者智能手机等。
图2为本发明实施例一中的数据重整过程的示意图,由于本实施例中针对的列存储表是指包括辅助表的列存储表,本实施例中的原始数据包括列存储表对应的原始数据区中的数据和插入辅助表中的数据,图中对原始数据进行删除和更新之后,将其存储进重整数据区中,图中的重整数据区包括原始数据区和为插入辅助表中的数据建立的新增数据区。
如图1所示,该方法具体可以包括:
S110、获取数据重整请求,数据重整请求中包括待重整的列存储表的标识。
其中,数据重整是指数据库中对其中的列存储表以及其辅助表进行数据整理和重新存储的处理。由于本实施例中针对的列存储表为了提高列存储表的增删改性能,使用辅助表存储增删改的相关数据,因此数据重整的处理中包括处理辅助表中的数据。
具体的,数据重整装置可以接收用户发送的数据重整请求,也可以接收数据库中进行其他操作(例如查询操作)时发送的数据重整请求,具体的数据重整请求的来源本实施例中不作限定。进一步的,该数据重整请求中可以包括待重整的列存储表的标识,其中标识用于区分待重整的列存储表,标识的具体形式可以根据实际情况进行设定,例如可以通过字母或者数据进行表示。
S120、根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表。
其中,列存储表中的数据以列为单位存储为一个或多个数据区,具体为每列可以按照预设的行数为单位存储为一个或多个数据区,本实施例中将该数据区称为原始数据区。本实施例中以列存储表对应一个原始数据区为例进行说明。
本实施例中的列存储表关联的辅助表包括操作辅助表和插入辅助表,操作辅助表可以包括删除辅助表和更新辅助表。插入辅助表用于记录插入列存储表中的数据,删除辅助表用于记录原始数据区中被删除的数据,更新辅助表用于记录原始数据区中被更新的数据。
具体的,获取到数据重整请求之后,可以根据数据重整请求中的列存储表的标识通过预设在数据重整装置中的查找程序或者查找算法获取对应的原始数据区、插入辅助表和操作辅助表。
S130、基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中。
其中,原始数据包括原始数据区中的数据和插入辅助表中的数据,原始数据区中的数据为数据重整之前的列存储表中的数据。可选地,基于操作辅助表对原始数据执行对应的操作之前,还包括:获取原始数据。并且S130之前,还需要判断原始数据区是否存在数据删除或者更新,若不存在则不需要执行S130,若存在则执行S130。
具体的,由于操作辅助表可以包括删除辅助表和更新辅助表,基于操作辅助表对原始数据执行对应的操作,可以包括:根据删除辅助表中的删除数据对原始数据进行删除,得到有效数据,删除数据包括删除行的行号;根据更新辅助表中的更新数据对有效数据进行更新,更新数据包括更新值和更新位置。
其中,数据在原始数据区中的行偏移与其行号的关系可以表示为:rowid=n+a*b,其中rowid表示行号,n表示行偏移,a表示原始数据区的大小,b表示原始数据区的区号(即ID)。根据上述行偏移与其行号的关系,可以把原始数据区中数据在删除辅助表中有记录的数据删除。对于插入辅助表中的数据可以直接根据删除辅助表中的删除行的行号将其对应的数据删除。进一步的,对原始数据进行删除操作得到有效数据之后,根据更新辅助表中的更新位置将有效数据中对应的数据替换为更新值,实现有效数据的更新。
进一步的,重整数据区包括原始数据区和新增数据区,将执行操作之后的原始数据写入重整数据区中,包括:将执行删除和更新操作之后的第一原始数据写入原始数据区中;将执行删除和更新操作之后的第二原始数据写入新增数据区中。本实施例中,可以将原始数据区中的数据称为第一原始数据,将插入辅助表中的数据称为第二原始数据。
本实施例的技术方案,通过获取数据重整请求,数据重整请求中包括待重整的列存储表的标识,根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表,并基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中。本实施例通过将列存储表中的数据和插入辅助表中的数据进行数据整理之后重新写入重整数据区中,实现了数据重整,使得数据重整之后的列存储表在进行数据查询时,其查询效率得到大幅提高。
实施例二
图3为本发明实施例二中的数据重整方法的流程图。本实施例在上述实施例的基础上,对上述数据重整方法进行了进一步的具体化。相应的,如图3所示,本实施例的方法具体包括:
S210、获取数据重整请求,数据重整请求中包括待重整的列存储表的标识。
S220、根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表。
本实施例中的列存储表关联的辅助表包括操作辅助表和插入辅助表,操作辅助表可以包括删除辅助表和更新辅助表。
S230、确定各原始数据区中满足预设的数据重整条件的原始数据区。
具体的,分别确定各原始数据区是否满足预设的数据重整条件,对于满足预设的数据重整条件原始数据区,其为确定的原始数据区。
本实施例中的原始数据区的数量为两个或两个以上。其中,数据重整条件为预先设定用于确定一个原始数据区是否需要进行数据重整的条件。数据重整条件为该原始数据区存在数据更新或者数据删除。
具体的,当原始数据区的数量为两个或两个以上时,依次遍历每个原始数据区或者并行遍历每个原始数据区,确定各原始数据区是否满足预设的数据重整条件,若一个原始数据区中不存在数据更新或者数据删除,则该原始数据区不需要进行数据重整,若一个原始数据区中存在数据更新或者数据删除,则对该原始数据区需要进行数据重整。
进一步的,本实施例中可以在每个原始数据区的统计信息中添加该原始数据区是否存在更新或者删除的标志,具体的标志形式可以根据需要进行设定,例如更新标志可以通过“UPD_FLAG”来表示,删除标志可以通过“DEL_FLAG”来表示。当原始数据区进行更新或者删除时,可以把更新标志和删除标志的值设置为“TRUE”,当数据区重整完成后,可以把更新标志和删除标志的值重置为“FALSE”。
确定各原始数据区是否满足预设的数据重整条件时,只需判断该原始数据区的更新标志和删除标志的值即可实现,当该原始数据区的更新标志和删除标志的值均为“FALSE”时,该原始数据区不需要进行数据重整,当该原始数据区的更新标志和删除标志的值为其他任何值时,该原始数据区均满足数据条件。
由于原始数据区的数量为两个或两个以上,本实施例中的数据重整是以数据区为单位进行的,对于满足预设的数据重整条件的各原始数据区,分别执行S240,对于不满足预设的数据重整条件的各原始数据区,则不进行数据重整。
需要说明的是,对于插入辅助表的数据,由于需要在列存储表中添加数据,则不需要进行是否满足数据重整条件的判断,总是需要进行数据重整。
S240、获取原始数据。
其中,原始数据包括原始数据区中的数据和插入辅助表中的数据,原始数据区中的数据为数据重整之前的列存储表中的数据。并且,原始数据区为S230中确定的满足预设的数据重整条件的原始数据区。
具体的,获取原始数据,可以包括:基于预设的列存储辅助表获取原始数据区中的数据,作为第一原始数据;获取插入辅助表中的数据,作为第二原始数据。进一步的,基于列存储表中存储的物理信息可以获取原始数据区中的数据,将原始数据区中的数据确定为第一原始数据;直接提取插入辅助表中的数据,将插入辅助表中的数据确定为第二原始数据。
其中,列存储辅助表也属于辅助表中的一个,列存储辅助表中记录原始数据区的物理信息和统计信息,在对列存储表的数据进行查询时可以通过该列存储辅助表进行辅助查询。物理信息为与原始数据区本身相关的属性信息,统计信息为与原始数据区内的数据相关的信息。可选地,物理信息包括原始数据区的列号、区号、数据文件的文件号、该原始数据区的数据占用空间大小(字节数)及该原始数据区中的数据在数据文件中的偏移等,而统计信息包括原始数据区的区内最大值、区内最小值、区内所有值的和、原始数据区大小(即包括的数据的行数)等的至少一项。
S250、根据删除辅助表中的删除数据对原始数据进行删除,得到有效数据。
其中,删除数据包括删除行的行号。数据在原始数据区中的行偏移与其行号的关系可以表示为:rowid=n+a*b,其中rowid表示行号,n表示行偏移,a表示原始数据区的大小,b表示原始数据区的区号(即ID)。根据上述行偏移与其行号的关系,可以把原始数据区中数据在删除辅助表中有记录的数据删除。对于插入辅助表中的数据可以直接根据删除辅助表中的删除行的行号将其对应的数据删除。
S260、根据更新辅助表中的更新数据对有效数据进行更新。
其中,更新数据包括更新值和更新位置。具体的,对原始数据进行删除操作得到有效数据之后,根据更新辅助表中的更新位置将有效数据中对应的数据替换为更新值,实现有效数据的更新。
S270、将执行操作之后的原始数据写入重整数据区中。
其中,重整数据区包括原始数据区和新增数据区,将执行操作之后的原始数据写入重整数据区中,包括:将执行删除和更新操作之后的第一原始数据写入原始数据区中;将执行删除和更新操作之后的第二原始数据写入新增数据区中。
S280、获取重整数据区的物理信息和统计信息,并根据物理信息和统计信息更新预设的列存储辅助表。
由于重整数据区中原始数据区的数据在数据文件中的起始偏移地址和长度都发生了变化以及新增数据区的信息没有记录,因此需要获取重整数据区中原始数据区和新增数据区的物理信息和统计信息,并根据物理信息和统计信息更新预设的列存储辅助表。
此外,在获取重整数据区的物理信息和统计信息,并根据物理信息和统计信息更新预设的列存储辅助表之后,还可以包括:将数据重整之后的列存储表的插入辅助表、删除辅助表和更新辅助表中的数据删除。
可选地,S280之后,还包括:将重整数据区中原始数据区重新写入数据文件中,将重整数据区中新增数据区写入数据文件中。通过列存储辅助表中的统计信息,可知一个数据文件内数据存储的位置,根据该统计信息可以选择一个合适的位置写入重整数据区中原始数据区和新增数据区的数据,例如在数据文件中间某段没有数据空闲的位置或者文件的末尾。原始数据之前在数据文件中的所在位置不需要清除,因为在S280之后,列存储辅助表中没有原始数据所在位置的记录,所以原始数据所在的位置会被认为是空闲的位置。
需要说明的是,本实施例中对插入辅助表进行数据重整进行一次即可,可以先对满足数据重整条件的各原始数据区中的数据分别进行处理,将处理之后的数据分别存储在各原始数据区中,然后再对插入辅助表中的数据进行处理,将处理之后的数据存储在新增数据区中。
本实施例中以数据区为单位进行数据重整,数据区重整前后,数据区的区号不会发生改变,因此数据区的起始行号也是不变的,数据重整时会把删除的数据之后的数据向前挪动,使其紧密排列。此时,数据区中的数据不是满的,这就导致缺失部分对应的行号是没有数据的,造成了列存储表中的数据空洞。但是以数据区为单位进行数据重整意味着数据重整前后数据不会因为数据的删除切换数据区,因此大部分统计信息也不会改变,例如最大值、最小值,也就不需要重新计算。相对于以整个列存储表为单位,以数据区为单位进行数据重整效率相对较高。
本实施例的技术方案,通过获取数据重整请求,根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表,确定各原始数据区中满足预设的数据重整条件的原始数据区,对于满足数据重整条件的各原始数据区和插入辅助表,获取原始数据,根据删除辅助表中的删除数据对原始数据进行删除,得到有效数据,根据更新辅助表中的更新数据对有效数据进行更新,将执行操作之后的原始数据写入重整数据区中,获取重整数据区的物理信息和统计信息,并根据物理信息和统计信息更新预设的列存储辅助表。本实施例提供的技术方案,当原始数据区的数量为多个时,通过将需要进行数据重整的各原始数据区的数据和插入辅助表中的数据进行数据整理之后重新写入重整数据区中,实现了数据重整,使得数据重整之后的列存储表在进行数据查询时,其查询效率得到大幅提高;并且以数据区为单位实现数据重整,进一步提高了数据重整的效率。
实施例三
图4为本发明实施例三中的数据重整装置的结构示意图,本实施例可适用于实现数据库中列存储表数据重整的情况。本发明实施例所提供的数据重整装置可执行本发明任意实施例所提供的数据重整方法,具备执行方法相应的功能模块和有益效果。该装置具体包括请求获取模块310、数据获取模块320和数据重整模块330,其中:
请求获取模块310,用于获取数据重整请求,数据重整请求中包括待重整的列存储表的标识;
数据获取模块320,用于根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
数据重整模块330,用于基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中;
其中,原始数据包括原始数据区中的数据和插入辅助表中的数据。
本发明实施例通过获取数据重整请求,数据重整请求中包括待重整的列存储表的标识,根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表,并基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中。本发明实施例通过将列存储表中的数据和插入辅助表中的数据进行数据整理之后重新写入重整数据区中,实现了数据重整,使得数据重整之后的列存储表在进行数据查询时,其查询效率得到大幅提高。
进一步的,原始数据区的数量为至少一个,该装置还包括数据重整判断模块,数据重整判断模块具体用于:基于操作辅助表对原始数据执行对应的操作之前,
分别确定各原始数据区是否满足预设的数据重整条件,若是,则执行基于操作辅助表对原始数据执行对应的操作,其中数据重整条件为该原始数据区存在数据更新或者数据删除。
进一步的,操作辅助表包括删除辅助表和更新辅助表。
进一步的,数据重整模块包括操作单元,操作单元具体用于:
根据删除辅助表中的删除数据对原始数据进行删除,得到有效数据,删除数据包括删除行的行号;
根据更新辅助表中的更新数据对有效数据进行更新,更新数据包括更新值和更新位置。
进一步的,该装置还包括原始数据模块,原始数据模块用于:基于操作辅助表对原始数据执行对应的操作之前,获取原始数据,
获取原始数据,包括:
基于预设的列存储辅助表获取原始数据区中的数据,作为第一原始数据;
获取插入辅助表中的数据,作为第二原始数据。
进一步的,重整数据区包括原始数据区和新增数据区,数据重整模块还包括数据写入单元,数据写入单元具体用于:
将执行删除和更新操作之后的第一原始数据写入原始数据区中;
将执行删除和更新操作之后的第二原始数据写入新增数据区中。
进一步的,该装置还包括列存储辅助表模块,列存储辅助表模块具体用于:将执行操作之后的原始数据写入重整数据区中之后,
获取重整数据区的物理信息和统计信息,并根据物理信息和统计信息更新预设的列存储辅助表。
本发明实施例所提供的数据重整装置可执行本发明任意实施例所提供的数据重整方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四中的设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性设备412的框图。图5显示的设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,设备412以通用终端的形式表现。设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)430和/或高速缓存存储器432。设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储装置428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
设备412也可以与一个或多个外部设备414(例如键盘、指向终端、显示器424等)通信,还可与一个或者多个使得用户能与该设备412交互的终端通信,和/或与使得该设备412能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器420通过总线418与设备412的其它模块通信。应当明白,尽管图中未示出,可以结合设备412使用其它硬件和/或软件模块,包括但不限于:微代码、终端驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据重整方法,该方法包括:
获取数据重整请求,数据重整请求中包括待重整的列存储表的标识;
根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中;
其中,原始数据包括原始数据区中的数据和插入辅助表中的数据。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的数据重整方法,该方法包括:
获取数据重整请求,数据重整请求中包括待重整的列存储表的标识;
根据列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
基于操作辅助表对原始数据执行对应的操作,将执行操作之后的原始数据写入重整数据区中;
其中,原始数据包括原始数据区中的数据和插入辅助表中的数据。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据重整方法,其特征在于,包括:
获取数据重整请求,所述数据重整请求中包括待重整的列存储表的标识;
根据所述列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
基于所述操作辅助表对原始数据执行对应的操作,将执行操作之后的所述原始数据写入重整数据区中;
其中,所述原始数据包括所述原始数据区中的数据和所述插入辅助表中的数据。
2.根据权利要求1所述的方法,其特征在于,所述原始数据区的数量为至少一个,基于所述操作辅助表对原始数据执行对应的操作之前,还包括:
分别确定各所述原始数据区是否满足预设的数据重整条件,若是,则执行所述基于所述操作辅助表对原始数据执行对应的操作,其中所述数据重整条件为该原始数据区存在数据更新或者数据删除。
3.根据权利要求1所述的方法,其特征在于,所述操作辅助表包括删除辅助表和更新辅助表。
4.根据权利要求3所述的方法,其特征在于,基于所述操作辅助表对原始数据执行对应的操作,包括:
根据所述删除辅助表中的删除数据对所述原始数据进行删除,得到有效数据,所述删除数据包括删除行的行号;
根据所述更新辅助表中的更新数据对所述有效数据进行更新,所述更新数据包括更新值和更新位置。
5.根据权利要求1所述的方法,其特征在于,基于所述操作辅助表对原始数据执行对应的操作之前,还包括:获取原始数据,
所述获取原始数据,包括:
基于预设的列存储辅助表获取所述原始数据区中的数据,作为第一原始数据;
获取所述插入辅助表中的数据,作为第二原始数据。
6.根据权利要求5所述的方法,其特征在于,所述重整数据区包括所述原始数据区和新增数据区,
将执行操作之后的所述原始数据写入重整数据区中,包括:
将执行删除和更新操作之后的所述第一原始数据写入所述原始数据区中;
将执行删除和更新操作之后的所述第二原始数据写入所述新增数据区中。
7.根据权利要求1所述的方法,其特征在于,将执行操作之后的所述原始数据写入重整数据区中之后,还包括:
获取所述重整数据区的物理信息和统计信息,并根据所述物理信息和所述统计信息更新预设的列存储辅助表。
8.一种数据重整装置,其特征在于,包括:
请求获取模块,用于获取数据重整请求,所述数据重整请求中包括待重整的列存储表的标识;
数据获取模块,用于根据所述列存储表的标识获取对应的原始数据区、插入辅助表和操作辅助表;
数据重整模块,用于基于所述操作辅助表对原始数据执行对应的操作,将执行操作之后的所述原始数据写入重整数据区中;
其中,所述原始数据包括所述原始数据区中的数据和所述插入辅助表中的数据。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据重整方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据重整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910149673.6A CN109828974A (zh) | 2019-02-28 | 2019-02-28 | 数据重整方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910149673.6A CN109828974A (zh) | 2019-02-28 | 2019-02-28 | 数据重整方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109828974A true CN109828974A (zh) | 2019-05-31 |
Family
ID=66864828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910149673.6A Pending CN109828974A (zh) | 2019-02-28 | 2019-02-28 | 数据重整方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828974A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076326A (zh) * | 2021-03-25 | 2021-07-06 | 上海达梦数据库有限公司 | 一种大字段数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699433A (zh) * | 2009-10-28 | 2010-04-28 | 金蝶软件(中国)有限公司 | 一种数据重整方法和系统 |
US20160357816A1 (en) * | 2011-12-20 | 2016-12-08 | Sap Se | Many-core algorithms for in-memory column store databases |
CN108959587A (zh) * | 2018-07-10 | 2018-12-07 | 上海达梦数据库有限公司 | 基于列存储的数据更新方法、装置、服务器及存储介质 |
-
2019
- 2019-02-28 CN CN201910149673.6A patent/CN109828974A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699433A (zh) * | 2009-10-28 | 2010-04-28 | 金蝶软件(中国)有限公司 | 一种数据重整方法和系统 |
US20160357816A1 (en) * | 2011-12-20 | 2016-12-08 | Sap Se | Many-core algorithms for in-memory column store databases |
CN108959587A (zh) * | 2018-07-10 | 2018-12-07 | 上海达梦数据库有限公司 | 基于列存储的数据更新方法、装置、服务器及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076326A (zh) * | 2021-03-25 | 2021-07-06 | 上海达梦数据库有限公司 | 一种大字段数据处理方法、装置、设备及存储介质 |
CN113076326B (zh) * | 2021-03-25 | 2024-05-31 | 上海达梦数据库有限公司 | 一种大字段数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN109684307A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN107526743A (zh) | 用于压缩文件系统元数据的方法和设备 | |
CN108519862A (zh) | 区块链系统的存储方法、装置、系统和存储介质 | |
WO2022143540A1 (zh) | 区块链索引的存储方法、装置、计算机设备及介质 | |
CN109710190A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN112328172B (zh) | 数据存储方法、装置及数据读取方法、装置 | |
CN109344631A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN110413413A (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN110489407A (zh) | 数据补采方法、装置、计算机设备及存储介质 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN109886693A (zh) | 区块链系统的共识实现方法、装置、设备和介质 | |
CN109739611A (zh) | 列表视图绘制方法、装置、终端和存储介质 | |
CN109661780A (zh) | 实现对基于处理器的系统中的小数据块的高效无损压缩 | |
CN110058964A (zh) | 数据恢复方法、数据恢复系统和计算机程序产品 | |
US10983949B2 (en) | File system quota versioning | |
CN109145272A (zh) | 文本渲染和布局方法、装置、设备和存储介质 | |
CN109213450A (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN109828974A (zh) | 数据重整方法、装置、设备和存储介质 | |
CN106775481B (zh) | 数据读取方法及设备 | |
CN101644992B (zh) | 文件系统数据重建的方法和系统 | |
CN108153904A (zh) | 语料收集方法、装置和计算机设备 | |
CN104063377B (zh) | 信息处理方法和使用其的电子设备 | |
CN112596949B (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
CN109783321A (zh) | 监控数据管理方法、装置、终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190531 |