一种多维数据查询方法及装置
技术领域
本发明涉及大数据分析技术领域,尤其涉及一种多维数据查询方法及装置。
背景技术
在多维数据分析处理中,基于OLAP引擎的业务逻辑模型建模是目前很常用的一种解决方案,即通过实现一个“数据立方体”对数据仓库中的数据按不同的维度组合进行建模聚合,并在数据分析师进行实际业务查询时,根据查询的指标和维度组合对逻辑模型进行汇总聚合返回结果,从而实现对业务数据多维分析的有力支撑。
然而,随着具体业务领域的细分发展,单一业务逻辑模型中维度数量过多、维值基数过大的场景越来越多,某类分析维度、特别是数据定义近似但业务定义有所差别的维度组在同一分析模型中出现的频率也越来越高。在保证实际多维分析的目标下,如果在维度定义上基于所有的业务场景做细分定义,会导致维度存在过度重复定义、占据过多物理存储空间、维度爆炸的隐患,对维度的管理也会造成很大的挑战。
发明内容
本发明的目的在于提供一种多维数据查询方法及装置,能够在减少数据模型物理存储空间的同时实现对近似维度数据的精确查询。
为了实现上述目的,本发明的一方面提供一种多维数据查询方法,包括:
基于数据仓库中的维度表构建原子维度数据,所述原子维度数据包括维度编码、维度名称、维值编码和维值名称;
基于数据仓库中的事实表训练物理模型,所述物理模型中存储有明细事实数据及对应的指标字段和度量字段;
针对所述原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据;
将所述物理模型与所述衍生维度数据映射匹配构建逻辑模型,所述逻辑模型中存储有所述衍生维度数据与对应指标字段及度量字段的映射关系;
获取查询指令,从所述逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
优选地,在基于数据仓库中的事实表训练物理模型之前还包括:
根据原子维度数据的维度编码,对所述原子维度数据进行查询权限的配置。
较佳地,所述查询权限的配置规则采用角色和/或工号对应设定范围维值编码的方案。
优选地,针对所述原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据的方法包括:
所述衍生维度数据由衍生字段和相关原子维度数据中的维值编码组成,所述衍生字段代表业务场景。
优选地,所述衍生维度数据包括单一业务场景的衍生维度数据和多元业务场景的衍生维度数据;
所述单一业务场景的衍生维度数据中的衍生字段为空;
所述多元业务场景的衍生维度数据中的衍生字段为非空,且各所述衍生字段与每种业务场景一一对应。
优选地,将所述物理模型与所述衍生维度数据映射匹配构建逻辑模型的方法包括:
设置所述逻辑模型的字段构成,所述字段构成包括维度字段、度量字段和指标字段;
清洗所述物理模型的字段数据,仅保留与所述逻辑模型字段构成一致的字段数据;
获取所述衍生维度数据与所述物理模型中度量字段及指标字段的映射关系,构建所述逻辑模型。
优选地,获取查询指令,从所述逻辑模型中调取对应映射关系的所述衍生维度数据及指标字段输出的方法包括:
从查询指令中解析角色和/或工号信息,基于对应的控制权限调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
与现有技术相比,本发明提供的多维数据查询方法具有以下有益效果:
本发明提供的多维数据查询方法中,根据数据仓库中的维度表定义并创建原子维度数据,然后用户根据需要的业务定义及目标查询场景确定业务模型,并基于该业务模型从数据仓库中调取相关事实表训练物理模型,其中,该物理模型中存储有明细事实数据及对应的指标字段和度量字段,为了提升维度的丰富度,本发明还需根据业务场景的定义对原子维度数据进行维度拓展,生成与之相关的多个衍生维度数据,之后将上述物理模型与衍生维度数据映射匹配构建逻辑模型,得到衍生维度数据与对应指标字段及度量字段的映射关系,在逻辑模型建成之后,基于用户的查询指令从逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出,推送给报表端展示给用户。
可见,相比较于现有技术中利用单一原子维度数据与物理模型构建逻辑模型而言,在实现相同维度数据查询需求的情况下,使用本发明提供的多维数据查询方法能够减少维度爆炸带来的人为建设管理成本及硬件存储技术成本。
本发明的另一方面提供一种多维数据查询装置,应用于上述技术方案提到的多维数据查询方法中,该装置包括原子维度构建单元,用于基于数据仓库中的维度表构建原子维度数据,所述原子维度数据包括维度编码、维度名称、维值编码和维值名称;
物理模型建模单元,用于基于数据仓库中的事实表训练物理模型,所述物理模型中存储有明细事实数据及对应的指标字段和度量字段;
维度拓展单元,用于针对所述原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据;
逻辑模型建模单元,用于将所述物理模型与所述衍生维度数据映射匹配构建逻辑模型,所述逻辑模型中存储有所述衍生维度数据与对应指标字段及度量字段的映射关系;
查询输出单元,用于获取查询指令,从所述逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
优选地,在原子维度建模单元和物理模型建模单元之间还包括
权限配置单元,用于根据原子维度数据的维度编码,对所述原子维度数据进行查询权限的配置。
与现有技术相比,本发明提供的多维数据查询装置的有益效果与上述技术方案提供的多维数据查询方法的有益效果相同,在此不做赘述。
本发明的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述多维数据查询方法的步骤。
与现有技术相比,本发明提供的计算机可读存储介质的有益效果与上述技术方案提供的多维数据查询方法的有益效果相同,在此不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一中多维数据查询方法的流程示意图;
图2为本发明实施例一中订单指标维度建设示例图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1,本实施例提供一种多维数据查询方法,包括:基于数据仓库中的维度表构建原子维度数据,原子维度数据包括维度编码、维度名称、维值编码和维值名称;基于数据仓库中的事实表训练物理模型,物理模型中存储有明细事实数据及对应的指标字段和度量字段;针对原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据;将物理模型与衍生维度数据映射匹配构建逻辑模型,逻辑模型中存储有衍生维度数据与对应指标字段及度量字段的映射关系;获取查询指令,从逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
本实施例提供的多维数据查询方法中,根据数据仓库中的维度表定义并创建原子维度数据,然后用户根据需要的业务定义及目标查询场景确定业务模型,并基于该业务模型从数据仓库中调取相关事实表训练物理模型,其中,该物理模型中存储有明细事实数据及对应的指标字段和度量字段,为了提升维度的丰富度,本实施例还需根据业务场景的定义对原子维度数据进行维度拓展,生成与之相关的多个衍生维度数据,之后将上述物理模型与衍生维度数据映射匹配构建逻辑模型,得到衍生维度数据与对应指标字段及度量字段的映射关系,在逻辑模型建成之后,基于用户的查询指令从逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出,推送给报表端展示给用户。
可见,相比较于现有技术中利用单一原子维度数据与物理模型构建逻辑模型而言,在实现相同维度数据查询需求的情况下,使用本实施例提供的多维数据查询方法能够减少维度爆炸带来的人为建设管理成本及硬件存储技术成本。
优选地,上述实施例中在基于数据仓库中的事实表训练物理模型之前还包括:
根据原子维度数据的维度编码,对原子维度数据进行查询权限的配置。其中,查询权限的配置规则采用角色和/或工号对应设定范围维值编码的方案。示例性地,上述基于维度的权限控制采用角色+工号+维值编码的方案,即每个角色+工号在某一维度上对应的可以查看的维值编码范围是预先配置的,其中角色可以指职位、工种等。
上述实施例中针对原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据的方法包括:衍生维度数据由衍生字段和相关原子维度数据中的维值编码组成,衍生字段代表业务场景。
具体实施时,当逻辑模型建设中需要的衍生维度为“业务场景+原子维度”时,则系统会基于物理模型中对应的字段名+原子维度编码,组成新的衍生维度编码,如基于“城市”这个原子维度,根据业务场景需要区分“收货城市”、“发货城市”,从而生成不同的衍生维度编码。
可以理解的是,上述实施例中的衍生维度数据包括单一业务场景的衍生维度数据和多元业务场景的衍生维度数据;单一业务场景的衍生维度数据中的衍生字段为空;多元业务场景的衍生维度数据中的衍生字段为非空,且各衍生字段与每种业务场景一一对应。换句话说,对于如“流量访问城市”这种单一业务场景的衍生维度数据,可视作衍生维度数据等同于原子维度数据,也即衍生字段为空,对于如“收货城市”、“发货城市”这种多元业务场景的衍生维度数据中的衍生字段为非空,若“城市”的原子维度数据的维值编码为WD0001,则“收货城市”的衍生维度数据的维值编码为receivecityWD0001,“发货城市”的衍生维度数据的维值编码为delivercity WD0001。
需要说明的是,上述实施例中的基于同一个原子维度数据生成的衍生维度数据,完全继承原子维度数据中的维值编码,即维度编码源自同一张物理表;基于同一个原子维度数据生成的衍生维度数据,在血缘分析上可追溯至同一原子维度数据,且可以指定为不同指标间的公共维度,便于跨域分析使用。
进一步地,上述实施例中的将所述物理模型与所述衍生维度数据映射匹配构建逻辑模型的方法包括:
设置逻辑模型的字段构成,字段构成包括维度字段、度量字段和指标字段;清洗物理模型的字段数据,仅保留与逻辑模型字段构成一致的字段数据;获取衍生维度数据与物理模型中度量字段及指标字段的映射关系,构建逻辑模型。
需要补充的是,对于同一个原子维度数据生成的衍生维度数据,在构建逻辑模型时该衍生维度数据虽然继承了原子维度数据的权限配置,但在训练逻辑模型时还可增加衍生维度数据的权限控制开关,例如逻辑模型中包括衍生维度数据A和衍生维度数据B,当在训练逻辑模型中选择打开衍生维度数据A的权限控制开关时,其权限配置与原子维度数据的权限配置相同,当在训练逻辑模型中未选择打开衍生维度数据B的权限控制开关时,其权限配置处于关闭状态即等同于未设置权限配置。可见,本实施例通过增设衍生维度数据的权限控制开关,能够进一步保证逻辑模型应用的灵活性。
上述实施例中,获取查询指令,从逻辑模型中调取对应映射关系的衍生维度数据及指标字段输出的方法包括:从查询指令中解析角色和/或工号信息,基于对应的控制权限调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
为了便于理解,请参阅图2,本实施例以订单相关数据分析举例说明:
根据数据仓库中的城市维度表,在维度管理系统中定义“城市”维度,以WD0001作为该维度的唯一编码标识,维值存放形式例如“025—南京市”,并进行相应的权限配置工作;
基于数据仓库中的订单明细表,建设订单过程的物理模型;
由于订单明细表中包含“收货城市”“发货城市”“下单城市”三个与“城市”原子维度数据相关的分析维度字段,因此在建设订单逻辑模型时,系统自动根据物理表中的字段名称,生成三个衍生维度数据,分别为
receivecity WD0001、delivercity WD0001、submitcity WD0001,且这三个衍生维度数据的原始维度数据定义与维值数据均继承城市维度,无需人为重复建设管理;
建设逻辑模型,同时建设指标(含维度信息);
根据业务需要,“发货城市”delivercity_WD0001保留“城市”维度所有的权限配置信息并生效、“收货城市”和“下单城市”均不需要做数据权限控制,在指标建设时做好相应的勾选配置;
报表可以查看付款金额指标+收货城市/发货城市/下单城市三个维度,且发货城市做权限控制、另外两个无权限控制。
通过上述实施过程可知,本实施例通过多维数据查询方法能够解决维度的过度人为近似定义的问题,利用衍生维度数据规则自动生成不同的衍生维度编码,可以继承同一原子维度的数据及血缘信息;此外,通过将衍生维度数据进行差异化的数据权限控制,避免了因继承原子维度数据而将衍生维度数据全部按照同样的范围控制权限的问题,也即可以解耦固化衍生维度数据的控制权限,实现根据不同的业务场景对衍生维度数据权限的差异化控制。
实施例二
本实施例提供一种多维数据查询装置,包括原子维度构建单元,用于基于数据仓库中的维度表构建原子维度数据,所述原子维度数据包括维度编码、维度名称、维值编码和维值名称;
物理模型建模单元,用于基于数据仓库中的事实表训练物理模型,所述物理模型中存储有明细事实数据及对应的指标字段和度量字段;
维度拓展单元,用于针对所述原子维度数据进行维度拓展,对应生成与之相关的多个衍生维度数据;
逻辑模型建模单元,用于将所述物理模型与所述衍生维度数据映射匹配构建逻辑模型,所述逻辑模型中存储有所述衍生维度数据与对应指标字段及度量字段的映射关系;
查询输出单元,用于获取查询指令,从所述逻辑模型中调取对应映射关系的衍生维度数据及指标字段和度量字段统计输出。
优选地,在原子维度建模单元和物理模型建模单元之间还包括
权限配置单元,用于根据原子维度数据的维度编码,对所述原子维度数据进行查询权限的配置。
与现有技术相比,本发明实施例提供的多维数据查询装置的有益效果与上述实施例一提供的多维数据查询方法的有益效果相同,在此不做赘述。
实施例三
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述多维数据查询方法的步骤。
与现有技术相比,本实施例提供的计算机可读存储介质的有益效果与上述技术方案提供的多维数据查询方法的有益效果相同,在此不做赘述。
本领域普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,上述程序可以存储于计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。