CN105426501B - 多维数据库自动路由实现方法和系统 - Google Patents
多维数据库自动路由实现方法和系统 Download PDFInfo
- Publication number
- CN105426501B CN105426501B CN201510831404.XA CN201510831404A CN105426501B CN 105426501 B CN105426501 B CN 105426501B CN 201510831404 A CN201510831404 A CN 201510831404A CN 105426501 B CN105426501 B CN 105426501B
- Authority
- CN
- China
- Prior art keywords
- data
- space
- granularity
- spatial
- dimensional database
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000009466 transformation Effects 0.000 claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 238000005259 measurement Methods 0.000 claims description 9
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000005457 optimization Methods 0.000 abstract description 6
- 235000019580 granularity Nutrition 0.000 description 158
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computational Linguistics (AREA)
Abstract
本发明公开了一种多维数据库自动路由实现方法和系统,所述方法包括:接收多维数据库立方体查询请求;根据预设转换规则将所述查询请求转换为数据能力;分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果在所述多维数据库中得到满足预设要求的数据空间集;根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。本发明提高Cube的查询速度,实现多维模型的查询优化,满足实际应用需要。
Description
技术领域
本发明涉及数据查询技术领域,特别是涉及一种多维数据库自动路由实现方法和系统。
背景技术
目前大数据应用最成熟的是在数据分析领域,在数据分析领域中维度建模被广泛用于指导构建以分析为目地的数据模型设计,而按照维度建模产生的立方体(Cube),随着数据量的增大,其查询速度越来越慢。
发明内容
基于上述情况,本发明提出了一种多维数据库自动路由实现方法和系统,提高Cube的查询速度,实现多维模型的查询优化。
为了实现上述目的,本发明技术方案的实施例为:
一种多维数据库自动路由实现方法,包括以下步骤:
接收多维数据库立方体查询请求;
根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
一种多维数据库自动路由实现系统,包括:
请求接收模块,用于接收多维数据库立方体查询请求;
请求转换模块,用于根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
能力比较模块,用于分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
空间查询模块,用于根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
与现有技术相比,本发明的有益效果为:本发明多维数据库自动路由实现方法和系统,首先将用户的查询请求转换为数据能力,然后将多维数据库中所有数据空间的数据能力与查询请求转换的数据能力进行比较,得到满足预设要求的数据空间集,在该数据集中查询得到满足预设性能最优条件的数据空间,从性能最优的数据空间中查询数据,提高了Cube的查询速度,实现多维模型的查询优化。
附图说明
图1为一个实施例中多维数据库自动路由实现方法流程图;
图2为基于图1所示方法一个具体示例中多维数据库自动路由实现方法流程图;
图3为一个实施例中多维数据库自动路由实现系统结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
一个实施例中多维数据库自动路由实现方法,如图1所示,包括以下步骤:
步骤S101:接收多维数据库立方体查询请求;
步骤S102:根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
步骤S103:分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
步骤S104:根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
从以上描述可知,本发明将用户的查询请求转换为数据能力,然后将多维数据库中所有数据空间的数据能力与该数据能力进行比较,得到满足预设要求的数据空间集,在该数据集中查询得到满足预设性能最优条件的数据空间,从性能最优的数据空间中查询数据,可以提高Cube的查询速度,实现多维模型的查询优化,适合应用。
此外,在一个具体示例中,所述查询请求包括过滤条件、汇总粒度和输出度量,所述数据能力包括空间范围,空间粒度,空间内容;所述空间范围为数据空间存储的每个维度的维度成员组合;所述空间粒度为数据空间存储的所有维度的层次组合;所述空间内容为数据空间存储的度量的集合。
用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。
数据空间(Space):根据预设汇聚规则对所述多维数据库中的立方体(cube)进行数据汇总后得到的汇总数据的存储空间,将立方体(cube)按照预设汇聚规则汇总计算好若干份数据,每一份数据的存储,定义为一个数据空间。所以一个cube的数据被分布在若干个数据空间中存储。
数据能力(Capacity):某个数据空间提供数据的能力,如果该空间具备了支持本次查询的能力,则本次查询能够被路由到从该空间取数。如何来评估该能力,通过下面所讲述的空间范围,空间粒度和空间内容来衡量,即对数据能力的描述是一个三元的元组:(空间范围,空间粒度,空间内容)
空间范围(Range):该空间内存储数据的范围,由数据空间存储的每个维度(Dimension)的维度成员组合而成,如某个数据空间存储了为“1997-1998年,华南地区所有商品的数据”,则空间范围可以被描述为:{TimeDimension:[1997,1998],AreaDimension:[华南],ProductDimension:[All]}。
空间粒度(Granularity):该空间所存储的数据的粒度,由数据空间存储的所有维度的层次(Level)组合而成,如某个空间粒度为“每年,每个城市,汇总所有产品的数据”,则空间粒度可以描述为:{TimeDimension:Year,AreaDimension:City,ProductDimension:All}。
空间内容(Measure):该空间存储的度量的集合,如某个空间的内容为“销售量”,可以被描述为{SalesCount(销售统计),SalesAmount(销售金额)}。
此外,在一个具体示例中,所述根据预设转换规则将所述查询请求转换为数据能力的步骤包括:
将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
将所述输出度量转换为空间内容。
用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。分别将该三类信息转换为数据空间三要素(空间范围,空间粒度,空间内容):
过滤条件:条件中左侧出现的维度的层次(Level)转换为第一空间粒度,右侧的常量转换为空间范围,如日期维度.Year=1997,会产生空间粒度{TimeDimension:Year},空间范围:{TimeDimension:[1997]},如果同一个维度产生多个空间粒度,则需要做粒度合并:取更明细的粒度,如{TimeDimension:Year}和{TimeDimension:Month}合并之后取{TimeDimension:Month};如同一个维度产生多个空间范围,则需要做空间范围合并,取两个空间范围内维度成员的合集,如{TimeDimension:[1997]}和{TimeDimension:[1998]}合并之后为{TimeDimension:[1997,1998]}。
汇总粒度:转换为第二空间粒度,如最后显示每年每省份的数据,产生粒度为{TimeDimension:Year,AreaDimension:Province}。根据所述过滤条件中的维度的层次转换的第一空间粒度和所述汇总粒度转换的第二空间粒度确定空间粒度。如第一空间粒度{TimeDimension:Month},第二空间粒度{TimeDimension:Year,AreaDimension:Province},合并之后为{TimeDimension:Month,AreaDimension:Province}。
输出度量:转换为空间内容,如需要输出销售额,则产生的空间内容为{SalesAmount(销售额)},如果产生多个空间内容,则需要做空间内容的合并,取空间内容中度量集合的合集,如{SalesCount}和{SalesAmount}合并之后为{SalesCount,SalesAmount}。
此外,在一个具体示例中,分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集的步骤包括:
分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;
当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,得到所述第一数据空间为满足所述预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间。
在空间范围上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的维度成员组合都是另一个空间范围B相对应维度上的维度成员组合的子集时,则空间范围B包含空间范围A。如{TimeDimension:[1997,1998],AreaDimension:[All],ProductDimension:[All]}包含{TimeDimension:[1997],AreaDimension:[华南],ProductDimension:[All]}。
在空间粒度上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的层次(Level)都比另一个空间范围B相对应维度上的层次(Level)更粗时,则空间粒度B包含空间粒度A。如{TimeDimension:Month,AreaDimension:City,ProductDimension:All}包含{TimeDimension:Year,AreaDimension:Province,ProductDimension:All}。
在空间内容上定义一个操作:包含(Contain),当某个空间内容A上的度量集合是空间内容B的度量集合的子集时,则空间内容B包含空间内容A。如{SalesCount,SalesAmount}包含{SalesCount}。
空间包含(Contain):一个数据空间A能够包含另外一个数据空间B,亦即是说B中的数据能够从A中获得。如“空间粒度为每年的数据”能够从“空间粒度粒度为每月的数据”中再次汇聚得到。评判两个数据空间之间的包含关系,可以根据评判这两个数据空间对应的数据能力之间是否包含,而数据能力包含关系再转化为对空间三要素(范围,粒度,内容)的包含关系评判,如果数据能力A对应的三要素都包含数据能力B对应的三要素,则说数据能力A包含数据能力B,然后得出数据空间A包含数据空间B,亦即是说数据空间B中的数据能够从数据空间A中推导而出。
此外,在一个具体示例中,所述满足预设性能最优条件的数据空间为所述数据空间集中的空间粒度与所述查询请求转换的空间粒度相差最小的数据空间。
数据能力之间的距离(Distance):两个数据能力中空间粒度之间相差多少,其目地是为了描述从哪个数据空间中去取数的性能会更高,如需要查询每年的数据,很明显从已经汇总到月粒度的数据上再汇总,比从预先汇总到日粒度上再汇总到年的性能更高。所以两个空间距离越近,则说明从一个空间粒度到另一个空间粒度之间的汇聚性能越高。
为了更好地理解上述方法,以下详细阐述一个本发明多维数据库自动路由实现方法的应用实例。
本发明根据一定的规则预先汇总好一部分数据,分别存储在不同的表中,当用户查询Cube时,分析用户的查询请求,从预先汇总好的表中找到从性能上说是最优的一个表,我们将该过程定义为“自动路由”。
如图2所示,该应用实例可以包括以下步骤:
步骤S201:根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到汇总数据,每一份数据的存储,定义为一个数据空间;数据能力为数据空间提供数据的能力;
数据空间(Space):根据预设汇聚规则对所述多维数据库中的立方体(cube)进行数据汇总后得到的汇总数据的存储空间,将立方体(cube)按照预设汇聚规则汇总计算好若干份数据,每一份数据的存储,定义为一个数据空间,所以一个cube的数据被分布在若干个数据空间中存储;
数据能力(Capacity):某个数据空间提供数据的能力,如果该空间具备了支持本次查询的能力,则本次查询能够被路由到从该空间取数。如何来评估该能力,通过下面所讲述的空间范围,空间粒度和空间内容来衡量,即对数据能力的描述是一个三元的元组:(空间范围,空间粒度,空间内容);
空间范围(Range):该空间内存储数据的范围,由数据空间存储的每个维度(Dimension)的维度成员组合而成,如某个数据空间存储了为“1997-1998年,华南地区所有商品的数据”,则空间范围可以被描述为:{TimeDimension:[1997,1998],AreaDimension:[华南],ProductDimension:[All]};
空间粒度(Granularity):该空间所存储的数据的粒度,由数据空间存储的所有维度的层次(Level)组合而成,如某个空间粒度为“每年,每个城市,汇总所有产品的数据”,则空间粒度可以描述为:{TimeDimension:Year,AreaDimension:City,ProductDimension:All};
空间内容(Measure):该空间存储的度量的集合,如某个空间的内容为“销售量”,可以被描述为{SalesCount(销售统计),SalesAmount(销售金额)};
步骤S202:接收用户的多维数据库立方体查询请求,用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额);
步骤S203:将上述查询请求中的过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
过滤条件:条件中左侧出现的维度的层次(Level)转换为第一空间粒度,右侧的常量转换为空间范围,如日期维度.Year=1997,会产生空间粒度{TimeDimension:Year},空间范围:{TimeDimension:[1997]},如果同一个维度产生多个空间粒度,则需要做粒度合并:取更明细的粒度,如{TimeDimension:Year}和{TimeDimension:Month}合并之后取{TimeDimension:Month};如同一个维度产生多个空间范围,则需要做空间范围合并,取两个空间范围内维度成员的合集,如{TimeDimension:[1997]}和{TimeDimension:[1998]}合并之后为{TimeDimension:[1997,1998]};
步骤S204:将上述查询请求中的汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
汇总粒度:转换为第二空间粒度,如最后显示每年每省份的数据,产生粒度为{TimeDimension:Year,AreaDimension:Province}。根据所述过滤条件中的维度的层次转换的第一空间粒度和所述汇总粒度转换的第二空间粒度确定空间粒度。如第一空间粒度{TimeDimension:Month},第二空间粒度{TimeDimension:Year,AreaDimension:Province},合并之后为{TimeDimension:Month,AreaDimension:Province};
步骤S205:将上述查询请求中的输出度量转换为空间内容;
输出度量:转换为空间内容,如需要输出销售额,则产生的空间内容为{SalesAmount(销售额)},如果产生多个空间内容,则需要做空间内容的合并,取空间内容中度量集合的合集,如{SalesCount}和{SalesAmount}合并之后为{SalesCount,SalesAmount};
步骤S206:分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;
步骤S207:当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,得到所述第一数据空间为满足所述预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间;
在空间范围上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的维度成员组合都是另一个空间范围B相对应维度上的维度成员组合的子集时,则空间范围B包含空间范围A。如{TimeDimension:[1997,1998],AreaDimension:[All],ProductDimension:[All]}包含{TimeDimension:[1997],AreaDimension:[华南],ProductDimension:[All]};
在空间粒度上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的层次(Level)都比另一个空间范围B相对应维度上的层次(Level)更粗时,则空间粒度B包含空间粒度A。如{TimeDimension:Month,AreaDimension:City,ProductDimension:All}包含{TimeDimension:Year,AreaDimension:Province,ProductDimension:All};
在空间内容上定义一个操作:包含(Contain),当某个空间内容A上的度量集合是空间内容B的度量集合的子集时,则空间内容B包含空间内容A。如{SalesCount,SalesAmount}包含{SalesCount};
空间包含(Contain):一个数据空间A能够包含另外一个数据空间B,亦即是说B中的数据能够从A中获得。如“空间粒度为每年的数据”能够从“空间粒度粒度为每月的数据”中再次汇聚得到。评判两个数据空间之间的包含关系,可以根据评判这两个数据空间对应的数据能力之间是否包含,而数据能力包含关系再转化为对空间三要素(范围,粒度,内容)的包含关系评判,如果数据能力A对应的三要素都包含数据能力B对应的三要素,则说数据能力A包含数据能力B,然后得出数据空间A包含数据空间B,亦即是说数据空间B中的数据能够从数据空间A中推导而出;
步骤S208:根据预设性能最优条件在上述数据空间集中查询满足预设性能最优条件的数据空间,该满足预设性能最优条件的数据空间为上述数据空间集中空间粒度与上述查询请求转换的空间粒度相差最小的数据空间。
数据能力之间的距离(Distance):两个数据能力中空间粒度之间相差多少,其目地是为了描述从哪个数据空间中去取数的性能会更高,如需要查询每年的数据,很明显从已经汇总到月粒度的数据上再汇总,比从预先汇总到日粒度上再汇总到年的性能更高。所以两个空间距离越近,则说明从一个空间粒度到另一个空间粒度之间的汇聚性能越高。
本应用实例首先将用户的立方体查询请求转换为多维数据库中数据空间的数据能力,然后将多维数据库中所有数据空间的数据能力与查询请求转换的数据能力进行比较,得到满足预设要求的数据空间集,说明本次查询能够从该数据空间查询数据,能够支持本次查询,接下来,在该数据空间集合查询满足预设性能条件的数据空间,最后找到一个数据空间来支持本次查询,提高Cube的查询速度,实现多维模型的查询优化。
一个实施例中多维数据库自动路由实现系统,如图3所示,包括:
请求接收模块301,用于接收多维数据库立方体查询请求;
请求转换模块302,用于根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
能力比较模块303,用于分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
空间查询模块304,用于根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
此外,在一个具体示例中,所述查询请求包括过滤条件、汇总粒度和输出度量,所述数据能力包括空间范围,空间粒度,空间内容;所述空间范围为数据空间存储的每个维度的维度成员组合;所述空间粒度为数据空间存储的所有维度的层次组合;所述空间内容为数据空间存储的度量的集合。
用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。
数据空间(Space):根据预设汇聚规则对所述多维数据库中的立方体(cube)进行数据汇总后得到的汇总数据的存储空间,将立方体(cube)按照预设汇聚规则汇总计算好若干份数据,每一份数据的存储,定义为一个数据空间。所以一个cube的数据被分布在若干个数据空间中存储。
数据能力(Capacity):某个数据空间提供数据的能力,如果该空间具备了支持本次查询的能力,则本次查询能够被路由到从该空间取数。如何来评估该能力,通过下面所讲述的空间范围,空间粒度和空间内容来衡量,即对数据能力的描述是一个三元的元组:(空间范围,空间粒度,空间内容)
空间范围(Range):该空间内存储数据的范围,由数据空间存储的每个维度(Dimension)的维度成员组合而成,如某个数据空间存储了为“1997-1998年,华南地区所有商品的数据”,则空间范围可以被描述为:{TimeDimension:[1997,1998],AreaDimension:[华南],ProductDimension:[All]}。
空间粒度(Granularity):该空间所存储的数据的粒度,由数据空间存储的所有维度的层次(Level)组合而成,如某个空间粒度为“每年,每个城市,汇总所有产品的数据”,则空间粒度可以描述为:{TimeDimension:Year,AreaDimension:City,ProductDimension:All}。
空间内容(Measure):该空间存储的度量的集合,如某个空间的内容为“销售量”,可以被描述为{SalesCount(销售统计),SalesAmount(销售金额)}。
如图3所示,在一个具体示例中,所述请求转换模块302包括:
过滤条件转换单元3021,用于将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
汇总粒度转换单元3022,用于将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
输出度量转换单元3023,用于将所述输出度量转换为空间内容。
用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。分别将该三类信息转换为数据空间三要素(空间范围,空间粒度,空间内容):
过滤条件:条件中左侧出现的维度的层次(Level)转换为第一空间粒度,右侧的常量转换为空间范围,如日期维度.Year=1997,会产生空间粒度{TimeDimension:Year},空间范围:{TimeDimension:[1997]},如果同一个维度产生多个空间粒度,则需要做粒度合并:取更明细的粒度,如{TimeDimension:Year}和{TimeDimension:Month}合并之后取{TimeDimension:Month};如同一个维度产生多个空间范围,则需要做空间范围合并,取两个空间范围内维度成员的合集,如{TimeDimension:[1997]}和{TimeDimension:[1998]}合并之后为{TimeDimension:[1997,1998]}。
汇总粒度:转换为第二空间粒度,如最后显示每年每省份的数据,产生粒度为{TimeDimension:Year,AreaDimension:Province}。根据所述过滤条件中的维度的层次转换的第一空间粒度和所述汇总粒度转换的第二空间粒度确定空间粒度。如第一空间粒度{TimeDimension:Month},第二空间粒度{TimeDimension:Year,AreaDimension:Province},合并之后为{TimeDimension:Month,AreaDimension:Province}。
输出度量:转换为空间内容,如需要输出销售额,则产生的空间内容为{SalesAmount(销售额)},如果产生多个空间内容,则需要做空间内容的合并,取空间内容中度量集合的合集,如{SalesCount}和{SalesAmount}合并之后为{SalesCount,SalesAmount}。
如图3所示,在一个具体示例中,所述能力比较模块303包括:
能力比较单元3031,用于分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;
结果获取单元3032,用于当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,得到所述第一数据空间为满足所述预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间。
在空间范围上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的维度成员组合都是另一个空间范围B相对应维度上的维度成员组合的子集时,则空间范围B包含空间范围A。如{TimeDimension:[1997,1998],AreaDimension:[All],ProductDimension:[All]}包含{TimeDimension:[1997],AreaDimension:[华南],ProductDimension:[All]}。
在空间粒度上定义一个操作:包含(Contain),当某个“空间范围”A内所有维度上的层次(Level)都比另一个空间范围B相对应维度上的层次(Level)更粗时,则空间粒度B包含空间粒度A。如{TimeDimension:Month,AreaDimension:City,ProductDimension:All}包含{TimeDimension:Year,AreaDimension:Province,ProductDimension:All}。
在空间内容上定义一个操作:包含(Contain),当某个空间内容A上的度量集合是空间内容B的度量集合的子集时,则空间内容B包含空间内容A。如{SalesCount,SalesAmount}包含{SalesCount}。
空间包含(Contain):一个数据空间A能够包含另外一个数据空间B,亦即是说B中的数据能够从A中获得。如“空间粒度为每年的数据”能够从“空间粒度粒度为每月的数据”中再次汇聚得到。评判两个数据空间之间的包含关系,可以根据评判这两个数据空间对应的数据能力之间是否包含,而数据能力包含关系再转化为对空间三要素(范围,粒度,内容)的包含关系评判,如果数据能力A对应的三要素都包含数据能力B对应的三要素,则说数据能力A包含数据能力B,然后得出数据空间A包含数据空间B,亦即是说数据空间B中的数据能够从数据空间A中推导而出。
此外,在一个具体示例中,所述满足预设性能最优条件的数据空间为所述数据空间集中的空间粒度与所述查询请求转换的空间粒度相差最小的数据空间。
数据能力之间的距离(Distance):两个数据能力中空间粒度之间相差多少,其目地是为了描述从哪个数据空间中去取数的性能会更高,如需要查询每年的数据,很明显从已经汇总到月粒度的数据上再汇总,比从预先汇总到日粒度上再汇总到年的性能更高。所以两个空间距离越近,则说明从一个空间粒度到另一个空间粒度之间的汇聚性能越高。
基于图3所示的本实施例的系统,一个具体的工作过程可以是如下所述:
首先请求接收模块301接收立方体查询请求;请求转换模块302中的过滤条件转换单元3021将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;汇总粒度转换单元3022将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;输出度量转换单元3023将所述输出度量转换为空间内容;然后能力比较模块303中的能力比较单元3031分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,结果获取单元3032得到所述第一数据空间为满足预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间。最后空间查询模块304在所述满足预设要求的数据空间集中查询满足预设性能最优条件的数据空间。
从以上描述可知,本发明将用户的查询请求转换为数据能力,然后将多维数据库中所有数据空间的数据能力与该数据能力进行比较,得到满足预设要求的数据空间集,在该数据集中查询得到满足预设性能最优条件的数据空间,从性能最优的数据空间中查询数据,可以提高Cube的查询速度,实现多维模型的查询优化。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种多维数据库自动路由实现方法,其特征在于,包括以下步骤:
接收多维数据库立方体查询请求;
根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;其中,所述数据能力包括空间范围,空间粒度,空间内容;
分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
2.根据权利要求1所述的多维数据库自动路由实现方法,其特征在于,所述查询请求包括过滤条件、汇总粒度和输出度量;所述空间范围为数据空间存储的每个维度的维度成员组合;所述空间粒度为数据空间存储的所有维度的层次组合;所述空间内容为数据空间存储的度量的集合。
3.根据权利要求2所述的多维数据库自动路由实现方法,其特征在于,所述根据预设转换规则将所述查询请求转换为数据能力的步骤包括:
将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
将所述输出度量转换为空间内容。
4.根据权利要求3所述的多维数据库自动路由实现方法,其特征在于,分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集的步骤包括:
分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;
当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,得到所述第一数据空间为满足所述预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间。
5.根据权利要求4所述的多维数据库自动路由实现方法,其特征在于,所述满足预设性能最优条件的数据空间为所述数据空间集中的空间粒度与所述查询请求转换的空间粒度相差最小的数据空间。
6.一种多维数据库自动路由实现系统,其特征在于,包括:
请求接收模块,用于接收多维数据库立方体查询请求;
请求转换模块,用于根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;其中,所述数据能力包括空间范围,空间粒度,空间内容;
能力比较模块,用于分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
空间查询模块,用于根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
7.根据权利要求6所述的多维数据库自动路由实现系统,其特征在于,所述查询请求包括过滤条件、汇总粒度和输出度量;所述空间范围为数据空间存储的每个维度的维度成员组合;所述空间粒度为数据空间存储的所有维度的层次组合;所述空间内容为数据空间存储的度量的集合。
8.根据权利要求7所述的多维数据库自动路由实现系统,其特征在于,所述请求转换模块包括:
过滤条件转换单元,用于将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
汇总粒度转换单元,用于将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
输出度量转换单元,用于将所述输出度量转换为空间内容。
9.根据权利要求7所述的多维数据库自动路由实现系统,其特征在于,所述能力比较模块包括:
能力比较单元,用于分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多维数据库中所有数据空间的空间内容进行比较;
结果获取单元,用于当所述多维数据库中第一数据空间的空间范围包含所述查询请求转换的空间范围,所述第一数据空间的空间粒度包含所述查询请求转换的空间粒度,且所述第一数据空间的空间内容包含所述查询请求转换的空间内容时,得到所述第一数据空间为满足所述预设要求的数据空间,所述第一数据空间为所述多维数据库中任意一个数据空间。
10.根据权利要求9所述的多维数据库自动路由实现系统,其特征在于,所述满足预设性能最优条件的数据空间为所述数据空间集中的空间粒度与所述查询请求转换的空间粒度相差最小的数据空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510831404.XA CN105426501B (zh) | 2015-11-25 | 2015-11-25 | 多维数据库自动路由实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510831404.XA CN105426501B (zh) | 2015-11-25 | 2015-11-25 | 多维数据库自动路由实现方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426501A CN105426501A (zh) | 2016-03-23 |
CN105426501B true CN105426501B (zh) | 2018-12-21 |
Family
ID=55504713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510831404.XA Active CN105426501B (zh) | 2015-11-25 | 2015-11-25 | 多维数据库自动路由实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426501B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334554B (zh) * | 2017-12-29 | 2021-10-01 | 上海跬智信息技术有限公司 | 一种新型的olap预计算模型及构建方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1622045A2 (en) * | 2004-07-30 | 2006-02-01 | Microsoft Corporation | Method, system, and apparatus for exposing workbooks as data sources |
US7269581B2 (en) * | 2003-03-28 | 2007-09-11 | Microsoft Corporation | Systems and methods for proactive caching utilizing OLAP variants |
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN102360379A (zh) * | 2011-10-10 | 2012-02-22 | 浙江鸿程计算机系统有限公司 | 一种多维数据立方体增量聚合及查询优化方法 |
CN102521417A (zh) * | 2011-12-30 | 2012-06-27 | 南京柏梭信息科技有限公司 | 一种基于虚拟数据立方体的多维数据处理方法及其系统 |
CN102571715A (zh) * | 2010-12-27 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 多维数据查询方法及系统 |
CN104361118A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种适应协处理器的混合olap查询处理方法 |
CN104462440A (zh) * | 2014-12-15 | 2015-03-25 | 北京国双科技有限公司 | 基于数据立方体的可视化数据的二维显示方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093495B (zh) * | 2006-06-22 | 2011-08-17 | 国际商业机器公司 | 基于网状关系维的数据处理方法和系统 |
-
2015
- 2015-11-25 CN CN201510831404.XA patent/CN105426501B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269581B2 (en) * | 2003-03-28 | 2007-09-11 | Microsoft Corporation | Systems and methods for proactive caching utilizing OLAP variants |
EP1622045A2 (en) * | 2004-07-30 | 2006-02-01 | Microsoft Corporation | Method, system, and apparatus for exposing workbooks as data sources |
CN102571715A (zh) * | 2010-12-27 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 多维数据查询方法及系统 |
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN102360379A (zh) * | 2011-10-10 | 2012-02-22 | 浙江鸿程计算机系统有限公司 | 一种多维数据立方体增量聚合及查询优化方法 |
CN102521417A (zh) * | 2011-12-30 | 2012-06-27 | 南京柏梭信息科技有限公司 | 一种基于虚拟数据立方体的多维数据处理方法及其系统 |
CN104361118A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种适应协处理器的混合olap查询处理方法 |
CN104462440A (zh) * | 2014-12-15 | 2015-03-25 | 北京国双科技有限公司 | 基于数据立方体的可视化数据的二维显示方法和装置 |
Non-Patent Citations (5)
Title |
---|
基于多维数据库的MOLAP存储及查询技术研究;蒋外文 等;《计算机工程与应用》;20051231;第41卷(第24期);166-168 * |
基于多维数据模型的在线查询系统的研究与应用;王强;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090215(第 02 期);I138-396 * |
多维数据库检索查询的新机制;彭敏 等;《武汉大学学报(理学版)》;20010630;第47卷(第3期);318-320 * |
数据仓库中的一种立方体数据模型;王继奎 等;《计算机工程与应用》;20020531;第38卷(第5期);188-190 * |
高校一卡通消费数据OLAP多维分析系统与应用;廖华江 等;《赣南师范大学学报》;20150630;第36卷(第3期);11-14 * |
Also Published As
Publication number | Publication date |
---|---|
CN105426501A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789978B2 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
US20230084389A1 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
US20210240735A1 (en) | System and method for supporting large queries in a multidimensional database environment | |
CN105183735B (zh) | 数据的查询方法及查询装置 | |
CN103678520B (zh) | 一种基于云计算的多维区间查询方法及其系统 | |
CN106484875B (zh) | 基于molap的数据处理方法及装置 | |
US20140074771A1 (en) | Query optimization | |
US10083195B2 (en) | System and method for composing a multidimensional index key in data blocks | |
CN102930062B (zh) | 一种数据库快速水平扩展的方法 | |
US20150088807A1 (en) | System and method for granular scalability in analytical data processing | |
US8949222B2 (en) | Changing the compression level of query plans | |
US9275111B2 (en) | Minimizing result set size when converting from asymmetric to symmetric requests | |
US9928276B2 (en) | Processing records in dynamic ranges | |
CN107168977B (zh) | 一种数据查询的优化方法及装置 | |
CN103455531B (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN104123374A (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN104361113A (zh) | 一种内存-闪存混合存储模式下的olap查询优化方法 | |
US9020954B2 (en) | Ranking supervised hashing | |
CN104731969A (zh) | 分布式环境下海量数据连接聚集查询方法、装置和系统 | |
CN110442602A (zh) | 数据查询方法、装置、服务器及存储介质 | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
US10664525B2 (en) | Data partioning based on end user behavior | |
CN105426501B (zh) | 多维数据库自动路由实现方法和系统 | |
CN103838680A (zh) | 一种数据缓存方法和装置 | |
CN113779084A (zh) | 基于分布式的时序数据查询方法、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 511449 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28 Applicant after: Guangzhou Huaduo Network Technology Co., Ltd. Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08, Applicant before: Guangzhou Huaduo Network Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |