【技术实现步骤摘要】
大数据聚集计算方法及装置
本专利技术实施例属于大数据分析
,更具体地,涉及一种大数据聚集计算方法及装置。
技术介绍
在做大数据分析时,经常会涉及到对相同数据进行聚集计算,聚集计算是指根据一列或者多列作为key值,对相同key值对应的value值做sum、count、max和min等聚集函数的运算,输出单个结果行。由于大数据分析中原始数据的数据量过于庞大,在分组的key值基数也很大的情况下,计算机剩余内存可能不足以存放下所有要计算的数据。现有技术可能会每次计算指定个数的key值,这种方法可能会造成申请不到内存从而导致系统崩溃的问题,也有可能造成没有充分利用内存计算,会严重影响运算效率。为了克服这个问题,现有技术可能会在做聚集计算时,确定计算机此时剩余多少内存,利用该时刻剩余内存量来进行计算,这种做法虽然不会存在申请不到内存的问题,也充分利用了此刻的内存。但是在计算过程中,计算机很可能又释放出很多空闲的内存,而这些空闲内存没有得到利用。综上所述,现有技术仅对某一时刻剩余的内存量进行了充分利用,在计算过程中释放出的空闲内存没有得到利用,从而导致内存利用率较低。
技术实现思路
为克服上述现有的大数据聚集计算内存利用率低的问题或者至少部分地解决上述问题,本专利技术实施例提供一种大数据聚集计算方法及装置。根据本专利技术实施例的第一方面,提供一种大数据聚集计算方法,包括:从内存的mdp数据结构中读取任一行未进行聚集计算的原始数据,根据操作所述原始数据的SQL语句中的分组字段,对读取的所述原始数据进行分组;若所述原始数据所属分组的key值在所述内存的hash结构中不存在 ...
【技术保护点】
1.一种大数据聚集计算方法,其特征在于,包括:从内存的mdp数据结构中读取任一行未进行聚集计算的原始数据,根据操作所述原始数据的SQL语句中的分组字段,对读取的所述原始数据进行分组;若所述原始数据所属分组的key值在所述内存的hash结构中不存在,则为所述hash结构申请内存以存储所述key值,为所述内存中的tupleRowStream结构申请内存创建tupleRow结构以存储所述分组的聚集计算结果;若为所述hash结构和所述内存中的tupleRowStream结构都成功申请到内存,则将所述key值存储到所述hash结构中,将所述原始数据经过所述SQL语句中的聚集函数计算获取的聚集计算结果存储到所述内存中的tupleRow结构中,直到所述mdp数据结构中的所有原始数据都进行聚集计算。
【技术特征摘要】
1.一种大数据聚集计算方法,其特征在于,包括:从内存的mdp数据结构中读取任一行未进行聚集计算的原始数据,根据操作所述原始数据的SQL语句中的分组字段,对读取的所述原始数据进行分组;若所述原始数据所属分组的key值在所述内存的hash结构中不存在,则为所述hash结构申请内存以存储所述key值,为所述内存中的tupleRowStream结构申请内存创建tupleRow结构以存储所述分组的聚集计算结果;若为所述hash结构和所述内存中的tupleRowStream结构都成功申请到内存,则将所述key值存储到所述hash结构中,将所述原始数据经过所述SQL语句中的聚集函数计算获取的聚集计算结果存储到所述内存中的tupleRow结构中,直到所述mdp数据结构中的所有原始数据都进行聚集计算。2.根据权利要求1所述的方法,其特征在于,所述mdp数据结构为二维表结构;所述hash结构的key值为存储在所述hash结构中分组的key值,所述hash结构的key值对应的value值为tupleRow指针,所述tupleRow指针指向所述key值对应的聚集计算结果;所述内存中的tupleRowStream结构包含多个tupleRow结构,各所述tupleRow结构的列数等于所述聚集函数的个数,各所述tupleRow结构用于存储一个所述分组的聚集计算结果。3.根据权利要求1所述的方法,其特征在于,为所述hash结构申请内存,为所述内存中的tupleRowStream结构申请内存创建tupleRow结构的步骤具体包括:根据所述key值的类型,确定为所述hash结构申请内存的大小;根据所述聚集计算结果的类型,确定为所述内存中的tupleRowStream结构申请内存的大小。4.根据权利要求1所述的方法,其特征在于,将所述原始数据经过所述SQL语句中的聚集函数计算获取的聚集计算结果存储到所述tupleRow结构中的步骤具体包括:若所述tupleRow结构中的任一列存储聚集函数count的聚集计算结果,则将该列的值初始化为1;若所述tupleRow结构中的任一列存储聚集函数sum的聚集计算结果,则将读取的所述原始数据中sum函数的参数字段对应的值作为该列的值;若所述tupleRow结构中的任一列存储聚集函数max的聚集计算结果,则将读取的所述原始数据中max函数的参数字段对应的值作为该列的值。5.根据权利要求1所述的方法,其特征在于,还包括:若所述原始数据所属分组的key值在所述内存的hash结构中存在,则使用所述聚集函数对读取的所述原始数据和所述key值对应的聚集计算结果进行聚集计算,获取最新的聚集计算结果;将所述最新的聚集计算结果作为所述key值对应的聚集计算结果。6.根据权利要求5所述的方法,其特征在于,使用所述聚集函数对读取的所述原始数据和所述key值对应的聚集计算结果进行聚集计算,获取最新的聚集计算结果的步骤具体包括:若所述tupleRow结构中的任一列存储聚集函数count的聚集计算结果,则将该列中的聚集计算结果加1,获取该列最新的聚集计算结果;若所述tupleRow结构中的任一列...
【专利技术属性】
技术研发人员:杨鹏,董隆超,郭志弘,
申请(专利权)人:北京东方国信科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。