CN111813840A - 一种数据处理方法、设备及存储介质 - Google Patents
一种数据处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111813840A CN111813840A CN202010475804.2A CN202010475804A CN111813840A CN 111813840 A CN111813840 A CN 111813840A CN 202010475804 A CN202010475804 A CN 202010475804A CN 111813840 A CN111813840 A CN 111813840A
- Authority
- CN
- China
- Prior art keywords
- sorting
- data
- target
- value
- key
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000006835 compression Effects 0.000 claims description 38
- 238000007906 compression Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 30
- 238000012163 sequencing technique Methods 0.000 claims description 18
- 238000001914 filtration Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 8
- 230000002085 persistent effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据处理方法、设备及存储介质,其中,所述方法包括:确定待处理数据表中的至少一个排序键;基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。据此,本申请实施例中,可综合单条记录在不同排序键上的数据取值,确定单条记录的排序编码,并以排序编码作为对数据表中的数据进行排序的基础。这使得,排序后数据表中,在多个列上基本有序,为数据查询提供了更优的查询基础,且无需再建立B‑Tree索引,不仅可节省空间占用,还可有效提高数据库查询效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据处理方法、设备及存储介质。
背景技术
随着计算机和互联网技术的不断发展,人们对互联网使用频率越来越高,使用人群不断壮大,使得互联网应用产生了极高的并发访问量和海量的访问数据。而人们通常会将产生的数据存放在数据库系统中,以供查询使用。
在查询数据时,通常会根据某一限定条件,取出自己感兴趣的部分数据。为了加速对这类场景的数据查询,我们通常会选择对查询限定条件的列建立B-Tree索引,这种方式在表的数据量较小的情况下,会有不错的加速效果。
但是随着数据量的不断增加,索引本身也会不断膨胀,这种通过B-Tree索引加速查询的方式就会变得越来越不适合这个场景。因此,亟需一种查询效率更高的方案,以在表的数据量巨大的情况下,获得预期的查询性能结果。
发明内容
本申请的多个方面提供一种数据库排序方法、设备存储介质,用以提高数据库查询效率。
本申请实施例提供一种数据处理方法,包括:
确定待处理数据表中的至少一个排序键;
基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
本申请实施例还提供一种计算设备,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
确定待处理数据表中的至少一个排序键;
基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
本申请实施例还提供一种计算装置,包括:
元数据确定模块,用于确定待处理数据表中的至少一个排序键;
编码处理模块,用于基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
排序模块,用于根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的数据处理方法。
在本申请实施例中,可在待处理数据表中确定至少一个排序键;基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。据此,本申请实施例中,可综合单条记录在不同排序键上的数据取值,确定单条记录的排序编码,并以排序编码作为对数据表中的数据进行排序的基础。这使得,排序后数据表中,在多个列上基本有序,为数据查询提供了更优的查询基础,且无需再建立B-Tree索引,不仅可节省空间占用,还可有效提高数据库查询效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种数据处理方法的流程示意图;
图2为本申请一示例性实施例提供的一种数据处理方法的逻辑示意图;
图3a为本申请一实施例提供的数据取值对应的取值编码的确定方案的流程示意图;
图3b为本申请一示例性实施例提供的一种数据排序方案的流程示意图;
图3c为本申请一示例性实施例提供的一种计算排序编码的方案的流程示意图;
图3d为本申请一示例性实施例提供一种计算坐标值的方案的流程示意图;
图3e为本申请一示例性实施例提供的一种数据查询方案的流程示意图;
图4为本申请一实施例提供的一种排序编码计算方案的逻辑示意图;
图5为本申请另一示例性实施例提供的一种计算装置的结构示意图;
图6为本申请又一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,B-Tree索引的方式不仅需要占用大量磁盘空间,还会局限数据库的查询效率。为改善这些技术问题,本申请的一些实施例中:可在待处理数据表中确定至少一个排序键;基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。据此,本申请实施例中,可综合单条记录在不同排序键上的数据取值,确定单条记录的排序编码,并以排序编码作为对数据表中的数据进行排序的基础,这使得,排序后数据表中,在多个列上基本有序,为数据查询提供了更优的查询基础,从而可有效提高数据库查询效率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种数据处理方法的流程示意图。图2为本申请一示例性实施例提供的一种数据处理方法的逻辑示意图。本实施例提供的数据处理方法可以由一数据处理装置来执行,该数据处理装置可以实现为软件或实现为软件和硬件的组合,该数据处理装置可集成设置在计算设备中。如图1所示,该数据处理方法包括:
步骤100、确定待处理数据表中的至少一个排序键;
步骤101、基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码;
步骤102、根据排序编码,对多条记录进行排序,以获得排序后数据表。
本实施例提供的数据处理方法可应用于各种数据处理场景中,例如,金融场景、电商场景、智能交通场景等等,本实施例对应用场景不做限定。在不同的应用场景中,待处理数据表中的数据内容可能不完全相同。
在步骤100中,可确定待处理数据表中的至少一个排序键。
其中,排序键(SortKey)是表的一种属性,可以将数据表中的数据按照排序键顺序存储在磁盘文件中。
实际应用中,在创建待处理数据表时可将指定的列,作为排序键。
本实施例中,对排序键的数量以及排序键在数据表中的列位置不做限定,可根据实际需要进行设定。
例如,若待处理数据表中包含a、b、c、d四列,则可将地a列和第b列作为排序键。
在步骤101中,可基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码。
其中,数据表中的行称为记录。单条记录中包含的数据可写入数据表中对应的列中,从而构成数据表。
据此,待处理数据表的多条记录中,分别包含位于至少一个排序键下的数据。本实施例中,可获取多条记录各自在至少一个排序键下的数据取值。
承接上例,对于待处理数据表中的第i行记录,可获取其在a列下的数据取值和在b列下的数据取值。
在计算机语言中,数据通常以二进制的形式进行表征,这里,多条记录各自在至少一个排序键下的数据取值可以是二进制数,当然,还可以采用其它数制,本实施例对此不做限定。
参考图1和2,本实施例中,针对单条记录,可综合其在至少一个排序键下的数据取值,来计算排序编码。
其中,排序编码可用于表征记录之间的相对顺序。
据此,本实施例中,可综合考虑待处理数据表中的多条记录在各排序键下的相对顺序,以确定多条记录各自对应的排序编码。这可保证按此排序后的待处理数据表在至少一个排序键下均基本有序。
基于此,在步骤102中,可根据排序编码,对多条记录进行排序,以获得排序后数据表。
实际应用中,可对按照排序编码,对多条记录进行交错排序,以确定多条记录之间的排列顺序,例如,排序编码从小到大的顺序。从而获得排序后数据表。
排序后数据表中,多条记录按照上述确定出的排列顺序进行存储。
本实施例中,可在待处理数据表中确定至少一个排序键;基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。据此,本申请实施例中,可综合单条记录在不同排序键上的数据取值,确定单条记录的排序编码,并以及排序编码作为对数据表中的数据进行排序的基础,这使得,排序后数据表中,在多个列上基本有序,为数据查询提供了更优的查询基础,从而可有效提高数据库查询效率。
在上述或下述实施例中,可基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置;根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码。
从单个排序键的角度来看,排序键下包含多个数据,分别隶属于不同记录。排序键下的多个数据之间,存在取值大小关系。
基于此,本实施例中,可基于目标排序键下的多个数据之间的取值大小关系,分别确定多条记录在目标排序键下的排序位置。其中,目标排序键可以是至少一个排序键中的任意一个,后文中,还会以目标排序键的视角描述单个排序键下的处理方案。
例如,在前述示例中的a列下,待处理数据表中的三条记录:记录1、记录2和记录3中在a列下的数据取值分别为a1、a2和a3。若a2>a1>a3,则在排序键a列下三条记录的排序位置分别为第2位、第1位和第3位。
本实施例中,可采用多种实现方式,确定多条记录在至少一个排序键下的排序位置。
在一种示例性实现方式中,可基于至少一个排序键,构建一N维空间坐标系,N等于排序键的数量,且空间坐标系的N个维度与至少一个排序键对应。
在该实现方式中,引入了空间坐标系的概念,来将抽象化的排序关系进行具体化。实际应用中,可引入栅格空间坐标系,来进行排序位置的定义。当然,本实施例并不限于此。
在该实现方式中,可根据排序键的数量,确定空间坐标系的维数。空间坐标系中的维度与排序键一一对应。
在此基础上,可将多条记录各自在至少一个排序键下的数据取值,分别映射至该N维空间坐标系中,以获得多个数据取值各自在N维空间坐标系中的坐标。
其中,目标排序键下的多个数据将映射至空间坐标系中与目标排序键对应的目标维度上。据此,在目标排序键下,某个数据在N维空间坐标系中的坐标,即可作为该数据取值所隶属的记录在目标维度上的坐标。
这样,可根据多个数据取值各自在N维空间坐标系中的坐标,确定多条记录各自在N个维度上的坐标,作为多条记录各自在至少一个排序键下的排序位置。
以目标记录为例,可将目标记录在第n个排序键下的数据取值在N维空间坐标系中的坐标,作为目标记录在空间坐标系中的第n个维度上的坐标,从而可确定出目标记录在空间坐标系中N个维度上的坐标。其中,目标记录为多条记录中的任一条,后文中,还会以目标记录的视角,描述单条记录下的处理方案。
这样,该实现方式中,可通过单条记录在空间坐标系中各维度上的坐标,来表征单条记录在各排序键下的排序位置。
其中,上述的映射过程可以是:获取目标记录在目标排序键下的目标数据取值;按照目标排序键对应的维度上的坐标数制和坐标长度,将目标数据取值转换为符合坐标数制和坐标长度的编码,作为目标数据取值对应的取值编码;将取值编码,作为目标记录在目标排序键对应的维度上的坐标。其中,目标记录为多条记录中的任一条。
此处,可在空间坐标系下设定单个维度下的坐标数制和坐标长度。通常,N个维度下的坐标数制和坐标长度保持一致,当然,本实施例并不限于此。另外,本实施例中的坐标数制和坐标长度可根据实际需要进行灵活设定。
实际应用中,可根据排序编码的长度以及待处理数据表中排序键的数量,确定坐标长度。可选地,可将排序编码的长度与待处理数据表中排序键的数量之间的比值对应的商数,作为坐标长度。
例如,若排序编码的位数为64位,待处理数据表中的排序键的数量为2,则坐标长度可设定为32位。当然,这里提及的数字均是示例性的,仅用来标识坐标长度的确定过程,不代表实际的编码位数。
通常,排序编码的数制与坐标数制一致,例如,都采用二进制,当然,也可采用其它数制。
图3a为本申请一实施例提供的数据取值对应的取值编码的确定方案的流程示意图。
参考图3a,不同排序键的属性可能不完全相同,据此,针对不同属性的排序键,可采用不同的方案来确定目标数据取值对应的取值编码。
还是以目标记录在目标排序键下的目标取值为例。
在第一种情况下,若目标排序键为无符号标量类型,且目标排序键下的最大数据取值的位数未超过前述的坐标长度,则可直接将目标数据取值转换为符合前述的坐标数制和坐标长度的编码,而获得取值编码。例如,直接将目标数据取值转换为32位二进制数,而获得目标数据取值对应的取值编码。
其中,标量类型是指排序键下的数据取值均为定长值。无符号类型则可指排序键下的数据取值不存在正负,例如,均为正数。
在第二种情况下,若目标排序键为无符号标量类型,且目标排序键下的最大数据取值的位数超过前述的坐标长度,则可按照目标排序键对应的压缩参数,对目标数据取值进行压缩,以获得目标数据取值对应的压缩值;按照目标排序键对应的维度上的坐标数制和坐标长度,对第一压缩值进行编码,以获得目标数据取值对应的取值编码。
若目标排序键下的最大数据取值的长度过长,则目标排序键下的多个数据可能会倾斜至某一数据区间,这一数据区间可能与其它排序键下的数据所处的数据区间相距较远。
为此,可对目标排序键下的多个数据取值进行同步压缩。多个数据取值采用相同的压缩参数的情况下,压缩处理将不会对多个数据取值之间的相对顺序造成破坏,也即可保持多个数据取值之间的原始相对顺序。
之后,可将压缩后获得的压缩值转换为目标数据取值对应的取值编码。
这样,可拉近目标排序键下的多个数据所属的数据区间与其它排序键下的数据所处的数据区间之间的距离,进而可保证各排序键下的数据取值均匀映射至空间坐标系。
至此,可在这种情况下,确定出目标数据取值对应的取值编码。
在第三种情况下,若目标排序键不属于无符号标量类型,则可将目标数据取值和目标排序键下的最大数据取值转换为无符号标量值。
其中,目标排序键可能属于非标量类型,或者有符号类型。非标量类型是指排序键下的数据取值为变长值,也即长度可变的值。而有符号类型则可指排序键下的数据取值有正数有负数。
在一种示例性方案中,若目标排序键属于非标量类型,则可按照预设的截取位数,分别截取目标数据取值和目标排序键下的最大数据取值的高位,以获得目标数据取值和目标排序键下的最大数据取值各自对应的标量值。当然,将目标数据取值和目标排序键下的最大数据取值转换为标量值的方案并不限于此。
在另一种示例性方案中,若目标排序键属于有符号类型,则可获取目标排序键下的最小数据取值;将最小数据取值的绝对值叠加至目标数据取值和目标排序键下的最大数据取值,以获得目标数据取值和目标排序键下的最大数据取值各自对应的无符号值。
例如,目标数据取值为x,目标排序键下的最小数据取值为-y,最大数据取值为z,则可x对应的无符号值为x’=x+|y|;z对应的无符号值为z’=z+|y|。
在又一种示例性方案中,若目标排序键属于非标量类型且有符号类型,则可将上述两种示例性方案结合,以计算目标数据取值和目标排序键下的最大数据取值各自对应的无符号标量值。
在将目标数据取值和目标排序键下的最大数据取值转换为无符号标量值后,可继续判断目标排序键的最大数据取值对应的无符号标量值的长度是否前述的坐标长度,并根据判断结果,对目标数据取值对应的无符号标量值进行相应的处理,以目标数据取值对应的取值编码。
其中,根据判断结果,对目标数据取值对应的无符号标量值进行相应的处理,可适应性参考前述第一种和第二种情况中的相关描述,在此不再重复。
另外,在上述第二种和第三种情况中,需要确定目标排序键对应的压缩参数。
在一种示例性方案中,可在目标排序键下的最大数据取值对应的无符号标量值的位数超过坐标长度的情况下,以将最大数据取值对应的无符号标量值的位数降低至坐标长度为目标,对最大数据取值对应的无符号标量值进行压缩,以获得最大数据取值对应的无符号标量值的压缩值;根据最大数据取值对应的无符号标量值与其压缩值之间的差异,确定目标排序键对应的压缩参数。
值得说明的是,这里提到了最大数据取值对应的无符号标量值。应当理解的是,在目标排序键为无符号标量类型的情况下(即前述的第二种情况),可直接将最大数据取值本身作为无符号标量值;而在目标排序键不是无符号标量类型的情况下(即前述的第三种情况),则可基于第三种情况中提供的方案,将目标排序键下的最大数据取值转换为无符号标量值后,根据最大数据取值对应的无符号标量值,确定压缩参数。
例如,若目标排序键下的最大数据取值的位数为48位,超过目标排序键对应的维度上的坐标长度32位,则可将该最大数据取值压缩至32位所能表征的最大数值。在二进制下,也即将该最大数值取值压缩至32位全取1时所表征的数值。当然,这不是必须的,还可将该最大数据取值压缩至32位能表征的其它数值。
经过压缩后,目标排序键下的最大数据取值对应的无符号标量值和其压缩值之间将存在差异,这种差异可以是线性或非线性的,在此不做限定。基于此,可将双方之间的差异,作为目标排序键对应的压缩参数。
基于确定出的压缩参数,可对目标排序键下的多个数据取值进行同步压缩,以保持多个数据取值之间的相对顺序。
至此,可确定出目标记录在空间坐标系中的N个维度上的坐标。
在此基础上,可对目标记录在N个维度上的坐标进行莫顿编码,以获得目标记录对应的排序编码。
实际应用中,可基于Z阶曲线原理,将目标记录在N个维度上的坐标转换为一个一维数值,作为目标记录对应的排序编码。
图4为本申请一实施例提供的一种排序编码计算方案的逻辑示意图。
参考图4,若排序键为a列和b列,目标记录在a列的坐标为0101,在b列的坐标为0110,则经过莫顿编码后,可获得排序编码00110110。
可知,排序编码符合Z阶曲线原理,排序编码是单条记录在空间坐标系中N个维度上的坐标的综合,且保留了N个维度上坐标之间的局部性。这使得排序编码承载了单条记录在至少一个排序键下的排序位置。
综上,本实施例中,可基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置;并可根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码。据此,本实施例中获得的排序编码可承载了单条记录在至少一个排序键下的排序位置,这使得基于排序编码进行排序后的数据表中,在至少一个排序键下均基本有序,也即,排序后数据表在多个列下基本有序,从而实现在查询条件中未限定第一列排序键时,也可获得预期的查询效率和准确率。
在上述或下述实施例中,可根据排序编码,对多条记录进行排序,以获得多条记录的排序参数;将排序参数持久化至一临时表中;对临时表和待处理数据表进行交换,以调整待处理数据表中的数据顺序,获得排序后的数据表。
本实施例中,可基于多条记录各自对应的排序编码,从记录的层面,对待处理数据表中的数据进行重新排序,以产生排序后数据表。
另外,本实施例中,还可基于排序后数据表,在至少一个排序键下划分用于粗糙集过来的数据块;根据划分出的数据块,构建待处理数据表的数据块索引。
实际应用中,可在将排序参数持久化至一临时表的同时,获取用于粗糙集过滤的数据块的最大数据取值和最小数据取值等元信息,并将元信息记录到数据块索引中,作为粗糙集过滤时的查询基础。
至此,完成了多维有序数据的建立。主要包括前文提及的两方面的处理过程,即对待处理数据表中数据的重新排序过程,以及基于排序后数据建立数据块索引的过程。
在此基础上,本实施例中,可接收数据查询请求,数据查询请求中包含查询限制条件;根据查询限制条件和数据块索引,对排序后数据表进行粗糙集过滤,以筛选出目标数据。
由于排序后数据表在至少一个排序键下均基本有序,也即多维度有序,这使得数据块索引中的数据块的最大数据取值和最小数据取值更加准确,因此,可在粗糙集过滤时更加准确地过滤掉不需要加载或解压的数据块,从而达到加速数据扫描查询的效果。
据此,本实施例中,经过前文中的数据排序之后,在使用粗糙集过滤进行带限定条件的查询时,在查询限制条件中不包含第一列排序键的情况下,依然能够提升粗糙集过滤技术性能的效果。且查询限制条件中包含的排序键的限定条件越多,效果越好。这使得,本实施例提供的查询方案,在PB级数据仓库的场景下,完全可以替代对多列建B-Tree索引带来的查询性能提升,并且指数级地节省了存储空间。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如100、101等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的数值、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图3b为本申请一示例性实施例提供的一种数据排序方案的流程示意图,图3c为本申请一示例性实施例提供的一种计算排序编码的方案的流程示意图,图3d为本申请一示例性实施例提供一种计算坐标值的方案的流程示意图。
下面结合图3b~3d,示例性说明对数据表进行排序的过程。
参考图3b,首先,可根据表定义,确定待处理数据表中的排序键集合,以及各排序键的元数据信息。
其中,各排序键的元数据信息包括但不限于:最大数据取值、最小数据取值、类型、长度等等。
基于此,可从各排序键的元数据信息中,分别获取最大数据取值和最小数据取值,以构造精度网格。
其中,精度网络可对应前文中的坐标数制和坐标长度。
之后,可根据上面的输入信息,精度网格等,在单条记录下,对各排序键集合汇总的各列进行交错编码处理,以获得各条记录对应的排序编码。
根据排序编码对整张数据表进行排序,并将有序的数据持久化。
在数据持久化的同时,记录粗糙集过滤需要的数据块索引等元数据信息。
其中,图3c提供了一种实现图3b中计算各条记录对应的排序编码的示例性方案。
参考图3c,首先可从待处理数据表中,逐个获取一条记录在至少一个排序键下的数据取值。后面以目标记录为例,进行阐述。
之后,依次对目标记录在至少一个排序键下的数据取值进行转化处理。这里的转化处理将在图3d中进行展开描述。
然后,对转化处理后的取值编码,进行莫顿交错编码。
输出莫顿交错编码的结果,作为该条记录对应的排序编码。
其中,图3d提供了一种实现图3c中,依次对至少一个排序键下的数据取值进行转化处理的示例性方案。
参考图3d,首先,可从图3c所处理的记录中,取出其在排序键集合中目标排序键下的目标数据取值。
之后,判断目标排序键是否为标量类型,如果否,则截取目标数据取值对应的二进制数的高位,以转换为标量值;还会判断目标排序键是否为无符号类型,若否,则基于目标排序键的最大数据取值和最小数据取值,将目标数据取值转换为无符号标量值。
然后,计算目标排序键的最大数据取值对应的最大无符号标量值,并确定能够表征该最大无符号标量值的最小二进制的位数,用这个最小二进制数作为网格精度,计算目标数据取值对应的无符号标量值在栅格网格上的坐标值。其中,栅格网格中包含至少一个维度,分别与至少一个排序键一一对应。
具体地,可基于前文中提及的,根据最大无符号标量值的最小二进制的位数与精度网格上的坐标长度相比,以确定目标排序键对应的压缩参数,从而对目标数据取值对应的无符号标量值进行相应地压缩,以获得目标数据取值对应的压缩值;再按照精度网格上的坐标数制和坐标长度,对该压缩值进行编码,以获得取值编码。
将取值编码,作为该条记录在目标排序键对应的维度上的坐标值。
基于此,可保存该坐标值,以用于图3c中的模块交错编码步骤。
值得说明的是,图3b~3d中提供的数据排序方案仅为示例性的,本实施例并不局限于此。
图3e为本申请一示例性实施例提供的一种数据查询方案的流程示意图。
以下结合图3e,示例性说明数据查询的过程。
基于前述的数据排序方案处理后的数据表,可开始数据扫描。
首先,可获取限定条件,并判断限定条件中是否包含支持粗糙集过滤的列;若包含,则可利用粗糙集源数据信息(例如,数据块索引),过滤掉不需要加载解压的数据块,之后扫描必须扫描的数据块,以获取符合所有限定条件的记录;若未包含,则需要扫描必须扫描的数据块,以获取符合所有限定条件的记录。
值得说明的是,图3e中提供的数据查询方案仅为示例性的,本实施例并不局限于此。
图5为本申请另一示例性实施例提供的一种计算装置的结构示意图。如图5所示,该计算装置包括:
元数据确定模块50,用于确定待处理数据表中的至少一个排序键;
编码处理模块51,用于基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码;
排序模块52,用于根据排序编码,对多条记录进行排序,以获得排序后数据表。
在一可选实施例中,编码处理模块51在基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码时,用于:
基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置;
根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码。
在一可选实施例中,编码处理模块51在基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置时,用于:
将多条记录各自在至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得多个数据取值各自在N维空间坐标系中的坐标;
根据多个数据取值各自在N维空间坐标系中的坐标,计算多条记录各自在N个维度上的坐标,作为多条记录各自在至少一个排序键下的排序位置;
其中,N等于排序键的数量,且N维空间坐标系的N个维度分别与至少一个排序键对应。
在一可选实施例中,编码处理模块51在将多条记录各自在至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得多个数据取值各自在N维空间坐标系中的坐标时,用于:
获取目标记录在目标排序键下的目标数据取值;
按照目标排序键对应的维度上的坐标数制和坐标长度,将目标数据取值转换为符合坐标数制和坐标长度的编码,作为目标数据取值对应的取值编码;
将取值编码,作为目标记录在目标排序键对应的维度上的坐标;
其中,目标记录为多条记录中的任一条,目标排序键为至少一个排序键中的任一个。
在一可选实施例中,元数据确定模块50,还用于获取目标排序键下的最大数据取值;
编码处理模块51在按照目标排序键对应的维度上的坐标数制和坐标长度,将目标数据取值转换为符合坐标数制和坐标长度的编码,作为取值编码时,用于:
若目标排序键为无符号标量类型且目标排序键下的最大数据取值的位数超过坐标长度,则按照目标排序键对应的压缩参数,对目标数据取值进行压缩,以获得目标数据取值对应的第一压缩值;
按照坐标数制和坐标长度,对第一压缩值进行编码,以获得取值编码。
在一可选实施例中,编码处理模块51还用于:
若目标排序键不属于无符号标量值,则将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值;
若目标排序键下的最大数据取值对应的无符号标量值的位数超过坐标长度,则按照目标排序键对应的压缩参数,对目标数据取值对应的无符号标量值进行压缩,以获得目标数据取值对应的无符号标量的第二压缩值;
按照坐标数制和坐标长度,对第二压缩值进行编码,以获得取值编码。
在一可选实施例中,若目标排序键不属于无符号标量值,则编码处理模块51在将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值时,用于:
若目标排序键为非标量类型,则按照预设的截取位数,截取目标数据取值和最大数据取值的高位,以获得目标数据取值和最大数据取值各自对应的标量值。
在一可选实施例中,元数据确定模块50,还用于若目标排序键为有符号类型,则获取待处理数据表中目标排序键下的最小数据取值;
若目标排序键不属于无符号标量值,则编码处理模块51在将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值时,用于:
将最小数据取值的绝对值分别叠加至目标数据取值和最大数据取值,以获得目标数据取值和最大数据取值各自对应的无符号值。
在一可选实施例中,元数据确定模块50,还用于获取数据表中位于目标排序键下的最大数据取值;
编码处理模块51还用于:
若最大数据取值对应的无符号标量值的位数超过坐标长度,则以将最大数据取值对应的无符号标量值的位数降低至坐标长度为目标,对最大数据取值对应的无符号标量值进行压缩,以获得最大数据取值对应的无符号标量值的压缩值;
根据最大数据取值对应的无符号标量值与其压缩值之间的差异,确定目标排序键对应的压缩参数。
在一可选实施例中,编码处理模块51还用于:
根据排序编码的长度以及待处理数据表中排序键的数量,确定目标排序键对应的维度上的的坐标位数。
在一可选实施例中,编码处理模块51在根据排序编码的长度以及待处理数据表中排序键的数量,确定目标排序键对应的维度上的坐标位数时,用于:
将排序编码的长度与待处理数据表中排序键的数量之间的比值对应的商数,作为目标排序键对应的维度上的坐标位数。
在一可选实施例中,编码处理模块51在根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码时,用于:
对目标记录在N个维度上的坐标进行莫顿编码,以获得目标记录对应的排序编码;
其中,目标记录为多条记录中的任一条。
在一可选实施例中,编码处理模块51在对目标记录在N个维度上的坐标进行莫顿编码时,用于:
基于Z阶曲线原理,将目标记录在N个维度上的坐标转换为一个一维数值,作为目标记录对应的排序编码。
在一可选实施例中,排序模块52在根据排序编码,对多条记录进行排序,以获得排序后数据表时,用于:
根据排序编码,对多条记录进行排序,以获得多条记录的排序参数;
计算装置还包括数据写入模块53,用于将排序参数持久化至一临时表中;对临时表和待处理数据表进行交换,以调整待处理数据表中的数据顺序,获得排序后的数据表。
在一可选实施例中,计算装置还包括块索引写入模块54,用于:
基于排序后数据表,在至少一个排序键下划分用于粗糙集过来的数据块;
根据划分出的数据块,构建待处理数据表的数据块索引。
在一可选实施例中,计算装置还包括块索引查询模块55和数据查询模块56,用于:
数据查询模块56,用于接收数据查询请求,数据查询请求中包含查询限制条件;
块索引查询模块55,用于根据查询限制条件和数据块索引,对排序后数据表进行粗糙集过滤;
数据查询模块56,从经粗糙集过滤后的数据表中,筛选出目标数据。
值得说明的是,上述关于计算装置的各实施例中的技术细节,可参考前述的数据处理方法相关实施例中的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
图6为本申请又一示例性实施例提供的一种计算设备的结构示意图。如图6所示,该计算设备包括存储器60和处理器61;
存储器60用于存储一条或多条计算机指令;
处理器61与存储器61耦合,用于执行一条或多条计算机指令,以用于:
确定待处理数据表中的至少一个排序键;
基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码;
根据排序编码,对多条记录进行排序,以获得排序后数据表。
在一可选实施例中,处理器61在基于待处理数据表包含的多条记录各自在至少一个排序键下的数据取值,计算多条记录各自对应的排序编码时,用于:
基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置;
根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码。
在一可选实施例中,处理器61在基于待处理数据集包含的多条记录各自在至少一个排序键下的数据取值,确定多条记录各自在至少一个排序键下的排序位置时,用于:
将多条记录各自在至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得多个数据取值各自在N维空间坐标系中的坐标;
根据多个数据取值各自在N维空间坐标系中的坐标,计算多条记录各自在N个维度上的坐标,作为多条记录各自在至少一个排序键下的排序位置;
其中,N等于排序键的数量,且N维空间坐标系的N个维度分别与至少一个排序键对应。
在一可选实施例中,处理器61在将多条记录各自在至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得多个数据取值各自在N维空间坐标系中的坐标时,用于:
获取目标记录在目标排序键下的目标数据取值;
按照目标排序键对应的维度上的坐标数制和坐标长度,将目标数据取值转换为符合坐标数制和坐标长度的编码,作为目标数据取值对应的取值编码;
将取值编码,作为目标记录在目标排序键对应的维度上的坐标;
其中,目标记录为多条记录中的任一条,目标排序键为至少一个排序键中的任一个。
在一可选实施例中,处理器61在按照目标排序键对应的维度上的坐标数制和坐标长度,将目标数据取值转换为符合坐标数制和坐标长度的编码,作为取值编码时,用于:
若目标排序键为无符号标量类型且目标排序键下的最大数据取值的位数超过坐标长度,则按照目标排序键对应的压缩参数,对目标数据取值进行压缩,以获得目标数据取值对应的第一压缩值;
按照坐标数制和坐标长度,对第一压缩值进行编码,以获得取值编码。
在一可选实施例中,处理器61还用于:
若目标排序键不属于无符号标量值,则将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值;
若目标排序键下的最大数据取值对应的无符号标量值的位数超过坐标长度,则按照目标排序键对应的压缩参数,对目标数据取值对应的无符号标量值进行压缩,以获得目标数据取值对应的无符号标量的第二压缩值;
按照坐标数制和坐标长度,对第二压缩值进行编码,以获得取值编码。
在一可选实施例中,若目标排序键不属于无符号标量值,则处理器61在将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值时,用于:
若目标排序键为非标量类型,则按照预设的截取位数,截取目标数据取值和最大数据取值的高位,以获得目标数据取值和最大数据取值各自对应的标量值。
在一可选实施例中,若目标排序键不属于无符号标量值,则处理器61在将目标数据取值以及目标排序键下的最大数据取值转换为无符号标量值时,用于:
若目标排序键为有符号类型,则获取待处理数据表中目标排序键下的最小数据取值;
将最小数据取值的绝对值分别叠加至目标数据取值和最大数据取值,以获得目标数据取值和最大数据取值各自对应的无符号值。
在一可选实施例中,处理器61还用于:
获取数据表中位于目标排序键下的最大数据取值;
若最大数据取值对应的无符号标量值的位数超过坐标长度,则以将最大数据取值对应的无符号标量值的位数降低至坐标长度为目标,对最大数据取值对应的无符号标量值进行压缩,以获得最大数据取值对应的无符号标量值的压缩值;
根据最大数据取值对应的无符号标量值与其压缩值之间的差异,确定目标排序键对应的压缩参数。
在一可选实施例中,处理器61还用于:
根据排序编码的长度以及待处理数据表中排序键的数量,确定目标排序键对应的维度上的的坐标位数。
在一可选实施例中,处理器61在根据排序编码的长度以及待处理数据表中排序键的数量,确定目标排序键对应的维度上的坐标位数时,用于:
将排序编码的长度与待处理数据表中排序键的数量之间的比值对应的商数,作为目标排序键对应的维度上的坐标位数。
在一可选实施例中,处理器61在根据多条记录各自在至少一个排序键下的排序位置,确定多条记录各自对应的排序编码时,用于:
对目标记录在N个维度上的坐标进行莫顿编码,以获得目标记录对应的排序编码;
其中,目标记录为多条记录中的任一条。
在一可选实施例中,处理器61在对目标记录在N个维度上的坐标进行莫顿编码时,用于:
基于Z阶曲线原理,将目标记录在N个维度上的坐标转换为一个一维数值,作为目标记录对应的排序编码。
在一可选实施例中,处理器61在根据排序编码,对多条记录进行排序,以获得排序后数据表时,用于:
根据排序编码,对多条记录进行排序,以获得多条记录的排序参数;
将排序参数持久化至一临时表中;
对临时表和待处理数据表进行交换,以调整待处理数据表中的数据顺序,获得排序后的数据表。
在一可选实施例中,处理器61还用于:
基于排序后数据表,在至少一个排序键下划分用于粗糙集过来的数据块;
根据划分出的数据块,构建待处理数据表的数据块索引。
在一可选实施例中,处理器61还用于:
接收数据查询请求,数据查询请求中包含查询限制条件;
根据查询限制条件和数据块索引,对排序后数据表进行粗糙集过滤,以筛选出目标数据。
值得说明的是,上述关于计算设备的各实施例中的技术细节,可参考前述的数据处理方法相关实施例中的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
进一步,如图6所示,该计算设备还包括:通信组件62、电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着计算设备只包括图6所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
其中,图6的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
其中,图6中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
其中,图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种数据处理方法,包括:
确定待处理数据表中的至少一个排序键;
基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
2.根据权利要求1所述的方法,所述基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码,包括:
基于所述待处理数据集包含的多条记录各自在所述至少一个排序键下的数据取值,确定所述多条记录各自在所述至少一个排序键下的排序位置;
根据所述多条记录各自在所述至少一个排序键下的排序位置,确定所述多条记录各自对应的排序编码。
3.根据权利要求2所述的方法,所述基于所述待处理数据集包含的多条记录各自在所述至少一个排序键下的数据取值,确定所述多条记录各自在所述至少一个排序键下的排序位置,包括:
将所述多条记录各自在所述至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得所述多个数据取值各自在所述N维空间坐标系中的坐标;
根据所述多个数据取值各自在所述N维空间坐标系中的坐标,计算所述多条记录各自在所述N个维度上的坐标,作为所述多条记录各自在所述至少一个排序键下的排序位置;
其中,N等于排序键的数量,且所述N维空间坐标系的N个维度分别与所述至少一个排序键对应。
4.根据权利要求3所述的方法,所述将所述多条记录各自在所述至少一个排序键下的数据取值,分别映射至一N维空间坐标系中,以获得所述多个数据取值各自在所述N维空间坐标系中的坐标,包括:
获取目标记录在目标排序键下的目标数据取值;
按照所述目标排序键对应的维度上的坐标数制和坐标长度,将所述目标数据取值转换为符合所述坐标数制和坐标长度的编码,作为所述目标数据取值对应的取值编码;
将所述取值编码,作为所述目标记录在所述目标排序键对应的维度上的坐标;
其中,所述目标记录为所述多条记录中的任一条,所述目标排序键为所述至少一个排序键中的任一个。
5.根据权利要求4所述的方法,所述按照所述目标排序键对应的维度上的坐标数制和坐标长度,将所述目标数据取值转换为符合所述坐标数制和坐标长度的编码,作为取值编码,包括:
若所述目标排序键为无符号标量类型且所述目标排序键下的最大数据取值的位数超过所述坐标长度,则按照所述目标排序键对应的压缩参数,对所述目标数据取值进行压缩,以获得所述目标数据取值对应的第一压缩值;
按照所述坐标数制和坐标长度,对所述第一压缩值进行编码,以获得所述取值编码。
6.根据权利要求5所述的方法,还包括:
若所述目标排序键不属于无符号标量值,则将所述目标数据取值以及所述目标排序键下的最大数据取值转换为无符号标量值;
若所述目标排序键下的最大数据取值对应的无符号标量值的位数超过所述坐标长度,则按照所述目标排序键对应的压缩参数,对所述目标数据取值对应的无符号标量值进行压缩,以获得所述目标数据取值对应的无符号标量的第二压缩值;
按照所述坐标数制和坐标长度,对所述第二压缩值进行编码,以获得所述取值编码。
7.根据权利要求6所述的方法,所述若所述目标排序键不属于无符号标量值,则将所述目标数据取值以及所述目标排序键下的最大数据取值转换为无符号标量值,包括:
若所述目标排序键为非标量类型,则按照预设的截取位数,截取所述目标数据取值和所述最大数据取值的高位,以获得所述目标数据取值和所述最大数据取值各自对应的标量值。
8.根据权利要求6所述的方法,所述若所述目标排序键不属于无符号标量值,则将所述目标数据取值以及所述目标排序键下的最大数据取值转换为无符号标量值,包括:
若所述目标排序键为有符号类型,则获取所述待处理数据表中所述目标排序键下的最小数据取值;
将所述最小数据取值的绝对值分别叠加至所述目标数据取值和所述最大数据取值,以获得所述目标数据取值和所述最大数据取值各自对应的无符号值。
9.根据权利要求5或6所述的方法,还包括:
获取所述数据表中位于所述目标排序键下的最大数据取值;
若所述最大数据取值对应的无符号标量值的位数超过所述坐标长度,则以将所述最大数据取值对应的无符号标量值的位数降低至所述坐标长度为目标,对所述最大数据取值对应的无符号标量值进行压缩,以获得所述最大数据取值对应的无符号标量值的压缩值;
根据所述最大数据取值对应的无符号标量值与其压缩值之间的差异,确定所述目标排序键对应的压缩参数。
10.根据权利要求4所述的方法,还包括:
根据所述排序编码的长度以及所述待处理数据表中排序键的数量,确定所述目标排序键对应的维度上的的坐标位数。
11.根据权利要求10所述的方法,所述根据所述排序编码的长度以及所述待处理数据表中排序键的数量,确定所述目标排序键对应的维度上的坐标位数,包括:
将所述排序编码的长度与所述待处理数据表中排序键的数量之间的比值对应的商数,作为所述目标排序键对应的维度上的坐标位数。
12.根据权利要求3所述的方法,所述根据所述多条记录各自在所述至少一个排序键下的排序位置,确定所述多条记录各自对应的排序编码,包括:
对所述目标记录在所述N个维度上的坐标进行莫顿编码,以获得所述目标记录对应的排序编码;
其中,所述目标记录为所述多条记录中的任一条。
13.根据权利要求12所述的方法,所述对所述目标记录在所述N个维度上的坐标进行莫顿编码,包括:
基于Z阶曲线原理,将所述目标记录在所述N个维度上的坐标转换为一个一维数值,作为所述目标记录对应的排序编码。
14.根据权利要求1所述的方法,所述根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表,包括:
根据所述排序编码,对所述多条记录进行排序,以获得所述多条记录的排序参数;
将所述排序参数持久化至一临时表中;
对所述临时表和所述待处理数据表进行交换,以调整所述待处理数据表中的数据顺序,获得所述排序后的数据表。
15.根据权利要求1所述的方法,还包括:
基于所述排序后数据表,在所述至少一个排序键下划分用于粗糙集过来的数据块;
根据划分出的数据块,构建所述待处理数据表的数据块索引。
16.根据权利要求15所述的方法,还包括:
接收数据查询请求,所述数据查询请求中包含查询限制条件;
根据所述查询限制条件和所述数据块索引,对所述排序后数据表进行粗糙集过滤,以筛选出目标数据。
17.一种计算设备,包括存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:
确定待处理数据表中的至少一个排序键;
基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
18.一种计算装置,包括:
元数据确定模块,用于确定待处理数据表中的至少一个排序键;
编码处理模块,用于基于所述待处理数据表包含的多条记录各自在所述至少一个排序键下的数据取值,计算所述多条记录各自对应的排序编码;
排序模块,用于根据所述排序编码,对所述多条记录进行排序,以获得排序后数据表。
19.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-16任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475804.2A CN111813840B (zh) | 2020-05-29 | 2020-05-29 | 一种数据处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475804.2A CN111813840B (zh) | 2020-05-29 | 2020-05-29 | 一种数据处理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813840A true CN111813840A (zh) | 2020-10-23 |
CN111813840B CN111813840B (zh) | 2022-06-14 |
Family
ID=72848541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010475804.2A Active CN111813840B (zh) | 2020-05-29 | 2020-05-29 | 一种数据处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813840B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699223A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111489A (zh) * | 2014-11-14 | 2017-08-29 | 英特尔公司 | 莫顿坐标调整处理器、方法、系统和指令 |
US10114846B1 (en) * | 2016-06-24 | 2018-10-30 | Amazon Technologies, Inc. | Balanced distribution of sort order values for a multi-column sort order of a relational database |
CN109101471A (zh) * | 2018-06-11 | 2018-12-28 | 玖富金科控股集团有限责任公司 | 一种数据排序方法、电子设备和可读存储介质 |
-
2020
- 2020-05-29 CN CN202010475804.2A patent/CN111813840B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111489A (zh) * | 2014-11-14 | 2017-08-29 | 英特尔公司 | 莫顿坐标调整处理器、方法、系统和指令 |
US10114846B1 (en) * | 2016-06-24 | 2018-10-30 | Amazon Technologies, Inc. | Balanced distribution of sort order values for a multi-column sort order of a relational database |
CN109101471A (zh) * | 2018-06-11 | 2018-12-28 | 玖富金科控股集团有限责任公司 | 一种数据排序方法、电子设备和可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699223A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN112699223B (zh) * | 2021-01-13 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN113312313B (zh) * | 2021-01-29 | 2023-09-29 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111813840B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813840B (zh) | 一种数据处理方法、设备及存储介质 | |
CN110413611B (zh) | 数据存储、查询方法及装置 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN112347118B (zh) | 数据存储、查询与生成方法、数据库引擎及存储介质 | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
CN110968579B (zh) | 执行计划的生成与执行方法、数据库引擎及存储介质 | |
CN111221813B (zh) | 数据库索引以及数据库查询的处理方法、装置及设备 | |
CN112214472A (zh) | 气象格点数据的存储及查询方法、装置及存储介质 | |
CN110968585A (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN105095515A (zh) | 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备 | |
CN103780263A (zh) | 数据压缩装置、数据压缩方法及记录介质 | |
CN110020001A (zh) | 字符串数据的存储、查询方法以及相应的设备 | |
CN104111899A (zh) | 一种缓存数据的存储方法及系统及读取方法 | |
CN112749157A (zh) | 数据表的处理方法、装置、存储介质和设备 | |
CN107153651B (zh) | 一种多维交叉数据处理方法及装置 | |
CN110968555A (zh) | 维度数据处理方法和装置 | |
CN111159192B (zh) | 基于大数据的数据入库方法、装置、存储介质和处理器 | |
CN115129786A (zh) | 一种维护区块链数据的方法、装置、电子设备和存储介质 | |
CN112463785A (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
CN107992555B (zh) | 一种栅格数据的存储及读取方法 | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
CN113449208A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231222 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: ALIBABA GROUP HOLDING Ltd. |