一种通过动态构建立方体进行数据查询分析的方法与流程

未命名 08-12 阅读:146 评论:0

一种通过动态构建立方体进行数据查询分析的方法
1.本技术是在原申请(申请号:201911412349.5)基础上提出的分案申请,原申请的申请日是:2019年12月31日,申请号是:201911412349.5,发明创造名称是:一种通过动态构建立方体进行数据处理或查询的方法。
技术领域
2.本发明涉及数据处理技术领域,尤其涉及一种通过动态构建立方体进行数据查询分析的方法。


背景技术:

3.随着社会的飞速发展,分析数据所蕴含规律及变化趋势,并制定一套完整的解决方案,用来将企业中现有的数据进行有效的整合,帮助企业做出明智的业务经营决策,变得越来越重要,构建立方体作为数据分析的基础环节,构建复杂、灵活立方体给数据分析带来了巨大挑战。
4.在传统的数据分析系统中,满足复杂、灵活、个性化的数据分析需求主要采用以下方法:通过编写sql脚本的方式(sql语句、存储过程)、根据业务预先配置好立方体方式、进行多维分析。
5.在传统的数据分析系统中通过sql脚本的方式(存储过程)、对编写人员要求较高,并且在数据库之间存在着语法的差异、不便于对sql在数据库间进行移植。
6.根据业务预先配置立方体主要的缺点就是与关系模型相比它的灵活性不够,一旦模型构建就非常难再进行相关的更改。


技术实现要素:

7.本发明的目的在于提供一种通过动态构建立方体进行数据处理或查询的方法,从而解决现有技术中存在的前述问题。
8.为了实现上述目的,本发明采用的技术方案如下:
9.一种通过动态构建立方体进行数据处理的方法,包括以下步骤:
10.s1,构建模型,新建自定义字段,并通过本地查询语法对自定义字段进行数据处理,并确认是否可以通过sql方式进行数据处理;
11.s2,当新建自定义字段可以通过sql方式进行数据处理,那么直接通过数据库方式进行数据处理,否则进入步骤s3;
12.s3,采用新建的自定义字段构建数据处理立方体;
13.s4,针对已构建的数据处理立方体进行数据处理。
14.优选地,步骤s1中构建模型具体包括:通过各种文件、关系型数据库、其他数据以及应用接口构建模型;
15.确认是否可以通过sql方式进行数据处理具体包括:判断自定义字段是否存在嵌套关系,若没有嵌套的自定义字段,只需判断该自定义字段是否支持对应数据库的sql语
法;若存在嵌套使用其它自定义字段,则需要判断所有的自定义字段是否均能通过sql方式进行数据处理。
16.优选地,步骤s2具体包括:
17.s21,当没有嵌套自定义字段支持对应数据库的sql语法,若是,则直接通过数据库方式进行计算,否则,进入步骤s3;
18.s22,当有嵌套的自定义字段中所有的自定义字段均能通过sql方式进行数据处理,则对所有自定义字段计算顺序进行排序处理、优先处理被嵌套的自定义字段,最终采用sql方式计算所有的自定义字段;否则,进入步骤s3。
19.优选地,步骤s3中动态构建立方体具体包括:
20.s31,获取自定义字段中所有的基础字段,并对所述基础字段进行处理,获取基础字段列表;
21.s32,获取模型的物理表,构建立方体表;如果存在过滤条件,对过滤条件进行转换本地查询语言能识别的语法,构建立方体的查询表;
22.对基础字段列表查询模型中对应的基础字段数据类型构建立方体维度,对数字类型构建立方体度量;
23.s33,构建计算成员;
24.s34,通过上述构建的实体对象,操作xml方式构建立方体。
25.优选地,步骤s4中具体包括:
26.s41,通过模型的主键构建数据集以用于mdx语句的行数据集,根据自定义字段构建计算表达式;
27.s42,根据动态计算表达式及构建的行数据集,构建多维查询语句,通过立方体及mdx语句进行多维计算;
28.s43,获取多维计算的结果并将计算结果更新到模型中。
29.本发明的另一目的是提供一种通过动态构建立方体进行数据查询分析的方法,包括以下步骤:
30.a1,构建数据查询分析模型,新建画面图表,对画面图表进行x轴、y轴或z轴绑定;
31.a2,判断所述图表绑定数轴个数,若只绑定1-2个,并且没有使用动态表达式,则直接通过数据库方式进行查询分析,否则进入步骤a3;
32.a3,当使用动态表达式或以三维方式进行展示时,动态构建立方体;
33.a4,根据建立的立方体文件,进行数据多维查询分析。
34.优选地,步骤a3中具体包括:
35.a31,通过绑定基础字段、获取已绑定的基础字段和动态表达式中所有的基础字段;
36.a32,对步骤a31中获取的所有基础字段进行去重,获取基础字段列表;
37.a33,获取模型信息构建立方体表,将过滤条件、排序条件及展示行数转换为本地查询语言能识别的语法,从而构建立方体的查询视图;
38.a34,采用步骤a32中的基础字段列表按数据类型进行处理,构建立方体维度和度量,得到数据查询立方体。;
39.优选地,步骤a1中对x轴、y轴和z轴绑定具体包括:新建动态表达式或通过拖拽画
面图表进行绑定;
40.步骤a1和a2之间还包括:若需要筛选或排序,可以通过拖拽模型字段对已绑定的画面图表进行筛选或排序。
41.优选地,步骤a4中具体包括:
42.a41,获取已绑定图表的过滤排序信息,构建sql语句进行查询,得到查询结果进而构建多维行数据集;
43.a42,根据绑定数据或者动态表达式对计算成员进行转换、构建多维语句列数据集;
44.a43,基于构建的多维行数据集、多维列数据集,以及数据查询立方体,
45.通过多维引擎进行查询,从而获取查询结果;
46.a44,将查询结果转换为图表能识别的格式进行展现,实现数据分析结果。
47.值得注意的是,本发明中的创新点在于:
48.1、构建的自定义字段,通过计算自定义字段内部字段的嵌套关系,制定了计算优先级,决定计算顺序。
49.2、模型的数据处理优先通过sql方式计算,有助于处理复杂、个性化的需求,当采用sql方式无法实现数据处理过程时,进而通过动态建立数据立方体的方式,通过多维引擎进行计算。
50.3、通过构建数据查询立方体进行多维分析时,排序时优选通过sql方式对维度进行排序,进而构造mdx语句的axis轴,并且此种方式的排序就支持:聚合方式的排序,包括按照求和、平均值、最大值、最小值、原始值对查询结果进行排序。
51.4、构建的数据立方体中可以实现对数据的处理,包括可以进行对数据的单行处理、或者跨行处理。
52.5、采用sql语句与mdx居于结合的方式构建mdx的元组及数据集,使得数据查询和处理速度更快。
53.本发明的有益效果是:
54.本发明通过将用户新增的自定义字段、可以通过转换sql方式或sql方式与立方体方式相结合方式构建查询,完成对自定义字段的计算,从而实现基础数据处理,并且还可以通过对维度、度量的拖拽进行多维分析实现行列转换、聚合排序结果,使用起来简单、方便、灵活;多维计算过程是在内存中进行的,可以屏蔽数据库之间的语法差异,并且本发明通过sql方式对数据预先处理的方式、避免在组装mdx语句时多个维度直接采用笛卡尔积的方式去组装,提升查询效率。
附图说明
55.图1是现有技术中基本立方体的组成结构图;
56.图2是实施例1中的通过动态构建立方体进行数据处理的方法流程图;
57.图3是实施例2中的通过动态构建立方体进行数据查询分析的方法流程图。
具体实施方式
58.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进
行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
59.实施例1
60.本实施例提供一种通过动态构建立方体进行数据处理的方法,包括以下步骤:
61.s1,通过文件(excel/csv/json/xml)、关系型数据库、其他数据(es/redis/influx)、应用接口(webservice、restful)等方式构建数据处理模型,新建自定义字段,并通过本地查询语法对自定义字段进行数据处理,并确认是否可以通过sql方式进行数据处理;
62.判断自定义字段是否存在嵌套关系,若没有嵌套的自定义字段,只需判断该自定义字段是否支持对应数据库的sql语法;若存在嵌套使用其它自定义字段,则需要判断所有的自定义字段是否均能通过sql方式进行数据处理。
63.s2,当新建自定义字段可以通过sql方式进行数据处理,那么直接通过数据库方式进行数据处理,否则进入步骤s3;
64.s3,采用新建的自定义字段构建立方体,构建立方体的过程具体包括:
65.s31,获取自定义字段中所有的基础字段,并对所述基础字段进行处理,获取基础字段列表;
66.s32,获取模型的物理表,构建立方体表;如果存在过滤条件,对过滤条件进行转换本地查询语言能识别的语法,构建立方体的查询表;
67.对基础字段列表查询模型中对应的基础字段数据类型构建立方体维度,对数字类型构建立方体度量;
68.s33,构建计算成员;
69.s34,通过上述构建的实体对象,操作xml方式构建立方体。
70.s4,针对已构建的立方体进行数据处理,具体包括:
71.s41,通过模型的主键构建数据集以用于mdx语句的行数据集,根据自定义字段构建计算表达式;
72.s42,根据动态计算表达式及构建的行数据集,构建多维查询语句,通过构建的立方体及mdx语句进行多维计算;
73.s43,获取多维计算的结果并将计算结果更新到模型中。
74.值得注意的是,本实施中步骤s1中是否可以通过sql方式进行数据处理具体包括:判断自定义字段是否存在嵌套关系,若没有嵌套的自定义字段,只需判断该自定义字段是否支持对应数据库的sql语法;若存在嵌套使用其它自定义字段,则需要判断所有的自定义字段是否均能通过sql方式进行数据处理。
75.本实施例中的步骤s2具体包括:
76.s21,当没有嵌套自定义字段支持对应数据库的sql语法,若是,则直接通过数据库方式进行计算,否则,进入步骤s3;
77.s22,当有嵌套的自定义字段中所有的自定义字段均能通过sql方式进行数据处理,则对所有自定义字段计算顺序进行排序处理、优先处理被嵌套的自定义字段,最终采用sql方式计算所有的自定义字段;否则,进入步骤s3。
78.本实施例中在进行构建计算成员时包括两个方式,首先针对已经通过sql方式进
行计算的自定义字段,如果已经通过sql方式进行计算的自定义字段,在构建立方体时,根据自定义字段的类型,直接对基础字段列表查询模型中对应的基础字段数据类型,将自定义字段当成普通字段,对字符串、日期、构建立方体维度、对数字类型构建立方体度量,从而直接构建立方体的计算成员;
79.如果是不能通过sql方式进行计算的自定义字段,通过构建计算成员的方式处理,将自定义字段中的表达式进行转换成对应立方体能识别的表达式,作为度量进行使用。
80.实施例2
81.本实施例提供一种通过动态构建立方体进行数据查询分析的方法,如图3所示,包括以下步骤:
82.a1,构建数据查询分析模型,新建画面图表,对新建动态表达式或通过拖拽对画面图表进行x轴、y轴和z轴绑定,若需要筛选或排序,可以通过拖拽模型字段对已绑定的画面图表进行筛选或排序;
83.a2,判断所述图表绑定数轴的个数,若只绑定1-2个且没有使用动态表达式,则直接通过本地查询或对应数据库方式进行查询分析,否则进入步骤a3;
84.a3,当使用动态表达式或以三维方式进行展示时,动态构建数据查询立方体,具体包括:
85.a31,通过绑定基础字段、获取已绑定的基础字段和动态表达式中所有的基础字段;
86.a32,对步骤a31中获取的所有基础字段进行去重,获取基础字段列表;
87.a33,获取模型信息构建立方体表,将过滤条件、排序条件及展示行数转换为本地查询语言能识别的语法,从而构建立方体的查询视图;
88.a34,采用步骤a32中的基础字段列表按数据类型进行处理,构建立方体维度和度量,得到数据查询立方体。
89.a4,根据建立的数据查询立方体,进行数据多维查询分析。
90.本实施例中的步骤a4中数据多维查询分析具体包括:
91.a41,获取已绑定图表的过滤排序信息,构建sql语句进行查询,采用获取的查询结果构建多维行数据集;
92.a42,根据绑定的数据或者动态表达式进行转换,从而构建多维列数据集;
93.a43,基于构建的多维行数据集、多维列数据集,以及数据查询立方体,
94.通过多维引擎进行查询,从而获取查询结果;
95.a44,将查询结果转换为图表能识别的格式进行展现,实现数据分析结果。
96.通过采用本发明公开的上述技术方案,得到了如下有益的效果:
97.本发明通过将用户新增的自定义字段、可以通过转换sql方式或sql方式与立方体方式相结合方式构建查询,完成对自定义字段的计算,从而实现基础数据处理,并且还可以通过对维度、度量的拖拽进行多维分析实现行列转换、聚合排序结果,使用起来简单、方便、灵活;多维计算过程是在内存中进行的,可以屏蔽数据库之间的语法差异,并且本发明通过sql方式对数据预先处理的方式、避免在组装mdx语句时多个维度直接采用笛卡尔积的方式去组装,提升查询效率。
98.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

