数据处理方法、装置、设备和存储介质制造方法及图纸

技术编号:34617128 阅读:12 留言:0更新日期:2022-08-20 09:23
本申请公开了一种数据处理方法、装置、设备和存储介质。该数据处理方法通过对比多列数据中第i列数据的数据值,调整第i列数据所在行的行号和第i列数据中与行号对应的数据,得到第一排序结果,接着,在第一排序结果包括相同的数据值情况下,根据相同的数据值所在行号的第i+1列目标数据的数据值,调整至少两个相同的数据值所在的行号,得到行号的排序结果,并基于行号的排序结果,确定多列数据的有序数据。根据本申请实施例提供的数据处理方法,摒弃传统逐行排序的方式,采用逐列排序,能够减少计算资源和内存资源的消耗,同时还能减少访存开销,提升数据库的数据排序性能。提升数据库的数据排序性能。提升数据库的数据排序性能。

【技术实现步骤摘要】
数据处理方法、装置、设备和存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据处理方法、装置、设备和存储介质。

技术介绍

[0002]数据库是按照数据结构来组织、存储和管理数据的仓库,通常包括多张数据表,在实际应用中,会根据实际需求对数据表中的数据进行排序。
[0003]相关技术中,可以依据数据表中的行号对多张数据表中的数据进行排序,然而,由于多张数据表的数据过多,使得数据排序过程不仅会消耗大量的计算资源和内存资源,还会降低访问数据库的排序性能。

技术实现思路

