基于预计算优化的逻辑执行优化方法及系统技术方案

技术编号:21605456 阅读:29 留言:0更新日期:2019-07-13 18:12
本发明专利技术实施例公开一种基于预计算优化的逻辑执行优化方法及系统,其中方法包括如下步骤:构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid;在Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据;基于查询树的各叶子节点遍历输出目标查询数据。采用本发明专利技术,通过对Cube中的数据进行预聚合,并执行优化的逻辑操作,可以提高查询速度。

Logic Execution Optimization Method and System Based on Predictive Computation Optimization

【技术实现步骤摘要】
基于预计算优化的逻辑执行优化方法及系统
本专利技术涉及数据查询
,尤其涉及一种基于预计算优化的逻辑执行优化方法及系统。
技术介绍
在信息化和数据化的时代,很多企业都会使用传统数据仓库或数据库技术来搭建数据分析平台,期望能从这些数据中挖掘出来价值。但是随着数据量的爆炸增长,原有的技术难以在巨量的数据量下还能保持高效、可靠的查询体验。如何对规模在千万亿级别的数据进行快速的多维分析以进行决策支持,是商务智能和数据挖掘领域的重要课题,也是本专利技术所解决的问题。
技术实现思路
本专利技术实施例提供一种基于预计算优化的逻辑执行优化方法及系统,通过对Cube中的数据进行预聚合,并执行优化的逻辑操作,可以提高查询速度。本专利技术实施例第一方面提供了一种基于预计算优化的逻辑执行优化方法,可包括:构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid;在所述Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据;基于查询树的各叶子节点遍历输出所述目标查询数据。在一种可能的设计中,上述优化方法还包括:将数据库中同一项目对应的多维度的项目数据组合在同一Cuboid。在一种可能的设计中:上述查询树至少包括第一叶子节点和第二叶子节点。在一种可能的设计中:上述第一叶子节点为从所述Cuboid中获取数据的节点;上述第二叶子节点无需遍历所述目标数据维度中的全部目标查询数据。在一种可能的设计中,上述优化方法还包括:在第一叶子节点中,过滤掉第二叶子节点无需遍历的目标查询数据。本专利技术实施例第二方面提供了一种基于预计算优化的逻辑执行优化系统,可包括:预聚合模块,用于构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid;目标数据获取模块,用于在所述Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据;数据输出模块,用于基于查询树的各叶子节点遍历输出所述目标查询数据。在一种可能的设计中,上述优化系统还包括:数据组合模块,用于将数据库中同一项目对应的多维度的项目数据组合在同一Cuboid。在一种可能的设计中:上述查询树至少包括第一叶子节点和第二叶子节点。在一种可能的设计中:上述第一叶子节点为从所述Cuboid中获取数据的节点;上述第二叶子节点无需遍历目标数据维度中的全部目标查询数据。在一种可能的设计中,上述优化系统还包括:数据过滤模块,用于在第一叶子节点中,过滤掉第二叶子节点无需遍历的目标查询数据。在本专利技术实施例中,基于原始的数据仓库提出了一种多层次的优化查询方案,解决了在大数据量下,复杂查询无法及时返回的缺陷,极大的提升了查询的速度,并且通过横向的增加集群的资源满足了不断增长的数据量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1是本专利技术实施例提供的一种基于预计算优化的逻辑执行优化方法的流程示意图;图2是本专利技术实施例提供的一种查询树结构示意图;图3是本专利技术实施例提供的另一种查询树结构示意图;图4是本专利技术实施例提供的一种基于预计算优化的逻辑执行优化系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。本专利技术实施例提供的基于预计算优化的逻辑执行优化方法可以应用于大数据挖掘的场景中。下面将结合附图1-附图3,对本专利技术实施例提供的基于预计算优化的逻辑执行优化方法进行详细介绍。请参见图1,为本专利技术实施例提供了一种基于预计算优化的逻辑执行优化方法的流程示意图。如图1所示,本专利技术实施例的所述方法可以包括以下步骤S101-步骤S103。S101,构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid。可以理解的是,上述数据立方体Cube可以是数据库中对于多维度的项目数据的一个抽象,包含了多维分析中不同的维度组合,可以是所有维度的组合,每一种维度组合也可以称之为一个Cuboid即Cube是所有Cuboid的集合。需要说明的是,优化系统可以将数据库中同一项目对应的多维度的项目数据组合在同一Cuboid。可以理解的是,同一项目可以是具备关联关系的数据维度,例如,学号、分数、排名等可以属于同一项目,其中,学号、分数和排名可以是同一项目的项目数据对应的不同维度。进一步的,优化系统可以通过构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid。在本专利技术的具体实现方式中,上述预聚合的过程可以通过下面的例子来说明。假设一张表上有以下几个列:交易号,国家,时间,类型,交易金额,假设我们想要以国家、时间、类型为维度,分析交易金额的总和,则以建立如表1所示的一个Cuboid:表1国家时间类型交易金额总和当原始表有如表2所示的数据时:表2国家时间类型地点交易金额China2016T1Shanghai100America2018T2NewYork50China2016T1Beijing50经过预聚合之后,Cuboid中存储的数据如表3所示:表3国家时间类型交易金额总和China2016T1150America2018T250可以看到经过预聚合之后,一方面减少了源数据的条数,另一方面需要计算的指标也提前计算完成,所以当分析师进行实际业务查询时,无需重新对数据执行聚合运算,而是通过预聚合查询引擎,直接读取预计算结果,使其能够在短时间能内对海量数据集进行灵活分析。S102,在Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据。具体的,优化系统可以在Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据,可以理解的是,查询任务可以是SQL语言编辑的程序指令,目标数据维度可以是在某一项目中需要查询的数据维度,例如,某一项目包含的数据维度为姓名、学号、成绩,目标数据维度可以只包含姓名和成绩。在本专利技术实施例的具体实现方式中,如图2所示,图2中右图为一个原始的执行计划,查询树的叶子节点TableScan负责从存储中将数据取出。未经过优化执行计划会将所有数据都取出,传递给下一个节点。图2中右图的两个TableScan算子会分别全量的扫描sales表和country表,读出这两个表的所有列的所有值,即读取其中所有的数据维度对应的数据。可以发现图2中左图的查询最后只会用到orderId和name这两个数据维度,可以将orderId和name作为目标数据维度,只需遍历这两个目标数据维度的对应的目标查询数据即可,最终,查询树的遍历过程可以是图2中的右图。在可选实施例中,查询树至少包括第一叶子节点和第二叶子节点,上述第一和第二可以作为范数进行代指,表示查询树中有较多层次的叶子节点。上述第一叶子节点可以是直接从Cuboid中获取数据的节点,上述第二叶子节点可以是无需遍历上述目标数据维度中的全部目标查询数据的节点。可以理解的是,优化系统可以在第一叶子节点中,过滤掉第二叶子节点无需遍历的目标查询数据。例如,图2中左图或者图3中左图的查询树的上层有一个FILTER节点,该节点会过滤掉orderId不为123的所有其他值,所以在TableScan节点上并不需要读取sales表上orederId列中的所有值,可以直接在T本文档来自技高网...