技术特征:
1.一种通过动态构建立方体进行数据查询分析的方法,其特征在于,包括以下步骤:a1,构建数据查询分析模型,新建画面图表,对画面图表进行x轴、y轴或z轴绑定;a2,判断所述图表绑定数轴个数,若只绑定1-2个,并且没有使用动态表达式,则直接通过数据库方式进行查询分析,否则进入步骤a3;a3,当使用动态表达式或以三维方式进行展示时,动态构建立方体;a4,根据建立的立方体文件,进行数据多维查询分析。2.根据权利要求1所述的通过动态构建立方体进行数据查询分析的方法,其特征在于,步骤a3中具体包括:a31,通过绑定基础字段、获取已绑定的基础字段和动态表达式中所有的基础字段;a32,对步骤a31中获取的所有基础字段进行去重,获取基础字段列表;a33,获取模型信息构建立方体表,将过滤条件、排序条件及展示行数转换为本地查询语言能识别的语法,从而构建立方体的查询视图;a34,采用步骤a32中的基础字段列表按数据类型进行处理,构建立方体维度和度量,得到数据查询立方体。3.根据权利要求1所述的通过动态构建立方体进行数据查询分析的方法,其特征在于,步骤a1中对x轴、y轴和z轴绑定具体包括:新建动态表达式或通过拖拽画面图表进行绑定;步骤a1和a2之间还包括:若需要筛选或排序,可以通过拖拽模型字段对已绑定的画面图表进行筛选或排序。4.根据权利要求1所述的通过动态构建立方体进行数据查询分析的方法,其特征在于,步骤a4中具体包括:a41,获取已绑定图表的过滤排序信息,构建sql语句进行查询,得到查询结果进而构建多维行数据集;a42,根据绑定数据或者动态表达式对计算成员进行转换、构建多维语句列数据集;a43,基于构建的多维行数据集、多维列数据集,以及数据查询立方体,通过多维引擎进行查询,从而获取查询结果;a44,将查询结果转换为图表能识别的格式进行展现,实现数据分析结果。

技术总结
本发明公开了一种通过动态构建立方体进行数据查询分析的方法,涉及数据处理技术领域,本发明中的方法将用户新增的自定义字段、可以通过转换SQL方式或SQL方式与立方体方式相结合方式构建查询,完成对自定义字段的计算,从而实现基础数据处理,并且还可以通过对维度、度量的拖拽进行多维分析实现行列转换、聚合排序结果,使用起来简单、方便、灵活;多维计算过程是在内存中进行的,可以屏蔽数据库之间的语法差异,并且本发明通过SQL方式对数据预先处理的方式、避免在组装MDX语句时多个维度直接采用笛卡尔积的方式去组装,提升查询效率。率。率。


技术研发人员:钱苏晋 刘爱军 王胜强
受保护的技术使用者:北京恒泰实达科技股份有限公司
技术研发日:2019.12.31
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