一种数据处理方法、电子设备和计算机可读存储介质技术

技术编号:22531794 阅读:23 留言:0更新日期:2019-11-13 09:06
本发明专利技术实施例公开了一种数据处理方法、电子设备和计算机可读存储介质,通过将原始数据表分为多个数据段,并根据获取的原始数据表的特征信息初始化多个哈希表,多线程并行处理多个数据段以获取数据处理结果并根据数据处理结果更新所述多个哈希表,合并多个哈希表以获取数据分组聚合结果,由此,本发明专利技术实施例通过多线程并行处理原始数据表的多个数据段,并通过哈希表的结构对数据处理结果进行分组聚合,提高了数据分组聚合运算的效率。

A data processing method, electronic equipment and computer readable storage medium

The embodiment of the invention discloses a data processing method, an electronic device and a computer-readable storage medium. By dividing the original data table into a plurality of data segments, initializing a plurality of hash tables according to the characteristic information of the acquired original data table, multithreading processes a plurality of data segments in parallel to obtain the data processing results, updating the plurality of hash tables according to the data processing results, and merging A plurality of hash tables are used to obtain data grouping and aggregation results. Therefore, the embodiment of the invention processes multiple data segments of the original data table in parallel by multithreading, and groups the data processing results through the structure of the hash table, thus improving the efficiency of data grouping and aggregation operation.

【技术实现步骤摘要】
一种数据处理方法、电子设备和计算机可读存储介质
本申请涉及计算机
,更具体地,涉及一种数据处理方法、电子设备和计算机可读存储介质。
技术介绍
在目前的大数据背景下,数据分析需求极大。其中,对数据进行聚合是很多数据分析中的重要步骤。一般来说,数据聚合就是将一些数据按照特定数据项进行分组,如年龄、专业、或者收入等数据项。例如,一个站点销售音乐CD,它可能会基于用户的年龄来将用户分组,然后得到不同年龄的音乐爱好。在数据库的应用中,为了从一张数据表中的大量数据中提取出具有某些具有特征性的数据,最常用的就是对表格数据分组,并对分组后的数据执行相应的运算,例如求每一组的最大值、平均值等信息。通常情况下,在数据库中执行分组聚合操作涉及的数据量大,现有方法通常采用CPU处理器来进行处理,耗费时间长,数据处理效率低。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数据处理方法、电子设备和计算机可读存储介质,以提高数据分组聚合运算的效率。第一方面,本专利技术实施例提供一种数据处理方法,所述方法包括:获取原始数据表的特征信息;将所述原始数据表分为多个数据段;根据所述特征信息初始化多个哈希表,其中,所述哈希表用于存储对应的数据段的数据处理结果;多线程并行处理所述多个数据段以获取数据处理结果;根据所述数据处理结果更新所述多个哈希表;以及合并所述多个哈希表以获取数据分组聚合结果。可选的,根据所述特征信息初始化多个哈希表包括:根据所述特征信息确定哈希表的长度;以及根据所述哈希表的长度建立多个空哈希表。可选的,所述特征信息包括所述原始数据表的至少一个数据项,所述数据项包括至少一个数据项值。可选的,根据所述特征信息确定哈希表的长度包括:计算所述数据项值的组合的数量与预设的可变因子的乘积以确定所述哈希表的长度。可选的,在所述特征信息中的数据项的数量为1时,所述数据项值的组合包括一个数据项值,所述数据项值的组合的数量为所述数据项中的数据项值的个数;在所述特征信息中的数据项数量大于1时,所述数据项值的组合中包括每个数据项中的一个数据项值,所述数据项值的组合的数量为每个数据项中的数据项值的个数的乘积。可选的,多线程并行处理所述多个数据段以获取数据处理结果包括:将加速处理器中的多个线程分为多个线程组,各所述线程组分别包括至少一个线程;各所述线程组并行处理对应的数据段以获取所述数据处理结果。可选的,各所述线程组并行处理对应的数据段以获取所述数据处理结果包括:同一线程组中的不同线程并行处理对应的数据段以获取所述对应的数据段的数据处理结果。可选的,根据所述数据处理结果更新所述多个哈希表包括:对于每个数据段,计算所述数据段对应的各数据项值的组合的哈希值以确定各数据项值的组合在对应的哈希表中的地址信息;根据对应的聚合函数更新所述哈希表。第二方面,本专利技术实施例提供一种电子设备,包括存储器、CPU处理器和加速处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述CPU处理器执行以实现以下步骤:获取原始数据表的特征信息;将所述原始数据表分为多个数据段;所述一条或多条计算机指令被所述加速处理器执行以实现以下步骤:根据所述特征信息初始化多个哈希表,其中,所述哈希表用于存储对应的数据段的数据处理结果;多线程处理所述多个数据段以获取对应数据处理结果;根据所述数据处理结果更新所述多个哈希表;合并所述多个哈希表以获取数据分组结果。第三方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行以实现如上所述的方法。本专利技术实施例通过将原始数据表分为多个数据段,并根据获取的原始数据表的特征信息初始化多个哈希表,多线程并行处理多个数据段以获取数据处理结果并根据数据处理结果更新所述多个哈希表,合并多个哈希表以获取数据分组聚合结果,由此,本专利技术实施例通过多线程并行处理原始数据表的多个数据段,并通过哈希表的结构对数据处理结果进行分组聚合,提高了数据分组聚合运算的效率。附图说明通过以下参照附图对本申请实施例的描述,本申请的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是本专利技术实施例的数据处理方法的流程图;图2是本专利技术实施例的数据处理过程的示意图;图3是本专利技术实施例的数据处理装置的示意图;图4是本专利技术实施例的电子设备的示意图。具体实施方式以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。图1是本专利技术实施例的数据处理方法的流程图。如图1所示,本专利技术实施例的数据处理方法包括以下步骤:步骤S100,获取原始数据表的特征信息。具体地,分析原始数据表,获取其特征信息。其中,特征信息包括原始数据表的至少一个数据项,数据项包括至少一个数据项值。例如,原始数据表为某个学校所有班级的成绩单,数据分组聚合目标为获取各个班级的最高分,则数据项为班级,数据项值为班级的名称,如1班、2班等。步骤S200,将原始数据表分为多个数据段。原始数据表的数据量较大,因此,在本实施例中,将原始数据表按照预设规则(例如预设的每个数据段的数据量大小等)分为多个数据段。步骤S300,根据特征信息初始化多个哈希表。其中,哈希表用于存储对应的数据段的数据处理结果。在一种可选的实现方式中,哈希表的数量根据每个数据段所需的存储空间大小、哈希表所需的存储空间大小以及处理器的内存大小确定。在一种可选的实现方式中,步骤S300具体包括:根据原始数据表的特征信息确定哈希表的长度,并根据哈希表的长度建立多个空哈希表。在一种可选的实现方式中,计算数据项值的组合的数量与预设的可变因子的乘积以确定哈希表的长度。其中,可变因子用于调整哈希表的填充率。可选的,可变因子的值在1-2之间,例如取可变因子的值为1.5。在特征信息中的数据项数量为1时,数据项值的组合包括一个数据项值,数据项值的组合的数量为数据项中的数据项值的个数。例如,原始数据表为某个学校的同一个年级的所有班级的成绩单,数据分组聚合目标为获取各个班级的最高分。在此情况下,原始数据表的特征信息包括一个数据项:班级,假设该学校共有10个班级,则数据项值为班级的名称,如1班、2班等。数据项值的组合的数量也为10个。由此,在特征信息包括一个数据项时,哈希表的长度L为:L=N*q其中,L为哈希表的长度,N为预设的可变因子,q为该数据项的数据项值的数量。在特征信息中的数据项数量大于1时,数据项值的组合中包括每个数据项中的一个数据项值,数据项值的组合的数量为每个数据项中的数据项值的个数的乘积。在特征信息包本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:获取原始数据表的特征信息;将所述原始数据表分为多个数据段;根据所述特征信息初始化多个哈希表,其中,所述哈希表用于存储对应的数据段的数据处理结果;多线程并行处理所述多个数据段以获取数据处理结果;根据所述数据处理结果更新所述多个哈希表;以及合并所述多个哈希表以获取数据分组聚合结果。

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取原始数据表的特征信息;将所述原始数据表分为多个数据段;根据所述特征信息初始化多个哈希表,其中,所述哈希表用于存储对应的数据段的数据处理结果;多线程并行处理所述多个数据段以获取数据处理结果;根据所述数据处理结果更新所述多个哈希表;以及合并所述多个哈希表以获取数据分组聚合结果。2.根据权利要求1所述的方法,其特征在于,根据所述特征信息初始化多个哈希表包括:根据所述特征信息确定哈希表的长度;以及根据所述哈希表的长度建立多个空哈希表。3.根据权利要求2所述的方法,其特征在于,所述特征信息包括所述原始数据表的至少一个数据项,所述数据项包括至少一个数据项值。4.根据权利要求3所述的方法,其特征在于,根据所述特征信息确定哈希表的长度包括:计算所述数据项值的组合的数量与预设的可变因子的乘积以确定所述哈希表的长度。5.根据权利要求4所述的方法,其特征在于,在所述特征信息中的数据项的数量为1时,所述数据项值的组合包括一个数据项值,所述数据项值的组合的数量为所述数据项中的数据项值的个数;在所述特征信息中的数据项数量大于1时,所述数据项值的组合中包括每个数据项中的一个数据项值,所述数据项值的组合的数量为每个数据项中的数据项值的个数的乘积。6.根据权利要求1所述的方法,其特征在于,多线程并行处理所述多个数据段以获取数据处理结果包括...

【专利技术属性】
技术研发人员:谢超盛江红易小萌郭人通
申请(专利权)人:上海赜睿信息科技有限公司
类型:发明
国别省市:上海,31

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

1