CN113722623B - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113722623B CN113722623B CN202111030551.9A CN202111030551A CN113722623B CN 113722623 B CN113722623 B CN 113722623B CN 202111030551 A CN202111030551 A CN 202111030551A CN 113722623 B CN113722623 B CN 113722623B
- Authority
- CN
- China
- Prior art keywords
- data
- space
- page
- current space
- current
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 90
- 230000009977 dual effect Effects 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
本申请提供一种数据处理方法、装置、电子设备及存储介质,该方法中,响应于用户的数据处理请求,该数据处理请求携带有目标页面的标识,并根据目标页面的标识,从列存文件的脚注部分中确定出目标页面中的当前空间,该脚注部分包括:至少一个页面的当前空间的标识和时间戳,之后对当前空间中的第一数据进行数据处理,得到第二数据,最后将第二数据存储至当前空间对应的对偶空间,该当前空间对应的对偶空间为新的当前空间,对偶空间为备用存储第一数据的空间。该技术方案中,从当前空间和对偶空间出发,利用两个存储空间数据的交互,从而实现了列式存储下数据进行增删改等处理时步骤繁琐且效率较低的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
随着互联网,以及物联网技术的普及和不断发展,应用程序需要处理的数据量几乎呈指数级的增长,因此,如何在数据库的应用中,高效地进行海量数据的处理成为了亟待解决的问题。
在现有技术中,一般都采用列式存储的方法。将数据按列进行存储,相比于按行存储,既可以提升数据的压缩率,减少存储空间的占用,又可以数量级地加快数据分析的过程,有力地支撑业务的发展。
然而,上述采用列式存储的方法中,数据是按列紧密排布的,其数据结构几乎是不可变的,使得对数据进行增删改等处理时步骤繁琐且效率较低。
发明内容
本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,用以解决对采用列式存储的数据进行增删改等处理时步骤繁琐且效率较低的问题。
第一方面,本申请实施例提供一种数据处理方法,应用于电子设备,所述方法包括:
响应于用户的数据处理请求,所述数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,所述数据处理请求携带有目标页面的标识;
根据所述目标页面的标识,从所述列存文件的脚注部分中确定出目标页面中的当前空间,所述脚注部分包括:至少一个页面的当前空间的标识和时间戳,所述当前空间为生效存储第一数据的空间,所述时间戳为更新所述脚注部分的最近一次的时间;
对所述当前空间中的第一数据进行数据处理,得到第二数据,所述数据处理包括:删除所述第一数据中的数据、和/或更新所述第一数据中的数据;
将所述第二数据存储至所述当前空间对应的对偶空间,所述当前空间对应的对偶空间为新的当前空间,所述对偶空间为备用存储所述第一数据的空间。
在第一方面一种可能的设计中,在所述响应于用户的数据处理请求之前,所述方法还包括:
获取待处理数据;
对所述待处理数据按照预设存储结构进行划分处理,得到多个第一数据,所述预设存储结构包括:多个页行组、所述多个页行组对应有多个列、以及所述脚注部分,每个页行组中每个列包括:至少一个页面,每个页面包括:所述当前空间和所述当前空间对应的对偶空间;
将所述多个第一数据分别存储至各个页面对应的当前空间中;
将各个页面当前空间的标识和时间戳存储至所述脚注部分;
根据存储所述多个第一数据的各个页面和所述脚注部分,确定所述列存文件。
在第一方面另一种可能的设计中,所述数据处理还包括:向所述第一数据中添加目标数据,所述目标数据为用户需要添加至所述列存文件中的数据;
相应的,在所述得到第二数据之前,所述方法还包括:
获取所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间;
根据所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间,判断所述目标数据所需的空间是否满足预设条件,所述预设条件包括如下任意一种:所述目标数据所需的空间小于或等于所述当前空间中的未存储空间、所述目标数据和所述第一数据所需的空间小于或等于所述当前空间对应的对偶空间中的未存储空间;
若所述目标数据所需的空间满足预设条件,对所述当前空间中的第一数据进行所述处理操作。
在该种可能的设计中,在所述根据所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间,判断所述目标数据所需的空间是否满足预设条件之后,所述方法还包括:
若所述目标数据所需的空间不满足预设条件,获取所述列存文件中各个页面当前空间的第一数据;
根据所述目标数据和所述列存文件中各个页面当前空间的第一数据,确定待处理数据。
在第一方面再一种可能的设计中,在所述将所述第二数据存储至所述当前空间对应的对偶空间,得到新的当前空间之后,所述方法还包括:
清除所述当前空间的第一数据,将所述当前空间设置为新的当前空间对应的新的对偶空间;
根据所述新的当前空间的标识、时间戳和所述新的当前空间对应的目标页面的标识,更新所述脚注部分中所述目标页面对应的当前空间的标识和时间戳。
可选的,所述当前空间和所述对偶空间的结构相同,所述当前空间,或所述对偶空间的结构包括:
页头、有效数据空间和所述未存储空间,所述有效数据空间为已经存储数据的空间,所述页头包括:所述待处理数据的有效数据起始地址、所述有效数据长度、所述有效数据空间和所述未存储空间的大小、其他元数据。
第二方面,本申请实施例提供了一种数据处理装置,应用于电子设备,所述装置包括:响应模块、确定模块、处理模块和存储模块;
所述响应模块,用于响应于用户的数据处理请求,所述数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,所述数据处理请求携带有目标页面的标识;
所述确定模块,用于根据所述目标页面的标识,从所述列存文件的脚注部分中确定出目标页面中的当前空间,所述脚注部分包括:至少一个页面的当前空间的标识和时间戳,所述当前空间为生效存储第一数据的空间,所述时间戳为更新所述脚注部分的最近一次的时间;
所述处理模块,用于对所述当前空间中的第一数据进行数据处理,得到第二数据,所述数据处理包括:删除所述第一数据中的数据、和/或更新所述第一数据中的数据;
所述存储模块,用于将所述第二数据存储至所述当前空间对应的对偶空间,所述当前空间对应的对偶空间为新的当前空间,所述对偶空间为备用存储所述第一数据的空间。
在第二方面一种可能的设计中,所述装置还包括:获取模块;
所述获取模块在响应于用户的数据处理请求之前,用于获取待处理数据;
所述处理模块,还用于对所述待处理数据按照预设存储结构进行划分处理,得到多个第一数据,所述预设存储结构包括:多个页行组、所述多个页行组对应有多个列、以及所述脚注部分,每个页行组中每个列包括:至少一个页面,每个页面包括:所述当前空间和所述当前空间对应的对偶空间;
所述存储模块,还用于:所述多个第一数据分别存储至各个页面对应的当前空间中,并将各个页面当前空间的标识和时间戳存储至所述脚注部分;
所述确定模块,还用于根据存储所述多个第一数据的各个页面和所述脚注部分,确定所述列存文件。
在第二方面另一种可能的设计中,所述数据处理还包括:向所述第一数据中添加目标数据,所述目标数据为用户需要添加至所述列存文件中的数据;
相应的,在所述得到第二数据之前,所述获取模块,还用于获取所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间;
所述处理模块,还用于根据所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间,判断所述目标数据所需的空间是否满足预设条件,所述预设条件包括如下任意一种:所述目标数据所需的空间小于或等于所述当前空间中的未存储空间、所述目标数据和所述第一数据所需的空间小于或等于所述当前空间对应的对偶空间中的未存储空间;当所述目标数据所需的空间满足预设条件,对所述当前空间中的第一数据进行所述处理操作。
在该种可能的设计中,所述处理模块,还用于:
当所述目标数据所需的空间不满足预设条件,获取所述列存文件中各个页面当前空间的第一数据;
根据所述目标数据和所述列存文件中各个页面当前空间的第一数据,确定待处理数据。
在第二方面再一种可能的设计中,所述处理模块,还用于:
清除所述当前空间的第一数据,将所述当前空间设置为新的当前空间对应的新的对偶空间;
根据所述新的当前空间的标识、时间戳和所述新的当前空间对应的目标页面的标识,更新所述脚注部分中所述目标页面对应的当前空间的标识和时间戳。
可选的,所述当前空间和所述对偶空间的结构相同,所述当前空间,或所述对偶空间的结构包括:
页头、有效数据空间和所述未存储空间,所述有效数据空间为已经存储数据的空间,所述页头包括:所述待处理数据的有效数据起始地址、所述有效数据长度、所述有效数据空间和所述未存储空间的大小、其他元数据。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述计算机执行指令,使得所述电子设备执行如上述第一方面及各种可能的设计中所述的数据处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面及各种可能的设计中所述的数据处理方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现如上述第一方面及各种可能的设计中所述的数据处理方法。
本申请实施例提供的数据处理方法、装置、电子设备及存储介质,该方法中,响应于用户的数据处理请求,该数据处理请求携带有目标页面的标识,并根据目标页面的标识,从列存文件的脚注部分中确定出目标页面中的当前空间,该脚注部分包括:至少一个页面的当前空间的标识和时间戳,该当前空间为生效存储第一数据的空间,之后对当前空间中的第一数据进行数据处理,得到第二数据,最后将第二数据存储至当前空间对应的对偶空间,该当前空间对应的对偶空间为新的当前空间,对偶空间为备用存储第一数据的空间。该技术方案中,从当前空间和对偶空间出发,巧妙的利用两个存储空间之间信息的交互,从而实现了列式存储下数据进行增删改等处理时步骤繁琐且效率较低的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的数据处理方法实施例的流程示意图;
图2为本申请实施例提供的待处理数据的划分示意图;
图3为本申请实施例提供的页面示意图;
图4为本申请实施例提供的脚注部分示意图;
图5为本申请实施例提供的当前空间和对偶空间的转化示意图;
图6为本申请实施例提供的数据处理装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本申请的实施例之前,首先对本申请的背景技术进行解释说明:
随着互联网、物联网技术的普及,应用需要处理的数据量几乎呈指数级地增长。在数据库应用中,为高效地进行海量数据的处理,一般都采用列式存储的方法。将数据按列进行存储,相比于按行存储,既可以提升数据的压缩率,减少存储空间的占用,又可以数量级地加快数据分析的过程,有力地支撑业务的发展。
在传统的列式存储中,数据是按列紧密排布的,在这种排布方式下数据几乎是不可变的。虽然这种排布方式有利于写一次读多次的场景,但却很难很好地支持数据的插入、更新或删除等操作,这样就会给现实生产带来一些额外的限制和不便。
本申请针对上述技术问题,发明人的技术构思过程如下:现有技术带透明压缩的存储设备按照列存储之后,由于数据之间紧密排布,如果能够将数据分成不同的块,在需要修改数据、删除数据、添加新数据时,仅将该数据所在的块中的所有信息提取出来,进行相应的操作之后,存储至另一个对偶的块之中,待存储成功之后,将原来的块进行清除,便可以解决现有技术操作不便的问题,并且避免了数据占用空间较高的问题。
下面通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的数据处理方法实施例的流程示意图。如图1所示,该数据处理方法包括如下步骤:
步骤11、响应于用户的数据处理请求。
其中,数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,数据处理请求携带有目标页面的标识;
在本方案中,该数据处理方法应用于电子设备,可以是透明压缩存储设备。
在本步骤中,用户需要对存储在透明压缩存储设备中的数据进行处理,用户在触发数据处理操作时,以透明压缩存储设备的角度而言,需要响应于用户的数据处理请求,该请求中携带有目标页面的标识,即该请求是针对存储的数据中目标页面中的数据进行处理。
可选的,在该步骤之前,还需要进行列存文件的建立,图2为本申请实施例提供的待处理数据的划分示意图,其过程可以包括如下步骤:
第1步、获取待处理数据。
其中,待处理数据为需要被存储至存储设备的本地缓存中的数据。
第2步、对待处理数据按照预设存储结构进行划分处理,得到多个第一数据,预设存储结构包括:多个页行组、多个页行组对应有多个列、以及脚注部分footer,每个页行组中每个列包括:至少一个页面,每个页面包括:当前空间和当前空间对应的对偶空间。
如图2所示,将待处理数据划分按行组划分,可以分为页行组0、页行组1、页行组2、……页行组m(正整数),例如该数据可以是10000个学生的信息,m为100,则每个页行组包含100个学生的信息(应理解,每个页行组包含的数量可多可少,不一定是按照页行组数量平均分配的),而每个页行组可以包括至少一个页面。进而按列存储时,可以有列1、列2、……列n,例如n为3时,可以是姓名、性别和学号,则每个页行组都包括3个页面。
其中,多个页行组构成行组,本申请实施例不对行组的数量进行限制。
可选的,图3为本申请实施例提供的页面示意图,如图3所示,该页面包括:当前空间和对偶空间,其中,当前空间和对偶空间的结构相同,具体为:
页头、有效数据空间和未存储空间,有效数据空间为已经存储数据的空间,页头包括:待处理数据的有效数据起始地址、有效数据长度、有效数据空间和未存储空间的大小、其他元数据。
其中,未存储空间用于保证当前空间和对偶空间均与存储设备的物理块地址(Physical Block Address,PBA)大小对齐,其它元数据可以是比如数据类型、编码方式等等。
第3步、将多个第一数据分别存储至各个页面对应的当前空间中。
例如,第一数据可以分别是100个学生的姓名、100个学生的性别和100个学生的学号,将该100个学生的姓名存储至页行组0对应的列1中的当前空间,将该100个学生的性别存储至页行组0对应的列2中的当前空间,将该100个学生的学号存储至页行组0对应的列3中的当前空间,此处仅作示例。
应理解,在当前空间对应的对偶空间中,没有数据存储,即对偶空间内填充全0的高可压缩数据。
第4步、将各个页面当前空间的标识和时间戳存储至脚注部分。
其中,当前空间的标识标示了该页面当前正在存储第一数据的空间是当前空间和对偶空间中的哪一个,时间戳记载了存储第一数据的空间的最近一次修改时间。
可选的,图4为本申请实施例提供的脚注部分示意图,如图4所示,脚注部分也可以包括当前空间和当前空间对应的对偶空间。
在具体应用时,存储各个页面当前空间的标识和时间戳等信息可以置于当前空间中,在该信息中的各个页面当前空间的标识和时间戳存在更改时,读取各个页面当前空间的标识和时间戳,并在更改后存储在当前空间对应的对偶空间,然后将当前空间清零,从而实现脚注部分信息的变动,具体可以参考下述页面中当前空间和当前空间对应的对偶空间的数据处理。
此外,脚注部分包括:至少一个页面的当前空间的标识和时间戳,当前空间为生效存储第一数据的空间,时间戳为更新脚注部分的最近一次的时间;
可选的,至少一个页面的当前空间的标识可以存储在行组的元数据中,行组的个数不做限制。
第5步、根据存储多个第一数据的各个页面和脚注部分,确定列存文件。
根据存储有各自第一数据的各个页面和脚注部分,生成列存文件,该文件中的数据按列紧密排布,且支持数据的插入、更新或删除等操作。
步骤12、根据目标页面的标识,从列存文件的脚注部分中确定出目标页面中的当前空间。
在本步骤中,由于上述脚注部分中记载有所有页面的当前空间的标识,根据目标页面的标识,可以在脚注部分中确定出目标页面中当前存储第一数据的当前空间,即有效空间,然后在列存文件中找到相应的目标页面及目标页面的当前空间,从而为后续对第一数据进行处理提供条件。
步骤13、对当前空间中的第一数据进行数据处理,得到第二数据。
其中,数据处理包括:删除第一数据中的数据、和/或更新第一数据中的数据;
在本步骤中,读取当前空间中的第一数据,在内存层中对第一数据进行相应的处理。
可选的,以100个学生的学号存储至页行组0对应的列3中的当前空间为例,需要对100个学号中的一个学号进行更新,则在这100个学号中替换旧的学号。
进一步地,处理之后的学号即第二数据。
可选的,数据处理还包括:向第一数据中添加目标数据,目标数据为用户需要添加至列存文件中的数据。
相应的,在得到第二数据之前,该数据处理过程还包括如下步骤:
第1步、获取目标数据所需的空间、当前空间中的未存储空间、以及当前空间对应的对偶空间中的未存储空间;
可选的,需要确定出需要添加的目标数据所占用的空间是否小于、或等于当前空间中的未存储空间,以确保添加的目标数据可以被全部添加,此时,需要获取目标数据所需的空间、当前空间中的未存储空间、以及当前空间对应的对偶空间中的未存储空间。
第2步、根据目标数据所需的空间、当前空间中的未存储空间、以及当前空间对应的对偶空间中的未存储空间,判断目标数据所需的空间是否满足预设条件,预设条件包括如下任意一种:目标数据所需的空间小于或等于当前空间中的未存储空间、目标数据和第一数据所需的空间小于或等于当前空间对应的对偶空间中的未存储空间;
在一种可能的实现中,例如,当前空间的页头部分为100B,有效数据空间占据了6KB,存储设备的一个PBA为4KB,当前空间的总空间为8KB,则此时当前空间中的未存储空间的大小为8KB-100B-6KB=1948B。
此外,目标数据和第一数据所需的空间与对偶空间中的未存储空间进行对比,也需要小于或等于对偶空间中的未存储空间。
第3步、当目标数据所需的空间满足预设条件,对当前空间中的第一数据进行处理操作;
示例性的,例如,目标数据所需的空间小于或等于1948B,则认为目标数据可以被全部添加,进入正常的添加流程。
同理,目标数据和第一数据所需的空间大小需小于或等于对偶空间中的未存储空间的大小,可认为目标数据可以被全部添加,进入正常的添加流程。
第4步、当目标数据所需的空间不满足预设条件,获取列存文件中各个页面当前空间的第一数据,之后根据目标数据和列存文件中各个页面当前空间的第一数据,确定待处理数据。
可选的,如果目标数据所需的空间不满足预设条件,也就说明目标数据所需的空间和第一数据所需空间之和,大于对偶空间中的未存储空间的大小,不能够将目标数据和第一数据全部存储进入对偶空间中的未存储空间,此时,需要将列存文件中各个页面当前空间的第一数据和目标数据提取出来。
进一步地,各个页面当前空间的第一数据和目标数据即待处理数据,可以执行上述步骤11中的第2步的操作,以形成新的列存文件,即合并目标数据和旧的列存文件。
步骤14、将第二数据存储至当前空间对应的对偶空间。
其中,当前空间对应的对偶空间为新的当前空间,对偶空间为备用存储第一数据的空间。
可选的,图5为本申请实施例提供的当前空间和对偶空间的转化示意图:
例如,在脚注部分中,可以用1表示目标页面中实际存储第二数据/第一数据的空间,即当前空间;用0表示该当前空间对应的对偶空间。
以数据更新为例,在当前空间中的数据读取之后,进行更新操作,得到第二数据,并存入当前空间对应的对偶空间,对原对偶空间的标识由0改为1,即得到新的当前空间。
在该步骤之后,数据处理方法还包括:清除当前空间的第一数据,将当前空间设置为新的当前空间对应的新的对偶空间,并根据新的当前空间的标识、时间戳和新的当前空间对应的目标页面的标识,更新脚注部分中目标页面对应的当前空间的标识和时间戳。
可选的,列存储相较于其他存储方式,优点在于数据存储占用的空间相对较小,为了避免增加对偶空间后,对原存储占用增大,此时在上述操作后,将当前空间的第一数据清除,即填充全0数据,形成新的对偶空间。
进一步地,将新的当前空间的标识、时间戳和新的当前空间对应的目标页面的标识更新,并存储至脚注部分。
可选的,在下次需要对页面的数据进行处理时,取脚注部分中最新时间戳对应的空间作为当前空间,然后根据脚注部分中当前空间中各个行组的元数据读取相应的页面内容,该页面内容即当前空间的标识、时间戳等信息。
本申请提供一种数据处理方法,响应于用户的数据处理请求,该数据处理请求携带有目标页面的标识,并根据目标页面的标识,从列存文件的脚注部分中确定出目标页面中的当前空间,该脚注部分包括:至少一个页面的当前空间的标识和时间戳,该当前空间为生效存储第一数据的空间,之后对当前空间中的第一数据进行数据处理,得到第二数据,最后将第二数据存储至当前空间对应的对偶空间,该当前空间对应的对偶空间为新的当前空间,对偶空间为备用存储第一数据的空间。该技术方案中,实现了列式存储下数据进行处理时步骤繁琐且效率较低的问题,并可以在小部分数据的插入、更新和删除操作中,尽量减少存储设备的输入/输出(Input/Output,IO)流量,降低IO操作对列存数据库性能的影响,又保证了数据更新的原子性和一致性,同时也充分利用了透明压缩存储设备的压缩功能,通过填充高可压缩的数据避免了页面内双份空间对物理存储空间的浪费。
在上述方法实施例的基础上,图6为本申请实施例提供的数据处理装置的结构示意图。应用于电子设备,该数据处理装置包括:响应模块61、确定模块62、处理模块63和存储模块64;
响应模块61,用于响应于用户的数据处理请求,数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,数据处理请求携带有目标页面的标识;
确定模块62,用于根据目标页面的标识,从列存文件的脚注部分中确定出目标页面中的当前空间,脚注部分包括:至少一个页面的当前空间的标识和时间戳,当前空间为生效存储第一数据的空间,时间戳为更新脚注部分的最近一次的时间;
处理模块63,用于对当前空间中的第一数据进行数据处理,得到第二数据,数据处理包括:删除第一数据中的数据、和/或更新第一数据中的数据;
存储模块64,用于将第二数据存储至当前空间对应的对偶空间,当前空间对应的对偶空间为新的当前空间,对偶空间为备用存储第一数据的空间。
在本申请实施例一种可能的设计中,该数据处理装置还包括:获取模块65;
获取模块65在响应于用户的数据处理请求之前,用于获取待处理数据;
处理模块63,还用于对待处理数据按照预设存储结构进行划分处理,得到多个第一数据,预设存储结构包括:多个页行组、多个页行组对应有多个列、以及脚注部分,每个页行组中每个列包括:至少一个页面,每个页面包括:当前空间和当前空间对应的对偶空间;
存储模块64,还用于:多个第一数据分别存储至各个页面对应的当前空间中,并将各个页面当前空间的标识和时间戳存储至脚注部分;
确定模块62,还用于根据存储多个第一数据的各个页面和脚注部分,确定列存文件。
在本申请实施例另一种可能的设计中,数据处理还包括:向第一数据中添加目标数据,目标数据为用户需要添加至列存文件中的数据;
相应的,在得到第二数据之前,获取模块65,还用于获取目标数据所需的空间、当前空间中的未存储空间、以及当前空间对应的对偶空间中的未存储空间;
处理模块63,还用于根据目标数据所需的空间、当前空间中的未存储空间、以及当前空间对应的对偶空间中的未存储空间,判断目标数据所需的空间是否满足预设条件,预设条件包括如下任意一种:目标数据所需的空间小于或等于当前空间中的未存储空间、所述目标数据和第一数据所需的空间小于或等于当前空间对应的对偶空间中的未存储空间;当目标数据所需的空间满足预设条件,对当前空间中的第一数据进行处理操作。
在该种可能的设计中,处理模块63,还用于:
当目标数据所需的空间不满足预设条件,获取列存文件中各个页面当前空间的第一数据;
根据目标数据和列存文件中各个页面当前空间的第一数据,确定待处理数据。
在本申请实施例再一种可能的设计中,处理模块63,还用于:
清除当前空间的第一数据,将当前空间设置为新的当前空间对应的新的对偶空间;
根据新的当前空间的标识、时间戳和新的当前空间对应的目标页面的标识,更新脚注部分中目标页面对应的当前空间的标识和时间戳。
可选的,当前空间和对偶空间的结构相同,当前空间,或对偶空间的结构包括:
页头、有效数据空间和未存储空间,有效数据空间为已经存储数据的空间,页头包括:待处理数据的有效数据起始地址、有效数据长度、有效数据空间和未存储空间的大小、其他元数据。
本申请实施例提供的数据处理装置,可用于执行上述实施例中数据处理方法对应的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图7为本申请实施例提供的电子设备的结构示意图。如图7所示,该计算机可以包括:处理器70、存储器71及存储在该存储器71上并可在处理器70上运行的计算机程序指令。
其中,该电子设备可以是透明压缩存储设备。
处理器70执行存储器71存储的计算机执行指令,使得处理器70执行上述实施例中的方案。处理器70可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选的,该电子设备还可以包括:收发器72。
存储器71和收发器72通过系统总线与处理器70连接并完成相互间的通信,存储器71用于存储计算机程序指令。
收发器72用于和其他设备进行通信,该收发器72构成通信接口。
可选的,在硬件实现上,上述图6所示实施例中的获取模块65对应于本实施例中的收发器72。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的电子设备,可用于执行上述实施例中数据处理方法对应的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中数据处理方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机设备上运行时,使得电子设备执行上述实施例中数据处理方法的技术方案。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于执行上述实施例中数据处理方法的技术方案。
上述的计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机设备能够存取的任何可用介质。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (9)
1.一种数据处理方法,其特征在于,应用于电子设备,所述方法包括:
获取待处理数据;其中,所述待处理数据为需要被存储至存储设备的本地缓存中的数据;
对所述待处理数据按照预设存储结构进行划分处理,得到多个第一数据,所述预设存储结构包括:多个页行组、所述多个页行组对应有多个列、以及脚注部分,每个页行组中每个列包括:至少一个页面,每个页面包括:当前空间和所述当前空间对应的对偶空间;
将所述多个第一数据分别存储至各个页面对应的当前空间中;
将各个页面当前空间的标识和时间戳存储至所述脚注部分;
根据存储所述多个第一数据的各个页面和所述脚注部分,确定列存文件;其中,所述列存文件中的数据按列紧密排布,且支持数据的插入、更新或删除操作;
响应于用户的数据处理请求,所述数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,所述数据处理请求携带有目标页面的标识;
根据所述目标页面的标识,从所述列存文件的脚注部分中确定出目标页面中的当前空间,所述脚注部分包括:至少一个页面的当前空间的标识和时间戳,所述当前空间为生效存储第一数据的空间,所述时间戳为更新所述脚注部分的最近一次的时间;
对所述当前空间中的第一数据进行数据处理,得到第二数据,所述数据处理包括:删除所述第一数据中的数据、和/或更新所述第一数据中的数据;
将所述第二数据存储至所述当前空间对应的对偶空间,所述当前空间对应的对偶空间为新的当前空间,所述对偶空间为备用存储所述第一数据的空间。
2.根据权利要求1所述的方法,其特征在于,所述数据处理还包括:向所述第一数据中添加目标数据,所述目标数据为用户需要添加至所述列存文件中的数据;
相应的,在所述得到第二数据之前,所述方法还包括:
获取所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间;
根据所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间,判断所述目标数据所需的空间是否满足预设条件,所述预设条件包括如下任意一种:所述目标数据所需的空间小于或等于所述当前空间中的未存储空间、所述目标数据和所述第一数据所需的空间小于或等于所述当前空间对应的对偶空间中的未存储空间;
若所述目标数据所需的空间满足预设条件,对所述当前空间中的第一数据进行所述数据处理。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述目标数据所需的空间、所述当前空间中的未存储空间、以及所述当前空间对应的对偶空间中的未存储空间,判断所述目标数据所需的空间是否满足预设条件之后,所述方法还包括:
若所述目标数据所需的空间不满足预设条件,获取所述列存文件中各个页面当前空间的第一数据;
根据所述目标数据和所述列存文件中各个页面当前空间的第一数据,确定待处理数据。
4.根据权利要求1所述的方法,其特征在于,在所述将所述第二数据存储至所述当前空间对应的对偶空间,得到新的当前空间之后,所述方法还包括:
清除所述当前空间的第一数据,将所述当前空间设置为新的当前空间对应的新的对偶空间;
根据所述新的当前空间的标识、时间戳和所述新的当前空间对应的目标页面的标识,更新所述脚注部分中所述目标页面对应的当前空间的标识和时间戳。
5.根据权利要求3所述的方法,其特征在于,所述当前空间和所述对偶空间的结构相同,所述当前空间,或所述对偶空间的结构包括:
页头、有效数据空间和所述未存储空间,所述有效数据空间为已经存储数据的空间,所述页头包括:所述待处理数据的有效数据起始地址、有效数据长度、所述有效数据空间和所述未存储空间的大小、其他元数据。
6.一种数据处理装置,其特征在于,所述装置用于执行权利要求1-5任一项所述的方法,所述装置包括:响应模块、确定模块、处理模块和存储模块;
所述响应模块,用于响应于用户的数据处理请求,所述数据处理请求用于请求对列存文件中目标页面的第一数据进行处理,所述数据处理请求携带有目标页面的标识;
所述确定模块,用于根据所述目标页面的标识,从所述列存文件的脚注部分中确定出目标页面中的当前空间,所述脚注部分包括:至少一个页面的当前空间的标识和时间戳,所述当前空间为生效存储第一数据的空间,所述时间戳为更新所述脚注部分的最近一次的时间;
所述处理模块,用于对所述当前空间中的第一数据进行数据处理,得到第二数据,所述数据处理包括:删除所述第一数据中的数据、和/或更新所述第一数据中的数据;
所述存储模块,用于将所述第二数据存储至所述当前空间对应的对偶空间,所述当前空间对应的对偶空间为新的当前空间,所述对偶空间为备用存储所述第一数据的空间;
所述装置还用于:获取待处理数据;其中,所述待处理数据为需要被存储至存储设备的本地缓存中的数据;对所述待处理数据按照预设存储结构进行划分处理,得到多个第一数据,所述预设存储结构包括:多个页行组、所述多个页行组对应有多个列、以及所述脚注部分,每个页行组中每个列包括:至少一个页面,每个页面包括:所述当前空间和所述当前空间对应的对偶空间;将所述多个第一数据分别存储至各个页面对应的当前空间中;将各个页面当前空间的标识和时间戳存储至所述脚注部分;根据存储所述多个第一数据的各个页面和所述脚注部分,确定所述列存文件;其中,所述列存文件中的数据按列紧密排布,且支持数据的插入、更新或删除操作。
7.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-5中任一项所述的数据处理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至5中任一项所述的数据处理方法。
9.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111030551.9A CN113722623B (zh) | 2021-09-03 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111030551.9A CN113722623B (zh) | 2021-09-03 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722623A CN113722623A (zh) | 2021-11-30 |
CN113722623B true CN113722623B (zh) | 2024-07-05 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577436A (zh) * | 2017-09-18 | 2018-01-12 | 杭州时趣信息技术有限公司 | 一种数据存储方法及装置 |
CN111984651A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种基于持久性内存的列式存储方法、装置及设备 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577436A (zh) * | 2017-09-18 | 2018-01-12 | 杭州时趣信息技术有限公司 | 一种数据存储方法及装置 |
CN111984651A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种基于持久性内存的列式存储方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN108875077B (zh) | 数据库的列存储方法、装置、服务器及存储介质 | |
CN109690522B (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
CN104199899A (zh) | 一种基于Hbase的海量图片存储方法及装置 | |
CN107256233B (zh) | 一种数据存储方法和装置 | |
CN113468107A (zh) | 数据处理方法、设备、存储介质及系统 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN115034176A (zh) | 文本处理方法、装置、电子设备和计算机可读存储介质 | |
CN110162540B (zh) | 区块链账本数据的查询方法、电子装置及存储介质 | |
CN113722623B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110795920B (zh) | 一种文档生成方法及设备 | |
CN111984651A (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
CN111190895A (zh) | 列式存储数据的组织方法、装置及存储介质 | |
CN112632080B (zh) | 基于区块链的数据存储方法、装置及设备 | |
CN113722623A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115617338A (zh) | 一种业务页面快速生成方法、装置及可读存储介质 | |
CN115630100A (zh) | 单元和多元时序数据的混合处理方法、装置及计算机设备 | |
CN113778911A (zh) | L2p数据缓存方法、装置、可读存储介质及电子设备 | |
CN109582938B (zh) | 报表生成方法和装置 | |
CN109033271B (zh) | 基于列存储的数据插入方法、装置、服务器及存储介质 | |
CN113010550A (zh) | 结构化数据的批处理对象生成、批处理方法和装置 | |
CN117478149B (zh) | 一种数据压缩的方法、装置、计算机设备和可读存储介质 | |
CN116932497A (zh) | 一种文件合并方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |