CN111782663A - 一种提升聚合查询效率的聚合索引结构及聚合索引方法 - Google Patents

一种提升聚合查询效率的聚合索引结构及聚合索引方法 Download PDF

Info

Publication number
CN111782663A
CN111782663A CN202010752340.5A CN202010752340A CN111782663A CN 111782663 A CN111782663 A CN 111782663A CN 202010752340 A CN202010752340 A CN 202010752340A CN 111782663 A CN111782663 A CN 111782663A
Authority
CN
China
Prior art keywords
data
aggregation
slice
index
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010752340.5A
Other languages
English (en)
Other versions
CN111782663B (zh
Inventor
王新根
王新宇
陈纯
金路
陈伟
高杨
鲁萍
黄滔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Bangsun Technology Co ltd
Original Assignee
Zhejiang Bangsun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Bangsun Technology Co ltd filed Critical Zhejiang Bangsun Technology Co ltd
Publication of CN111782663A publication Critical patent/CN111782663A/zh
Application granted granted Critical
Publication of CN111782663B publication Critical patent/CN111782663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种提升聚合查询效率的聚合索引结构及聚合索引方法,所述聚合索引通过分组和切片两个维度对流水数据进行划分,然后对划分后的数据进行聚合,其结构包括索引元数据、切片数据列表和明细数据存储;聚合索引方法包括聚合索引定义、聚合索引创建、和聚合索引查询三个部分。本发明提出的聚合索引结构和方法能够极大提升聚合查询的效率,支持PB级别数据的即席聚合查询,能在秒级完成对大量数据的聚合查询,支持新数据的随时插入,在查询范围条件发生变更的情况下,也能在分钟级甚至秒级延时内返回查询结果。

Description

一种提升聚合查询效率的聚合索引结构及聚合索引方法
技术领域
本发明涉及大数据分析领域,通过一种提聚合查询效率的聚合索引结构及聚合索引方法,提升大数据探索性即席查询的效率。
背景技术
大数据探索性即席查询是大数据分析领域的一个重要分支,通过对大量数据的秒级和分钟级交互式灵活查询,帮助用户挖掘数据特征、了解业务状况、总结业务规律,在金融、电商、物流、电信、交通、公安、军工等领域都有重要的应用价值。大数据探索性即席查询具备如下特点:
(1)大数据聚合查询:大数据探索性即席查询多用于业务分析,因而会在千亿条记录、PB级数据中,通过复杂条件筛选一批数据,并对结果集进行聚合计算,从而发现业务的趋势或规律,例如:统计在凌晨0点至2点通过手机访问的用户数量。
(2)低延时数据更新:支持新数据插入,能够快速对最新的数据进行查询。由于业务人员需根据查询结果对系统功能和参数进行及时调整,因而对数据的时效性要求越来越高,需支持新数据的随时插入和快速分析。
(3)查询条件在一定范围内发生改变:探索性查询的对象不会发生改变,但是查询范围会发生改变。例如:电商为了对用户进行分组,会统计不同年龄段用户下单金额的方差、标准差,例如:30-35岁用户订单金额方差、30-40岁用户订单金额方差。这些查询的对象都是用户和订单数据,业务人员通过不断调整年龄区段,获取更小的方差,从而实现更为精准的用户分组。
(4)秒级或分钟级的结果返回:由于业务人员进行探索查询时,需直接等待查询结果,因此结果返回的等待时间等待必须是业务人员可以接受,通常不超过5分钟。在数据挖掘场景中,业务人员需根据查询结果,从要从成百上千的字段中构建特征。过长的等待时间严重影响工作效率,并导致特征无法正确抽取和建立。
基于上述特性,目前的技术方案不能完全满足大数据探索性即席查询在查询数据量、数据更新、查询条件变更、结果返回时间等方面的需求。
传统关系型数据库RDBMS多用于OLTP场景,在满足ACID的约束下,提升其事务性能。由于优化的方向不一致,传统关系型数据库的聚合查询能力非常差。在数据量过亿且返回结果集以万计算的大数据即席查询场景中,其结果返回通常在小时级别,甚至会出现内存溢出无法返回结果的情况。
ElasticSearch等搜索引擎的插入和查询的性能较高,可以支持PB级别以上的原始数据,支持倒排索引和各种过滤后的聚合查询。但是和传统DBMS一样,由于其本身注重于明细数据的检索和查询,因而在进行大数据即席聚合查询时,会遇到严重的性能瓶颈,无法快速返回结果。
Spark、HBase等大数据处理系统,通过MapReduce机制实现大规模数据的存储和查询,可以处理PB级别的数据,并可几乎无限制的进行各种聚合查询。但是由于其缺乏有效索引机制,查询效率极为低下,无法满足即席查询对延时的要求。此外,Spark等大数据处理系统以离线批式处理为主,导入新数据较为不便,无法对最新的数据进行快速处理。
Kylin、Druid是具备预定义与预计算功能的OLAP工具,支持新数据的插入,能够快速的按照事先预订的逻辑进行查询,在一定程度上能满足需求,但是其本身不作明细存储,因而无法满足探索性场景中,查询条件的变更需求。
发明内容
本发明的目的在于针对现有技术的不足,提出一种提升聚合查询效率的聚合索引结构及聚合索引方法,解决大数据探索性即席聚合查询问题,适用于通用数据库领域以及大数据分析等技术领域,支持包括金融、电商、物流、电信、交通、公安、军工等的OLTP及OLAP应用场景。
本发明通过以下技术方案实现:一种提升聚合查询效率的聚合索引结构,所述聚合索引通过分组和切片两个维度对流水数据进行划分,然后对划分后的数据进行聚合,其结构包括索引元数据、切片数据列表和明细数据存储;
所述索引元数据记录聚合索引的定义信息,包括分组字段GroupBy、切片字段SliceBy、切片起点Start、切片终点Stop、切片步长Step、聚合字段及聚合函数Aggregation。
所述切片数据列表由同属一个分组所有切片的中间态数据组成。每个切片的中间态数据均包含了当前切片范围和聚合结果。此外,每个切片的中间态数据还保存了该切片所对应明细数据存储位置,以便后续进行更为精准的查询和新数据的添加。
所述明细数据存储以切片为单位对流水明细数据进行存储;流水明细数据的存储介质可根据数据量的不同选择内存、本地文件系统或是HDFS等分布式文件系统。流水明细数据存储保存聚合字段的数值或保存流水明细的所有字段。当流水明细数据存储保存聚合字段的数值时,能节约空间提升效能,并且支持聚合字段的其他查询操作;当流水明细数据存储保存流水明细的所有字段时,能对聚合字段之外的其他字段进行查询分析,以存储空间换取查询灵活性。
进一步地,所述通过分组和切片两个维度对流水数据进行划分,流水数据先根据分组字段划分为不同的组别,然后每个组别的流水数据根据切片字段划分为有限的分段,最后将流水数据中聚合字段对应的数值通过聚合函数进行数据聚合。
进一步地,所述聚合函数包括求和、最大、最小、计数等。
进一步地,如果切片字段的值域是离散分布,则无需设置切片起点、切片终点和切片步长。
进一步地,当流水明细数据存储保存聚合字段的数值时,能节约空间提升效能,并且支持聚合字段的其他查询操作;当流水明细数据存储保存流水明细的所有字段时,能对聚合字段之外的其他字段进行查询分析,以存储空间换取查询灵活性。
一种提升聚合查询效率的聚合索引方法,该方法包括以下步骤:
(1)聚合索引定义;定义聚合索引用于声明索引的建立规则,包含分组字段、切片字段及方法、聚合字段及聚合函数三部分。
(1.1)通过分组字段对流水数据分组,分组字段对应值相同的流水数据会进一步切片分段后聚合。分组字段为用户自身的实际需求选择流水数据中对应的分组字段。
(1.2)通过切片字段及方法对分组后的流水数进行更细粒度的分割。分组后的流水数据会进一步根据切片字段的值和用户定义的切片方法分段。切片方法包含3个参数:切片起点、切片终点、切片步长。通过设置以上3个参数,将同一分组的流水数据划为有限个分段。如果切片字段的值域是离散分布,则无需设置切片起点、切片终点和切片步长。
(1.3)通过聚合字段及聚合函数对属于同一切片中的流水数据进行聚合计算,具体为将聚合字段中的数据,按照指定的聚合函数进行聚合,并以中间态数据的形式记录聚合结果。
(2)聚合索引创建:在完成聚合索引定义后,按定义内容建立对应索引元数据,所述索引元数据包括分组字段、切片字段、切片起点、切片终点、切片步长、聚合字段及聚合函数;利用原始流水数据构建聚合索引;所述原始流水数据按如下步骤,逐一加入聚合索引。
(2.1)根据原始流水数据的分组字段数值,确定对应的切片数据列表。
(2.2)根据原始流水数据的切片字段数值,在切片数据列表中确定切片中间态数据。
(2.3)根据流水数据的聚合字段数值,更新切片中间态数据。
(2.4)根据切片数据定位相应明细数据存储位置,并存储流水数据。
(3)聚合索引查询:利用聚合索引中切片的中间态数据聚合,快速返回聚合查询结果;具体步骤如下:
(3.1)确认当前查询符合已建立的索引数据,如果存在如下情况则查询失败:
a.在索引数据中,未按照查询语句的分组字段进行分组;
b.在索引数据中,未按照查询语句的切片字段进行切片;
(3.2)判断当前查询是否命中索引数据;如果当前查询的聚合字段和聚合函数与索引数据中的聚合字段和聚合函数一致,则执行步骤(3.3);如果聚合函数和聚合方法有一项不一致,则需查找当前查询所涉及切片的所有明细数据,并按照查询中的聚合字段和聚合函数计算所需聚合结果。
(3.3)判断当前查询的切片范围是否与索引数据中的切片中间态数据一致;如果当前查询的切片范围可由索引数据中一个或多个切片中间态数据的切片范围直接组合,那么查询结果可由切片中间态数据的聚合结果聚合而成。如果当前查询的切片范围不能由索引数据中切片中间态数据的切片范围直接组合,则需要对相邻切片的明细数据进行遍历聚合,形成查询结果。
进一步地,当有新数据插入聚合索引时,与聚合索引创建过程中流水数据逐一加入的过程一致。
本发明的有益效果:本发明提出的聚合索引结构和方法能够极大提升聚合查询的效率,支持PB级别数据的即席聚合查询,能在秒级完成对大量数据的聚合查询,支持新数据的随时插入,在查询范围条件发生变更的情况下,也能在分钟级甚至秒级延时内返回查询结果,支持大数据探索性即席查询各方面的功能和性能需求
附图说明
图1为聚合索引结构图。
图2为聚合索引示例图。
图3为聚合索引检索流程图。
图4为聚合索引查询例句示意图。
具体实施方式
以下结合附图对本发明具体实施方式作进一步详细说明。
如图1所示,本发明提供的一种提升聚合查询效率的聚合索引结构及聚合索引方法,本发明的聚合索引方法对海量的流水数据进行处理,建立对应的聚合索引数据,加速对流水数据的聚合查询速度。聚合索引处理结构化的流水数据,即每条流水数据都包括多个字段,每个字段都有对应的名称和字段值。所述提升聚合查询效率的聚合索引结构包括::包括索引元数据、切片数据列表和明细数据存储。
所述聚合索引通过分组和切片两个维度对流水数据进行划分,流水数据先根据分组字段划分为不同的组别,然后每个组别的流水数据根据切片字段划分为有限的分段,最后将流水数据中聚合字段对应的数值通过聚合函数进行数据聚合。其结构
所述索引元数据记录聚合索引的定义信息,包括分组字段GroupBy、切片字段SliceBy、切片起点Start、切片终点Stop、切片步长Step、聚合字段及聚合函数Aggregation。所述分组字段的值域范围为离散分布的有限集合。所述聚合字段表示实际数据存储的字段。
所述切片数据列表由同属一个分组所有切片的中间态数据组成。每个切片的中间态数据均包含了当前切片范围和聚合结果。此外,每个切片的中间态数据还保存了该切片所包对应细数据存储位置,以便后续进行更为精准的查询和新数据的添加。以图1中的聚合索引为例,切片[20,30)包含了21和22两项数据,因而其中间态数据中,切片范围是[20,30),聚合结果的数值为21+22=43。同时,该切片还保存了其对应明细数据的存储位置Slice_Detail_04,方便新数据的添加和数据遍历。
所述明细数据存储以切片为单位对流水明细数据进行存储;流水明细数据的存储介质可根据数据量的不同选择内存、本地文件系统或是HDFS等分布式文件系统。流水明细数据存储保存聚合字段的数值或保存流水明细的所有字段。所述流水明细数据存储保存聚合字段的数值,能节约空间提升效能,并且支持聚合字段的其他查询操作。所述流水明细数据存储保存流水明细的所有字段,能对聚合字段之外的其他字段进行查询分析,以存储空间换取查询灵活性。实际操作中可依据业务需求选择不用的存储方案,例如:如图2所示的聚合索引,需对不同来源、不同等级用户的订单总金额进行数据分析,以来源Origin作为分组字段,用户等级UserLevel作为切片字段。如果只将订单金额AmtDue存入流水明细时,后续只能对做订单金额相关的查询。若将订单时间等其他字段存入明细,则可做更灵活的查询,例如:Origin是Online的L4用户上午下单的总额。
本发明基于聚合索引结构提出了一种提升聚合查询效率的聚合索引方法,该方法包括以下步骤:
(1)聚合索引定义;用于声明索引的建立规则,包含分组字段、切片字段及方法、聚合字段及聚合函数三部分。
(1.1)通过分组字段对流水数据分组,分组字段对应值相同的流水数据会进一步切片分段后聚合。分组字段为用户自身的实际需求选择流水数据中对应的分组字段。例如:如果某流水数据中Channel字段标识用户的终端类型:iOS/Android/Web。若将Channel指定为分组字段,流水数据就会分为iOS/Android/Web共3组。
(1.2)通过切片字段及方法对分组后的流水数进行更细粒度的分割;切片方法包含3个参数:切片起点、切片终点、切片步长。通过设置以上3个参数,将同一分组的流水数据划为有限个分段;例如:以用户积分CVPoints为切片字段,并设置切片起点为0,切片终点为60,切片步长为10,将用户分为(-∞,0),[0,10),[10,20),[20,30),[30,40),[40,50),[50,60),(60,+∞)共8个切片。如果切片字段的值域是离散分布,则无需设置切片起点、切片终点和切片步长,例如:以用户等级UserLevel为切片字段,其值域为L1/L2/L3/L4/L5,可直接按照值域进行切片,无需设置切片方法的3个参数。
(1.3)通过聚合字段及聚合函数对属于同一切片中的流水数据进行聚合计算,具体为将聚合字段中的数据,按照指定的聚合函数进行聚合,所述聚合函数包括求和、最大、最小、计数等,并以中间态数据的形式记录聚合结果。
(2)聚合索引创建:在完成聚合索引定义后,按定义内容建立对应索引元数据,所述索引元数据包括分组字段、切片字段、切片起点、切片终点、切片步长、聚合字段及聚合函数;利用原始流水数据构建聚合索引,所述原始流水数据从内存、本地文件系统或是HDFS等分布式文件系统中批量读入,或者从其他系统中通过推送或查询的方式导入;所述原始流水数据按如下步骤,逐一加入聚合索引:
(2.1)根据流水数据的分组字段数值,确定对应的切片数据列表。
(2.2)根据流水数据的切片字段数值,在切片数据列表中确定切片中间态数据。
(2.3)根据流水数据的聚合字段数值,更新切片中间态数据。
(2.4)根据切片数据定位相应明细数据存储位置,并存储流水数据。
插入新数据更新聚合索引的流程,与索引创建过程中流水数据逐一加入的过程一致,经过查找索引、查找切片、更新中间态数据、存储明细步骤后,即可完成聚合索引数据更新;
(3)聚合索引查询:如图3所示,利用聚合索引中切片的中间态数据聚合,快速返回聚合查询结果。以图4两个查询语句为例,说明聚合索引的查询条件定义和具体查询过程。
a.查询例句1:Android用户中,对在10到30之间的CVPoints求和。
b.查询例句2:线下(Offline)用户中,对用户等级UserLevel为L3和L5的用户订单金额(AmtDue)求和。
查询条件定义包括如下几个部分:
分组字段查询值:指定查询的分组字段和对应的查询值。例句1中,通过groupby子句定义,分组字段为Channel,查询值为iOS。
切片字段及范围:指定查询的切片字段和对应的字段值范围。例句1中,where子句对连续的切片字段和范围进行了定义,查询CVPoints在[10,30)之内的数据。例句2的where子句对离散的切片字段和范围进行了定义,只查询UserLevel是L3和L5的数据。
聚合字段和聚合函数:指定聚合函数和需要聚合的字段。例句1中,通过select子句定义,对聚合字段CVPoints中的值进行sum聚合操作。
聚合索引查询具体步骤如下:
(3.1)确认当前查询符合已建立的索引数据,如果存在如下情况则查询失败:
a.在索引数据中,未按照查询语句的分组字段进行分组。
b.在索引数据中,未按照查询语句的切片字段进行切片。
(3.2)判断当前查询是否命中索引数据;如果当前查询的聚合字段和聚合函数与索引数据中的聚合字段和聚合函数一致,则执行步骤(3.3);如果聚合函数和聚合方法有一项不一致,则需查找当前查询所涉及切片的所有明细数据,并按照查询中的聚合字段和聚合函数计算所需聚合结果。
(3.3)判断当前查询的切片范围是否与索引数据中的切片中间态数据一致;如果当前查询的切片范围可由索引数据中一个或多个切片中间态数据的切片范围直接组合,那么查询结果可由切片中间态数据的聚合结果通过相应的聚合函数聚合而成。举例来说,例句1查询[10,30)之间的流水数据CVPoints之和。如果聚合索引数据如图1所示,那么可将[10,20),[20,30)这两个切片的数值相加,直接返回10+43=53即可。这一类查询充分利用了聚合索引的中间态结果,因而能够在秒级甚至毫秒级返回查询结果。如果当前查询的切片范围不能由索引数据中切片中间态数据的切片范围直接组合,则需要对相邻切片的明细数据进行遍历聚合,形成查询结果。举例来说,将查询例句1中where子句中的CVPoints范围改为[2,30),如果聚合索引数据如图1所示,那么将无法直接通过切片的组合完成查询。因而,需遍历切片[0,10)的所有明细数据,得出符合条件的聚合结果3,并与[10,20),[20,30)切片中的数值相加,最后返回3+10+43=56。这一类查询虽然不能直接利用聚合索引的中间态结果,但大大减少了明细数据的扫描计算量,因而能够在分钟级返回查询结果。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (5)

1.一种提升聚合查询效率的聚合索引结构,其特征在于,所述聚合索引通过分组和切片两个维度对流水数据进行划分,然后对划分后的数据进行聚合,其结构包括索引元数据、切片数据列表和明细数据存储;
所述索引元数据记录聚合索引的定义信息,包括分组字段GroupBy、切片字段SliceBy、切片起点Start、切片终点Stop、切片步长Step、聚合字段及聚合函数Aggregation。
所述切片数据列表由同属一个分组所有切片的中间态数据组成。每个切片的中间态数据均包含了当前切片范围和聚合结果。此外,每个切片的中间态数据还保存了该切片所对应明细数据存储位置,以便后续进行更为精准的查询和新数据的添加。
所述明细数据存储以切片为单位对流水明细数据进行存储;流水明细数据的存储介质可根据数据量的不同选择内存、本地文件系统或是HDFS等分布式文件系统。流水明细数据存储保存聚合字段的数值或保存流水明细的所有字段。
2.根据权利要求1所述的一种提升聚合查询效率的聚合索引结构,其特征在于,所述通过分组和切片两个维度对流水数据进行划分,流水数据先根据分组字段划分为不同的组别,然后每个组别的流水数据根据切片字段划分为有限的分段,最后将流水数据中聚合字段对应的数值通过聚合函数进行数据聚合。
3.根据权利要求2所述的一种提升聚合查询效率的聚合索引方法,其特征在于,所述聚合函数包括求和、最大、最小、计数等。
4.一种提升聚合查询效率的聚合索引方法,其特征在于,该方法包括以下步骤:
(1)聚合索引定义;定义聚合索引用于声明索引的建立规则,包含分组字段、切片字段及方法、聚合字段及聚合函数三部分;
(1.1)通过分组字段对流水数据分组,分组字段对应值相同的流水数据会进一步切片分段后聚合;
(1.2)通过切片字段及方法对分组后的流水数进行更细粒度的分割。分组后的流水数据会进一步根据切片字段的值和用户定义的切片方法分段。切片方法包含3个参数:切片起点、切片终点、切片步长。通过设置以上3个参数,将同一分组的流水数据划为有限个分段。如果切片字段的值域是离散分布,则无需设置切片起点、切片终点和切片步长。
(1.3)通过聚合字段及聚合函数对属于同一切片中的流水数据进行聚合计算,具体为将聚合字段中的数据,按照指定的聚合函数进行聚合,并以中间态数据的形式记录聚合结果;
(2)聚合索引创建:在完成聚合索引定义后,按定义内容建立对应索引元数据,所述索引元数据包括分组字段、切片字段、切片起点、切片终点、切片步长、聚合字段及聚合函数;利用原始流水数据构建聚合索引;所述原始流水数据按如下步骤,逐一加入聚合索引:
(2.1)根据原始流水数据的分组字段数值,确定对应的切片数据列表。
(2.2)根据原始流水数据的切片字段数值,在切片数据列表中确定切片中间态数据。
(2.3)根据流水数据的聚合字段数值,更新切片中间态数据。
(2.4)根据切片数据定位相应明细数据存储位置,并存储流水数据。
(3)聚合索引查询:利用聚合索引中切片的中间态数据聚合,快速返回聚合查询结果;具体步骤如下:
(3.1)确认当前查询符合已建立的索引数据,如果存在如下情况则查询失败:
a.在索引数据中,未按照查询语句的分组字段进行分组;
b.在索引数据中,未按照查询语句的切片字段进行切片;
(3.2)判断当前查询是否命中索引数据;如果当前查询的聚合字段和聚合函数与索引数据中的聚合字段和聚合函数一致,则执行步骤(3.3);如果聚合函数和聚合方法有一项不一致,则需查找当前查询所涉及切片的所有明细数据,并按照查询中的聚合字段和聚合函数计算所需聚合结果。
(3.3)判断当前查询的切片范围是否与索引数据中的切片中间态数据一致;如果当前查询的切片范围可由索引数据中一个或多个切片中间态数据的切片范围直接组合,那么查询结果可由切片中间态数据的聚合结果聚合而成。如果当前查询的切片范围不能由索引数据中切片中间态数据的切片范围直接组合,则需要对相邻切片的明细数据进行遍历聚合,形成查询结果。
5.根据权利要求4所述的一种提升聚合查询效率的聚合索引方法,其特征在于,当有新数据插入聚合索引时,与聚合索引创建过程中流水数据逐一加入的过程一致。
CN202010752340.5A 2020-05-21 2020-07-30 一种提升聚合查询效率的聚合索引结构及聚合索引方法 Active CN111782663B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020104360393 2020-05-21
CN202010436039 2020-05-21

Publications (2)

Publication Number Publication Date
CN111782663A true CN111782663A (zh) 2020-10-16
CN111782663B CN111782663B (zh) 2023-09-01

Family

ID=72765539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010752340.5A Active CN111782663B (zh) 2020-05-21 2020-07-30 一种提升聚合查询效率的聚合索引结构及聚合索引方法

Country Status (3)

Country Link
US (1) US11928113B2 (zh)
CN (1) CN111782663B (zh)
WO (1) WO2021232645A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022083436A1 (zh) * 2020-10-19 2022-04-28 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114329253B (zh) * 2022-01-05 2022-08-30 北京安博通科技股份有限公司 一种网络运行数据查询方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140074853A1 (en) * 2011-02-21 2014-03-13 Amadeus S.A.S. Method and system for providing statistical from a data warehouse
CN105631003A (zh) * 2015-12-28 2016-06-01 北京赛思信安技术股份有限公司 支持海量数据分组统计的智能索引构建、查询及维护方法
CN106570113A (zh) * 2016-10-25 2017-04-19 中国电力科学研究院 一种海量矢量切片数据云存储方法及系统
CN110046183A (zh) * 2019-04-16 2019-07-23 北京易沃特科技有限公司 一种时序数据聚合检索方法、设备及介质
CN110597900A (zh) * 2019-09-19 2019-12-20 浪潮软件股份有限公司 一种gdb数据实时按需生成矢量切片的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852821A (en) * 1993-04-16 1998-12-22 Sybase, Inc. High-speed data base query method and apparatus
US6912547B2 (en) * 2002-06-26 2005-06-28 Microsoft Corporation Compressing database workloads
TW201113731A (en) * 2009-10-15 2011-04-16 Inst Information Industry Data query method, data query system and computer readable and writable recording medium
CN105205062B (zh) * 2014-06-13 2019-07-12 腾讯科技(北京)有限公司 数据存储方法、数据读取方法和装置
CN104376119A (zh) * 2014-12-03 2015-02-25 天津南大通用数据技术股份有限公司 一种适应超大规模列存数据库的数据访问方法及装置
CN106021458A (zh) * 2016-05-16 2016-10-12 广州鼎鼎信息科技有限公司 一种云环境下的大数据快速聚合查询方法
CN109299102B (zh) * 2018-10-23 2020-11-13 中国电子科技集团公司第二十八研究所 一种基于Elastcisearch的HBase二级索引系统及方法
CN111949681A (zh) * 2020-06-22 2020-11-17 中科驭数(北京)科技有限公司 数据的聚合处理装置、方法和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140074853A1 (en) * 2011-02-21 2014-03-13 Amadeus S.A.S. Method and system for providing statistical from a data warehouse
CN105631003A (zh) * 2015-12-28 2016-06-01 北京赛思信安技术股份有限公司 支持海量数据分组统计的智能索引构建、查询及维护方法
CN106570113A (zh) * 2016-10-25 2017-04-19 中国电力科学研究院 一种海量矢量切片数据云存储方法及系统
CN110046183A (zh) * 2019-04-16 2019-07-23 北京易沃特科技有限公司 一种时序数据聚合检索方法、设备及介质
CN110597900A (zh) * 2019-09-19 2019-12-20 浪潮软件股份有限公司 一种gdb数据实时按需生成矢量切片的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022083436A1 (zh) * 2020-10-19 2022-04-28 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
US20220350807A1 (en) 2022-11-03
CN111782663B (zh) 2023-09-01
WO2021232645A1 (zh) 2021-11-25
US11928113B2 (en) 2024-03-12

Similar Documents

Publication Publication Date Title
US10102268B1 (en) Efficient index for low latency search of large graphs
CN107818115B (zh) 一种处理数据表的方法及装置
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
CN102521405B (zh) 支持高速加载的海量结构化数据存储、查询方法和系统
US9798772B2 (en) Using persistent data samples and query-time statistics for query optimization
CN102521406B (zh) 海量结构化数据复杂查询任务的分布式查询方法和系统
Zheng et al. Reference-based framework for spatio-temporal trajectory compression and query processing
Chen et al. Top-k term publish/subscribe for geo-textual data streams
US20100106713A1 (en) Method for performing efficient similarity search
US10042914B2 (en) Database index for constructing large scale data level of details
US20220350807A1 (en) Structure and method of aggregation index for improving aggregation query efficiency
CN102982103A (zh) 一种olap海量多维数据维存储方法
CN103678694A (zh) 视频资源的倒排索引文件建立方法及其系统
CN110928882B (zh) 一种基于改进红黑树的内存数据库索引方法及系统
Koide et al. Fast subtrajectory similarity search in road networks under weighted edit distance constraints
Ding et al. MO-Tree: an efficient forwarding engine for spatiotemporal-aware pub/sub systems
US20130041887A1 (en) Adding entries to an index based on use of the index
CN103365960A (zh) 电力多级调度管理结构化数据的离线搜索方法
CN115840751B (zh) 一种新型树状数据的编码方法
EP3005161A1 (en) Datasets profiling tools, methods, and systems
CN110321388B (zh) 一种基于Greenplum的快速排序查询方法及系统
CN106339432A (zh) 一种按查询内容进行负载均衡的系统及其方法
CN116226086A (zh) 一种数据迁移过程中分段数据的顺序维护与校验方法
US20220215021A1 (en) Data Query Method and Apparatus, Computing Device, and Storage Medium
CN107291875B (zh) 一种基于元数据图的元数据组织管理方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Applicant after: Zhejiang Bangsheng Technology Co.,Ltd.

Address before: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Applicant before: ZHEJIANG BANGSUN TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Wang Xingen

Inventor after: Wang Xinyu

Inventor after: Jin Lu

Inventor after: Chen Wei

Inventor after: Gao Yang

Inventor after: Lu Ping

Inventor after: Huang Tao

Inventor before: Wang Xingen

Inventor before: Wang Xinyu

Inventor before: Chen Chun

Inventor before: Jin Lu

Inventor before: Chen Wei

Inventor before: Gao Yang

Inventor before: Lu Ping

Inventor before: Huang Tao

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant