多维数据库自动路由实现方法和系统的制作方法

文档序号:9667450阅读:347来源:国知局
多维数据库自动路由实现方法和系统的制作方法
【技术领域】
[0001]本发明涉及数据查询技术领域,特别是涉及一种多维数据库自动路由实现方法和系统。
【背景技术】
[0002]目前大数据应用最成熟的是在数据分析领域,在数据分析领域中维度建模被广泛用于指导构建以分析为目地的数据模型设计,而按照维度建模产生的立方体(Cube),随着数据量的增大,其查询速度越来越慢。

【发明内容】

[0003]基于上述情况,本发明提出了一种多维数据库自动路由实现方法和系统,提高Cube的查询速度,实现多维模型的查询优化。
[0004]为了实现上述目的,本发明技术方案的实施例为:
[0005]—种多维数据库自动路由实现方法,包括以下步骤:
[0006]接收多维数据库立方体查询请求;
[0007]根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
[0008]分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
[0009]根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
[0010]—种多维数据库自动路由实现系统,包括:
[0011]请求接收模块,用于接收多维数据库立方体查询请求;
[0012]请求转换模块,用于根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
[0013]能力比较模块,用于分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
[0014]空间查询模块,用于根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
[0015]与现有技术相比,本发明的有益效果为:本发明多维数据库自动路由实现方法和系统,首先将用户的查询请求转换为数据能力,然后将多维数据库中所有数据空间的数据能力与查询请求转换的数据能力进行比较,得到满足预设要求的数据空间集,在该数据集中查询得到满足预设性能最优条件的数据空间,从性能最优的数据空间中查询数据,提高了 Cube的查询速度,实现多维模型的查询优化。
【附图说明】
[0016]图1为一个实施例中多维数据库自动路由实现方法流程图;
[0017]图2为基于图1所示方法一个具体示例中多维数据库自动路由实现方法流程图;
[0018]图3为一个实施例中多维数据库自动路由实现系统结构示意图。
【具体实施方式】
[0019]为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不限定本发明的保护范围。
[0020]—个实施例中多维数据库自动路由实现方法,如图1所示,包括以下步骤:
[0021]步骤S101:接收多维数据库立方体查询请求;
[0022]步骤S102:根据预设转换规则将所述查询请求转换为数据能力,所述数据能力为数据空间提供数据的能力,所述数据空间为根据预设汇聚规则对多维数据库中的立方体进行数据汇总后得到的汇总数据的存储空间;
[0023]步骤S103:分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集;
[0024]步骤S104:根据预设性能最优条件在所述数据空间集中查询满足预设性能最优条件的数据空间。
[0025]从以上描述可知,本发明将用户的查询请求转换为数据能力,然后将多维数据库中所有数据空间的数据能力与该数据能力进行比较,得到满足预设要求的数据空间集,在该数据集中查询得到满足预设性能最优条件的数据空间,从性能最优的数据空间中查询数据,可以提高Cube的查询速度,实现多维模型的查询优化,适合应用。
[0026]此外,在一个具体示例中,所述查询请求包括过滤条件、汇总粒度和输出度量,所述数据能力包括空间范围,空间粒度,空间内容;所述空间范围为数据空间存储的每个维度的维度成员组合;所述空间粒度为数据空间存储的所有维度的层次组合;所述空间内容为数据空间存储的度量的集合。
[0027]用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。
[0028]数据空间(Space):根据预设汇聚规则对所述多维数据库中的立方体(cube)进行数据汇总后得到的汇总数据的存储空间,将立方体(cube)按照预设汇聚规则汇总计算好若干份数据,每一份数据的存储,定义为一个数据空间。所以一个cube的数据被分布在若干个数据空间中存储。
[0029]数据能力(Capacity):某个数据空间提供数据的能力,如果该空间具备了支持本次查询的能力,则本次查询能够被路由到从该空间取数。如何来评估该能力,通过下面所讲述的空间范围,空间粒度和空间内容来衡量,即对数据能力的描述是一个三元的元组:(空间范围,空间粒度,空间内容)
[0030]空间范围(Range):该空间内存储数据的范围,由数据空间存储的每个维度(Dimens1n)的维度成员组合而成,如某个数据空间存储了为“ 1997-1998年,华南地区所有商品的数据”,则空间范围可以被描述为:{TimeDimens1n: [1997, 1998], AreaDimens1n:[华南],ProductDimens1n: [All]}。
[0031]空间粒度(Granularity):该空间所存储的数据的粒度,由数据空间存储的所有维度的层次(Level)组合而成,如某个空间粒度为“每年,每个城市,汇总所有产品的数据”,则空间粒度可以描述为:{TimeDimens1n: Year, AreaDimens1n:City, ProductDimens1n:All}o
[0032]空间内容(Measure):该空间存储的度量的集合,如某个空间的内容为“销售量”,可以被描述为{SalesCount (销售统计),SalesAmount (销售金额)}。
[0033]此外,在一个具体示例中,所述根据预设转换规则将所述查询请求转换为数据能力的步骤包括:
[0034]将所述过滤条件中的维度的层次转换为第一空间粒度,且将所述过滤条件中的常量转换为空间范围;
[0035]将所述汇总粒度转换为第二空间粒度,并根据所述第一空间粒度和所述第二空间粒度确定空间粒度;
[0036]将所述输出度量转换为空间内容。
[0037]用户的查询请求中,分为三类信息:过滤条件(如取日期维度上取1997年的数据),汇总粒度(如按照每年每省份显示),输出度量(如输出销售额)。分别将该三类信息转换为数据空间三要素(空间范围,空间粒度,空间内容):
[0038]过滤条件:条件中左侧出现的维度的层次(Level)转换为第一空间粒度,右侧的常量转换为空间范围,如日期维度.Year = 1997,会产生空间粒度{TimeDimens1n: Year},空间范围:{TimeDimens1n:
[1997]},如果同一个维度产生多个空间粒度,则需要做粒度合并:取更明细的粒度,如{TimeDimens1n:Year}和{TimeDimens1n:Month}合并之后取{TimeDimens1n:Month};如同一个维度产生多个空间范围,则需要做空间范围合并,取两个空间范围内维度成员的合集,如{TimeDimens1n:
[1997]}和{TimeDimens1n:
[1998]}合并之后为{TimeDimens1n: [1997, 1998]}。
[0039]汇总粒度:转换为第二空间粒度,如最后显示每年每省份的数据,产生粒度为{TimeDimens1n: Year, AreaDimens1n:Province}。根据所述过滤条件中的维度的层次转换的第一空间粒度和所述汇总粒度转换的第二空间粒度确定空间粒度。如第一空间粒度{TimeDimens1n:Month},第二空间粒度{TimeDimens1n: Year, AreaDimens1n:Province},合并之后为{TimeDimens1n:Month, AreaDimens1n:Province} 0
[0040]输出度量:转换为空间内容,如需要输出销售额,则产生的空间内容为{SalesAmount (销售额)},如果产生多个空间内容,则需要做空间内容的合并,取空间内容中度量集合的合集,如{SalesCount}和{SalesAmount}合并之后为{SalesCount, SalesAmount}。
[0041]此外,在一个具体示例中,分别将所述查询请求转换的数据能力与所述多维数据库中所有数据空间的数据能力进行比较,根据比较结果得到所述多维数据库中的满足预设要求的数据空间集的步骤包括:
[0042]分别将所述查询请求转换的空间范围与所述多维数据库中所有数据空间的空间范围进行比较,将所述查询请求转换的空间粒度与所述多维数据库中所有数据空间的空间粒度进行比较,将所述查询请求转换的空间内容与所述多
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1