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

技术编号:26845503 阅读:20 留言:0更新日期:2020-12-25 13:07
本申请涉及一种数据处理方法、装置、计算机设备和存储介质。所述方法包括:获取一组待处理的decimal数据,将一组待处理的decimal数据中的每个decimal数据分成多个子部分,对待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和,将每个子部分的和拼接得到一个decimal数据,利用decimal数据突破了64位的限制,将decimal数据分成多个子部分,同时对每个子部分分别进行聚合,最后将各子部分的聚合结果进行拼接,可以提高数据处理效率。

【技术实现步骤摘要】
数据处理方法、装置、计算机设备和存储介质
本申请涉及数据处理
,特别是涉及一种数据处理方法、装置、计算机设备和存储介质。
技术介绍
随着数据处理技术的不断发展,处理海量数据时经常使用GPU多线程并发做聚合,通常使用原子累加法来进行聚合。原子累加法为每个分组分配一个内存变量,初始化为0,每个GPU线程处理一个元素。每个线程执行如下逻辑:读取对应元素;确定该元素的分组,并找到该分组的“和”变量;使用atomicAdd方法将对应元素累加到分组的“和”变量上。原子累加法依赖于系统提供的atomicAdd方法。系统提供的atomicAdd方法最多可以操作64bit的数据。若要聚合的字段长度超过64位,该方法就无法使用了。针对长数据类型(超过64bit)的聚合,传统的处理方式是为每个“和”变量附加一个锁变量,使用atomicCAS在循环测试锁变量,当成功上锁后做累加,最后在释放锁,但这种方式的处理效率比较低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种针对长数据类型聚合的数据处理方法、装置、计算机设备和存储介质,能够提高处理效率。一种数据处理方法,所述方法包括:获取一组待处理的decimal数据;将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;将所述多个子部分的和拼接得到一个decimal数据。在其中一个实施例中,所述获取一组待处理的decimal数据包括:从数据库中获取一组数据,将所述一组数据转换成decimal格式的数据,得到一组待处理的decimal数据。在其中一个实施例中,所述将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和,包括:对于所述一组待处理的decimal数据中的每个decimal数据对应的子部分,采用累加求和,得到对应的子部分的和。在其中一个实施例中,所述将所述一组待处理的decimal数据中的每个decimal数据按照预设数据类型所表示的位数分成多个子部分,其中,预设数据类型为int类型或short类型。在其中一个实施例中,所述预设数据类型表示的位数为4位,则所述多个子部分为三个子部分;所述三个子部分包括第一部分、第二部分和第三部分;所述将所述多个子部分的和拼接得到一个decimal数据,包括:将所述第一部分的和、第二部分的和、第三部分的和依次拼接,得到一个decimal数据。一种数据处理装置,所述装置包括:数据获取模块,用于获取一组待处理的decimal数据;数据分割模块,用于将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;数据求和模块,用于将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;数据拼接模块,用于将所述多个子部分的和拼接得到一个decimal数据。在其中一个实施例中,所述数据获取模块还用于从数据库中获得一组数据,将所述一组的数据转换成decimal格式的数据,得到一组待处理的decimal数据。在其中一个实施例中,所述数据求和模块还用于对于所述一组待处理的decimal数据中的每个decimal数据对应的子部分,采用累加求和,得到对应的子部分的和。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取一组待处理的decimal数据;将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;将所述多个子部分的和拼接得到一个decimal数据。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取一组待处理的decimal数据;将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;将所述多个子部分的和拼接得到一个decimal数据。上述数据处理方法、装置、计算机设备和存储介质,获取一组待处理的decimal数据,将一组待处理的decimal数据中的每个decimal数据分成多个子部分,对待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和,将每个子部分的和拼接得到一个decimal数据,利用decimal数据突破了64位的限制,将decimal数据分成多个子部分,同时对每个子部分分别进行聚合,最后将各子部分的聚合结果进行拼接,可以提高数据处理效率。附图说明图1为一个实施例中数据处理方法的流程示意图;图2为一个实施例中数据处理方法的原理图;图3为一个实施例中数据处理装置的结构框图;图4为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在一个实施例中,如图1所示,提供了一种数据处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:步骤102,获取一组待处理的decimal数据。其中,decimal数据类型的长度是不固定的,可以表示精确的数字,不会出现精度损失。比如decimal(a,b),a指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38,b指定小数点右边可以存储的十进制数字的最大个数,小数位数必须是从0到a之间的值,默认小数位数是0。定义一个decimal数据时需要指定总共有多少位数字,其中小数位有多少位,比如decimal(15,3)表示有最多有3位小数,总共不超过15位数字,因此整数部分最多有15-3=12位。具体地,从数据库中获取一组待处理的decimal数据,一组待处理的decimal数据至少包含两个decimal数据。这里的一组数据根据具体的数据请求来确定,比如有一个表格T(人名,日期,收入),要计算每个人2000年以来的收入总和,使用SQL语句:Selectsum(收入)FromTWhere日期>20000101Groupby人名来获取一组待处理的数据,获取的满足条件的所有人的2000年以来的收入就是一组待处理的decimal数据,其中每个人的2000年以来的收入是一个decimal数据。步骤104,将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分。具体地,将一组待本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:/n获取一组待处理的decimal数据;/n将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;/n将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;/n将所述多个子部分的和拼接得到一个decimal数据。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:
获取一组待处理的decimal数据;
将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分;
将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和;
将所述多个子部分的和拼接得到一个decimal数据。


2.根据权利要求1所述的方法,其特征在于,所述获取一组待处理的decimal数据包括:
从数据库中获取一组数据,将所述一组数据转换成decimal格式的数据,得到一组待处理的decimal数据。


3.根据权利要求1所述的方法,其特征在于,所述将所述一组待处理的decimal数据中的每个decimal数据对应的子部分求和,得到对应的子部分的和,包括:
对于所述一组待处理的decimal数据中的每个decimal数据对应的子部分,采用累加求和,得到对应的子部分的和。


4.根据权利要求1所述的方法,其特征在于,所述将所述一组待处理的decimal数据中的每个decimal数据分成多个子部分,包括:
将所述一组待处理的decimal数据中的每个decimal数据按照预设数据类型所表示的位数分成多个子部分,其中,所述预设数据类型为int类型或short类型。


5.根据权利要求4所述的方法,其特征在于,所述预设数据类型表示的位数为4位,则所述多个子部分为三个子部分;所述三个子部分包括第一部分、第...

【专利技术属性】
技术研发人员:周明宏李如豹
申请(专利权)人:成都量子象云计算科技有限公司
类型:发明
国别省市:四川;51

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

1