支持海量数据分组统计的智能索引构建、查询及维护方法

文档序号:9865727阅读:813来源:国知局
支持海量数据分组统计的智能索引构建、查询及维护方法
【技术领域】
[0001]本发明涉及一种支持海量数据分组统计的智能索引构建、查询及维护方法,属于大数据处理技术领域。
【背景技术】
[0002]随着计算机技术的不断发展和信息化程度的不断提高,数据量迅速增长,面向海量数据存储及应用也随之蓬勃发展,大数据应用越来越广泛。如,在网络安全上,使用大数据技术分析网络攻击行为;在电子商务上,使用大数据技术分析用户购物喜好或最受青睐的商品;在城市建设上,利用大数据技术构建智慧城市,方便人民出行。诸如此类,大数据技术在建设节约型社会,提高生成效率等方面起到了积极的推动作用。
[0003]但随着数据量的持续增大和大数据应用的不断发展,对大数据处理能力的要求越来越高。在海量数据分析应用中,对数据分组统计是常用的应用模式,其处理效率直接影响了业务应用。目前常用的分组统计方法主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总。这些方法的主要特点是对涉及到的数据全盘扫描,其对系统资源,特别是I/O会有极大的占用,从而对整个存储系统带来巨大压力,其统计效率难以应对业务需求。因此,通过构建索引,降低磁盘I/O开销,成为提高分组统计效率需要解决的关键问题。

【发明内容】