[0004]本申请实施例提供一种基于数据处理方法、装置、设备和存储介质,能够减少数据排序中计算资源和内存资源的消耗,提升数据库的数据排序性能。
[0005]根据本申请实施例的第一方面,提供一种数据处理方法,包括:
[0006]获取列式数据库中待排序的多列数据;
[0007]按照多列数据中第i列数据的数据值,调整第i列数据所在行的行号和第i列数据中与行号对应的数据,得到第一排序结果,i为大于或者等于1的整数;
[0008]在第一排序结果包括相同的数据值情况下,根据相同的数据值所在行号的第i+1列目标数据的数据值,调整至少两个相同的数据值所在的行号,得到行号的排序结果;
[0009]基于行号的排序结果,确定多列数据的有序数据。
[0010]根据本申请实施例的第二方面,提供一种数据处理装置,包括:
[0011]获取模块,用于获取列式数据库中待排序的多列数据;
[0012]调整模块,用于按照多列数据中第i列数据的数据值,调整第i列数据所在行的行号和第i列数据中与行号对应的数据,得到第一排序结果,i为大于或者等于1的整数;
[0013]调整模块还用于,在第一排序结果包括相同的数据值情况下,根据相同的数据值所在行号的第i+1列目标数据的数据值,调整至少两个相同的数据值所在的行号,得到行号的排序结果;
[0014]确定模块,用于基于行号的排序结果,确定多列数据的有序数据。
[0015]根据本申请实施例的第三方面,提供一种计算机设备,包括:存储器和处理器;
[0016]存储器,用于存储有计算机程序;
[0017]处理器,用于执行存储器中存储的计算机程序,计算机程序运行时使得处理器执行如第一方面所示的数据处理方法的步骤。
[0018]根据本申请实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储程序或指令,在程序或指令被计算机设备执行的情况下,使得计算机设备执行如第一方面所示的数据处理方法的步骤。
[0019]根据本申请实施例的第五方面,提供一种计算机程序产品,包括计算机程序,在计算机程序被计算机设备执行的情况下,使得计算机设备执行如第一方面所示的数据处理方法的步骤。
[0020]根据本申请实施例中数据处理方法、装置、设备和存储介质,通过对比多列数据中第i列数据的数据值,调整第i列数据所在行的行号和第i列数据中与行号对应的数据,得到第一排序结果,接着,在第一排序结果包括相同的数据值情况下,根据相同的数据值所在行号的第i+1列目标数据的数据值,调整至少两个相同的数据值所在的行号,得到行号的排序结果,并基于行号的排序结果,确定多列数据的有序数据,由此,摒弃传统逐行排序的方式,采用逐列排序,提高在列式存储的列数据库中的访存速度。以及,由于列数据库中同一列数据的内存距离更短,所以采用逐列排序,有利于减少重排、错排的计算资源和内存资源的消耗,同时还能减少访存开销,提升数据库的数据排序性能。
附图说明
[0021]从下面结合附图对本申请的具体实施方式的描述中可以更好地理解本申请其中,相同或相似的附图标记表示相同或相似的特征。
[0022]图1是示出相关技术中的一种数据排序流程示意图;
[0023]图2是示出相关技术中的另一种数据排序流程示意图;
[0024]图3是示出根据一个实施例的一种数据处理架构示意图;
[0025]图4是示出根据一个实施例的一种数据处理流程示意图;
[0026]图5是示出根据一个实施例的一种数据处理方法的流程图;
[0027]图6是示出根据一个实施例的一种数据处理装置的结构示意图;
[0028]图7是示出根据一个实施例的计算机设备的硬件结构示意图。
具体实施方式
[0029]下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
[0030]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0031]联机分析处理(Online analytical processing,OLAP)方式是计算机技术中快速解决多维分析问题的数据处理方式,使得与OLAP相关的OLAP数据库常常需要对海量数据进行排序,以便提升访存效率。然而,数据排序过程是一个非常消耗计算资源的过程,虽然,对
于数据排序算法本身已经有了较为深入全面的研究,但是,如何优化OLAP数据库中的排序算法目前并未给出具体的优化方式。
[0032]在相关技术中,数据库的数据都是分段表示,通常称一个数据分段为一个Page,如图1所示,以两列数据为例,如C1列数据和C2列数据,C1列数据和C2列数据按照RowId被分成3个Page,如Page1包括RowId为0和1对应的C1列数据和C2列数据、Page2包括RowId为2和3对应的C1列数据和C2列数据、以及Page3包括RowId为4对应的C1列数据和C2列数据。其中,RowId用于表征数据库中总体数据的行号。基于此,目前的排序方式是先对RowId进行排序,而不交换与RowId对应的行数据,最后,再将有序的RowId物化出真实的有序数据。然而,在对RowId进行排序的过程中,需要根据RowId从数据库的多张数据表中找到与RowId对应的行数据,并分别对这些真实的行数据进行比较,由于多张数据表的数据过多,每次比较时,需要逐个比较行数据之间的每个元素,使得RowId排序过程不仅会消耗大量的计算资源和内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:获取列式数据库中待排序的多列数据;按照所述多列数据中第i列数据的数据值,调整所述第i列数据所在行的行号和所述第i列数据中与所述行号对应的数据,得到第一排序结果,i为大于或者等于1的整数;在所述第一排序结果包括相同的数据值情况下,根据所述相同的数据值所在行号的第i+1列目标数据的数据值,调整所述至少两个相同的数据值所在的行号,得到行号的排序结果;基于所述行号的排序结果,确定所述多列数据的有序数据。2.根据权利要求1所述的方法,其中,所述按照所述多列数据中第i列数据的数据值,调整所述第i列数据所在行的行号和所述第i列数据中与所述行号对应的数据,得到第一排序结果,包括:按照行号排布顺序,物化所述第i列数据,得到在内存中存储的所述第i列数据中与行号对应的数据;按照由小到大的顺序,对所述第i列数据中与行号对应的数据的数据值进行排列,得到第一顺序;根据所述第一顺序,对所述第i列数据所在行的行号和与所述第i列数据中与所述行号对应的数据进行排序,得到第一排序结果。3.根据权利要求2所述的方法,其中,所述多列数据按照行号划分为至少两个数据分段;所述按照行号排布顺序,物化所述第i列数据,得到在内存中存储的所述第i列数据中与所述行号对应的数据,包括:按照行号由小到大的排布顺序,物化所述至少两个数据分段中每个数据分段的第i列数据,得到在连续的内存中存储的所述第i列数据中与所述行号对应的数据。4.根据权利要求3所述的方法,其中,所述方法还包括:从所述多列数据的第i+1列数据中,获取所述相同的数据值所在行号的目标数据;物化所述目标数据,得到在所述连续的内存中存储的第i+1列目标数据。5.根据权利要求4所述的方法,其中,所述从所述多列数据的第i+1列数据中,获取所述相同的数据值所在行号的目标数据之前,所述方法还包括:确定所述相同的数据值的个数是否满足物化条件;在确定所述相同的数据值的个数满足物化条件的情况下,从所述多列数据的第i+1列数据中,获取所述相同的数据值所在行号的目标数据。6.根据权利要求5所述的方法,其中,所述方法还包括:在确定所述相同的数据值的个数不满足物化条件的情况下,获取第i+1列数据;基于所述第i+1列数据的数据值,调整所述第i+1列数据所在行的行号和目标列数据中与所述行号对应的数据,得到第二排序结果,所述目标列数据包括所述第i列数据和所述第i+1列数据;在所述第二排序结果包括相同的数据值、且所述第二排序结果包括相同的数据值的个数满足所述物化条件的情况下,根据所述第二排序结果包括相同的数据值所在行号的第i=i+1列数据...

【专利技术属性】
技术研发人员:赖立李飞飞林亮
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1