【技术保护点】
1.一种基于预计算优化的逻辑执行优化方法,其特征在于,包括:构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid;在所述Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据;基于查询树的各叶子节点遍历输出所述目标查询数据。

【技术特征摘要】
1.一种基于预计算优化的逻辑执行优化方法,其特征在于,包括:构建数据立方体Cube,将数据库中的数据按照不同维度的组合预聚合为不同的Cuboid;在所述Cuboid中获取查询任务所要查询的目标数据维度对应的目标查询数据;基于查询树的各叶子节点遍历输出所述目标查询数据。2.根据如权利要求1所述的方法,其特征在于,所述方法还包括:将数据库中同一项目对应的多维度的项目数据组合在同一Cuboid。3.根据如权利要求1所述的方法,其特征在于:所述查询树至少包括第一叶子节点和第二叶子节点。4.根据如权利要求3所述的方法,其特征在于:所述第一叶子节点为从所述Cuboid中获取数据的节点;所述第二叶子节点无需遍历所述目标数据维度中的全部目标查询数据。5.根据如权利要求3所述的方法,其特征在于,所述方法还包括:在所述第一叶子节点中,过滤掉所述第二叶子节点无需遍历的目标查询数据。6.一种基于预计算优化的逻辑执行优化系统,其特...

【专利技术属性】
技术研发人员:陶加涛许益铭李扬韩卿
申请(专利权)人:跬云上海信息科技有限公司
类型:发明
国别省市:上海,31

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

1