[0004]为提高分组统计效率,降低磁盘I/O开销,本发明提供了一种支持分组统计的智能索引构建、查询和维护方法。
[0005]本发明提供的支持海量数据分组统计的智能索引构建、查询和维护方法,通过如下四方面实现:
[0006]第一方面,建立智能索引的数据组织结构,以使智能索引支持海量数据分组统计。
[0007]智能索引的数据组织结构包括索引元数据和索引数据。索引元数据是创建索引的依据,包括分组列簇和统计列簇。分组列簇采用二维表存储,存储信息包括分组字段名称、分组字段类型和分组方式;分组字段类型包括整型、字符型和时间类型,分组方式包括区间、等值和哈希三种方式。统计列簇采用二维表存储,存储信息包括统计字段名称、统计字段类型和统计方式;统计字段类型包括整型、字符型和时间类型,统计方式包括聚合、平均值、最大值、最小值、方差和求和。索引数据是对原始数据构建的索引,一个原始数据块对应一个索引数据块,每个索引数据块包括分组数值区和统计数值区两部分。分组数值区由多个字典组成,一个字典对应一个分组字段,每个字典包括分组字段值及其应用的位置ID,分组字段值和位置ID均使用有序链表存储;统计数值区根据位置ID分段按行存储,每个段按ID排序,使用有序链表存储。
[0008]第二方面,在写入数据时在内存中实时创建智能索引。
[0009]首先根据索引元数据确定分组字段和统计字段,然后对每条原始记录在内存中计算,包括对分组字段按分组方式计算和对统计字段按统计方式计算,更新维护好分组数值区链表和统计数值区链表,最终将索引数据持久化到磁盘。
[0010]第三方面,利用智能索引进行分组统计的操作。
[0011]首先通过判定器判读本次统计是否可以使用智能索引,当能使用时,通过执行器读取索引数据,最后通过汇聚器对分组值进行汇聚计算。
[0012]第四方面,实现对智能索引的删除操作。
[0013]预设原始数据与索引数据物理存储规则,根据待删除的原始数据块存储路径,来构造索引数据存储路径,将建立的索引数据删除。
[0014]本发明提出的支持海量数据分组统计的智能索引构建、查询及维护方法,相对于现有技术来说,实现了对海量数据的实时自动创建索引,在对海量数据进行分组统计时极大降低了磁盘I/O和计算时间,从而大幅提高了分组统计效率,并实现了对索引数据全生命周期的自动管理,符合目前的大数据分析应用需求,在大数据处理领域具有很强的实用性和应用范围,具有广阔的应用前景。
【附图说明】
[0015]图1为本发明支持海量数据分组统计的智能索引的数据组织结构示意图;
[0016]图2为本发明在存储备份数据时智能索引创建的流程图;
[0017]图3为本发明利用智能索引进行分组统计的操作流程图;
[0018]图4为智能索引删除的操作流程图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图,对根据本发明一个实施例的层次分段式的备份数据组织管理方法进一步详细说明。
[0020]本发明的支持海量数据分组统计的智能索引构建、查询及维护方法,包括四个实现方面:(I)建立支持海量数据分组统计的智能索引的数据组织结构;(2)智能索引创建操作;⑶利用智能索引进行分组统计的操作;⑷实现对智能索引的删除操作。通过本发明方法,可有效降统计时的磁盘I/O及系统计算资源,提高对大数据分组统计的效率。
[0021]图1给出了本发明支持海量数据分组统计的智能索引的数据组织结构示意图。
[0022]—种实现例中,智能索引采用如图1所示的数据结构来实现。智能索引包括索引元数据和索引数据两部分。其中,索引元数据是对索引的描述,是创建索引的依据。索引元数据包括分组列簇和统计列簇两部分。分组列簇采用二维表存储,存储信息包括分组字段名称、分组字段类型和分组方式,分组字段类型包括整型、字符型和时间类型,分组方式包括区间、等值和哈希三种方式。统计列簇采用二维表存储,存储信息包括统计字段名称、统计字段类型和统计方式,统计字段类型包括整型、字符型和时间类型,统计方式包括聚合、平均值、最大值、最小值、方差和求和。索引数据是对原始数据构建的索引,一个原始数据块对应一个索引数据块,每个索引数据块包括分组数值区和统计数值区两部分。分组数值区由多个字典组成,一个字典对应一个分组字段,每个字典包括分组字段值及其应用的位置ID,分组字段值和位置ID均使用有序链表存储。统计数值区根据位置ID分段按行存储,每个段按ID排序。
[0023]图1所示示例中,统计列簇的字段有NAME(名称)和NUM(数量),字符类型分别为char和Int,统计方式分别为Count (计数)和Sum(求和);分组列簇的字段包括CITY(城市)和??ΜΕ(时间),字符类型分别为char和Int,分组方式分别为等值和区间。图1也给出了一个依据该索引元数据所构建的一个索引数据块,例如,字段CITY的值包括有ZB、JN、QD、WF和HZ,均为某城市代码简写,每个字段值的应用的位置ID以链表组织,例如QD所应用的位置ID为4和5。在统计数值区根据位置ID分段按行存储,示例中分为3个段,每段中给出统计字段按所设置的统计方式得到的统计值,例如段I中的位置ID I对NAME按Count方式统计的值为20。
[0024]在写入数据时实时创建智能索引,通过智能索引创建操作。首先根据索引元数据描述,确定分组字段和统计字段,然后对每条原始记录在内存中计算,包括对分组字段按分区方式计算和对统计字段按统计方式计算,维护好分组数值区链表和统计数值区链表,最终将索引数据持久化到磁盘。图2示出了智能索引创建过程,具体步骤如下:
[0025]步骤201:读取索引元数据,并初始化索引数据存储结构;
[0026]步骤202:判断索引数据是否可以持久化到磁盘上,如果需要持久化到磁盘,则转到步骤206,否则转到步骤203。索引数据持久化到磁盘上的判断标准为其对应的原始数据块已经被稳定写入磁盘;
[0027]步骤203:读取下一条原始数据;
[0028]步骤204:根据分组方式,计算每个分组字段的分组值。计算分组值K,K依据分区方式计算得出:如果是等值方式,则K为字段值V;如果是区间方式,则K是通过字段值V计算得出,计算方法为字段值/区间跨度。然后将分组值K更新到分组数值区链表中,并按分组字段值进行排序,保持链表有序;
[0029]步骤205:计算统计值。根据所设定的统计方式,计算每个统计字段的统计值,并更新到统计数值区链表中,并位置ID进行排序,保持链表有序,转到步骤202;
[0030]步骤206:将统计数值区链表写入文件中,并按链表ID分段,依据数量分段,每个段内数量不大于预设数量N,每个段生成一个文件;
[0031]步骤207:将分组数值区链表写入文件中,并按分组字段分成不同字典链表,每个字典生成一个
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1