一种大数据多维分析方法及系统转让专利

申请号 : CN201710051542.5

文献号 : CN106897386B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘春江黎侃柴楹黄承松夏里峰

申请人 : 武汉奇米网络科技有限公司

摘要 :

本发明公开了一种大数据多维分析方法及系统,其中,方法包括:构建多个CUBE,识别各CUBE含义相同的维度名称,建立维度匹配关系表,生成含义相同的维度名称的公用维度名称,用户选择公用维度名称和指标名称,查找到包含用户选择的公用维度和指标的第三CUBE名称集合;生成SQL语句,从第三CUBE名称集合的各CUBE中分别查询数据,将查询结果放入内存中缓存;将查询结果进行拼装,得到结果集,显示结果集对应的图表。有益效果:建立各CUBE的维度匹配关系,用户选择维度和指标查询数据,查询各CUBE中的符合条件的数据并放入内存缓存,再将内存中的数据进行拼装成结果集并以图表展现,实现了跨CUBE的数据查询,效率高、查询方便、不需要人工对信息进行整合。

权利要求 :

1.一种大数据多维分析方法,其特征在于,包括:

S1、构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;

S2、识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,所述第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;

S3、用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称查询所述第二数据库表中的对应关系表得到第一CUBE名称集合,用户选择指标名称查询所述第一数据库表获取包含用户选择的指标的第二CUBE名称集合,综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;

S4、获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;

S5、将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;

S6、根据所述第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。

2.如权利要求1所述的大数据多维分析方法,其特征在于,步骤S4中:获取的第一数量为一个,则生成一个SQL语句,查询得一个查询结果,不进行拼装。

3.如权利要求1所述的大数据多维分析方法,其特征在于,步骤S4中:根据第三CUBE名称集合、公用维度名称对应的原维度名称生成第一数量的SQL语句。

4.如权利要求1所述的大数据多维分析方法,其特征在于,步骤S6中:获取结果集后,将结果集中的原维度名称替换成公用维度名称,再显示成对应图表,图表中的维度名称为公用维度名称。

5.一种大数据多维分析系统,其特征在于,包括:

创建CUBE模块:构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;

维度匹配模块:识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,所述第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;

用户查询模块:用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称查询所述第二数据库表中的对应关系表得到第一CUBE名称集合,用户选择指标名称查询所述第一数据库表获取包含用户选择的指标的第二CUBE名称集合,综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;

SQL语句生成模块:获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;

查询与缓存模块:将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;

拼装与显示模块:根据所述第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。

6.如权利要求5所述的大数据多维分析系统,其特征在于,SQL语句生成模块中:获取的第一数量为一个,则生成一个SQL语句,查询得一个查询结果,不进行拼装。

7.如权利要求5所述的大数据多维分析系统,其特征在于,SQL语句生成模块中:根据第三CUBE名称集合、公用维度名称对应的原维度名称生成第一数量的SQL语句。

8.如权利要求5所述的大数据多维分析系统,其特征在于,拼装与显示模块中:获取结果集后,将结果集中的原维度名称替换成公用维度名称,再显示成对应图表,图表中的维度名称为公用维度名称。

说明书 :

一种大数据多维分析方法及系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其是涉及一种大数据多维分析方法及系统。

背景技术

[0002] 在大数据行业内,多维分析是一项很重要的技术,能提供给分析人员,多角度、多粒度、多指标的自由组合查询,为数据探索和分析提供了巨大便捷。区别于传统的报表开发,具有高自由度、高扩展性、覆盖面广、低维护成本的优势。
[0003] 一般而言,多维分析的方法是预先建立好多维数据立方体模型(CUBE),当用户在选择好指标和维度后,进行查询,配合业内常用的OLAP计算引擎,从CUBE中,拉取并计算得到最终用户想要的结果,并以特定的图表形式呈现。
[0004] 但是,用户的数据探索需求不固定、多种多样,而预先建立好的CUBE都是相互独立的,且没办法用一个CUBE囊括所有的业务指标和维度,即使有,实现成本巨大。那么当出现用户需要的信息跨多个CUBE的时候,就只能用多次查询,然后再自己做信息整合,显然这样会导致使用体验不好,效率降低。

发明内容

[0005] 本发明的目的在于克服上述技术不足,提出一种大数据多维分析方法及系统,解决现有技术的多维分析中跨CUBE查询不方便、效率低下的技术问题。
[0006] 为达到上述技术目的,本发明的技术方案提供一种大数据多维分析方法,包括:
[0007] S1、构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;
[0008] S2、识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;
[0009] S3、用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称可查询第二数据库表中的对应关系表得到第一CUBE名称集合,
[0010] 用户选择指标名称查询第一数据库表获取包含用户选择的指标的第二CUBE名称集合,
[0011] 综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;
[0012] S4、获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;
[0013] S5、将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;
[0014] S6、根据第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。
[0015] 本发明还提供一种大数据多维分析系统,包括:
[0016] 创建CUBE模块:构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;
[0017] 维度匹配模块:识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;
[0018] 用户查询模块:用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称可查询第二数据库表中的对应关系表得到第一CUBE名称集合,用户选择指标名称查询第一数据库表获取包含用户选择的指标的第二CUBE名称集合,
[0019] 综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;
[0020] SQL语句生成模块:获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;
[0021] 查询与缓存模块:将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;
[0022] 拼装与显示模块:根据第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。
[0023] 与现有技术相比,本发明的有益效果包括:在查询跨CUBE的数据时,先建立各CUBE的匹配关系,用户选择维度和指标查询数据,先查询各CUBE中的符合条件的数据,将数据放入内存缓存,再将内存中的数据进行拼装成结果集,最后将结果集以图表的方式展现给用户,实现了跨CUBE的数据查询,效率高、查询方便、不需要人工对信息进行整合。

附图说明

[0024] 图1是本发明提供的一种大数据多维分析方法流程图;
[0025] 图2是本发明提供的一种大数据多维分析系统结构框图。
[0026] 附图中:1、大数据多维分析系统,11、创建CUBE模块,12、维度匹配模块,13、用户查询模块,14、SQL语句生成模块,15、查询与缓存模块,16、拼装与显示模块。

具体实施方式

[0027] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028] 本发明提供了一种大数据多维分析方法,其中,包括:
[0029] S1、构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;
[0030] S2、识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;
[0031] S3、用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称可查询第二数据库表中的对应关系表得到第一CUBE名称集合,
[0032] 用户选择指标名称查询第一数据库表获取包含用户选择的指标的第二CUBE名称集合,
[0033] 综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;
[0034] S4、获取第三CUBE名称集合中的CUBE名称数量为第一数量,根据第三CUBE名称集合、公用维度名称对应的原维度名称生成第一数量的SQL语句;
[0035] S5、将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;
[0036] S6、根据第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,将结果集中的原维度名称替换成公用维度名称,按照用户需求,显示结果集对应的图表。获取的第一数量为一个,则生成一个SQL语句,查询得一个查询结果,不进行拼装。
[0037] 本发明所述的大数据多维分析方法,步骤S1中:
[0038] 构建两个cube,两个cube的名称分别是cube1和cube2,cube1中包含有维度名称为A1,B1的两个维度,cube1还包含指标名称为指标X的指标,cube2中包含有维度名称为A2,B2的两个维度,cube2还包含指标名称为指标Y的指标,将cube1和cube2的维度信息和指标信息存入数据库表f中。
[0039] 本发明所述的大数据多维分析方法,步骤S2中:
[0040] 识别cube1中的A1,B1与cube2中A2,B2分别表示的相同含义,然后通过录入界面,将cube1与维度A1、B1的对应关系表,cube2与维度A2、B2的对应关系表,以及cube1的维度A1与cube2的维度A2维度名称含义相同的匹配关系表,cube1的维度B1与cube2的维度B2维度名称含义相同的匹配关系表,录入到数据库表e中,并且为A1、B1、A2、B2维度生成两个公用的维度名称A3、B3,其中,A1、B1、A2、B2为原维度名称。
[0041] 本发明所述的大数据多维分析方法,步骤S3中:
[0042] 当用户选择好维度A3、B3和指标X、Y,然后点击查询按钮时,由公用维度名称A3、B3可知其原维度名称分别为A1、A2和B1、B2,根据维度A3,B3得到的原维度名称A1、A2和B1、B2到数据库表e中查找到cube1、cube2,再根据指标X、Y从数据库表f中查找到指标X,Y分别对应的CUBE是cube1和cube2,最终得到的包含用户选择的公用维度和指标的CUBE是cube1和cube2。
[0043] 本发明所述的大数据多维分析方法,步骤S4中:
[0044] 最终得到的包含用户选择的公用维度和指标的CUBE是cube1和cube2,有两个不同CUBE,根据cube1、cube2和公用维度名称对应的原维度名称A1、B1、A2、B2生成两个sql语句,分别是查询cube1的sql语句SQL1,查询cube2的sql语句SQL2。
[0045] 本发明所述的大数据多维分析方法,步骤S5中:
[0046] 将生成的SQL1,SQL2提交给查询引擎执行,从cube1、cube2查询,将查询结果取到内存中缓存为DATA1,DATA2。
[0047] 本发明所述的大数据多维分析方法,步骤S6中:
[0048] 通过查询数据库表e中维度的匹配关系表,A1与A2含义相同,B1与B2含义相同,再对应到获取的内存中的查询结果,A1,B1对应DATA1,A2,B2对应DATA2,将DATA1、DATA2进行再次拼装,最终得到1份结果集DATA3,DATA3包含了维度A1,A2,B1,B2,指标X,Y,将结果集DATA3中的A1,A2用公用维度名称A3代替,B1,B2用公用公用维度名称B3代替,X,Y保持原样,按照用户要求的形式,前端程序做图表展示给用户。
[0049] 本发明还提供一种大数据多维分析系统1,其中,包括:
[0050] 创建CUBE模块11:构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;
[0051] 维度匹配模块12:识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;
[0052] 用户查询模块13:用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称可查询第二数据库表中的对应关系表得到第一CUBE名称集合,用户选择指标名称查询第一数据库表获取包含用户选择的指标的第二CUBE名称集合,综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;
[0053] SQL语句生成模块14:获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;
[0054] 查询与缓存模块15:将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;
[0055] 拼装与显示模块16:根据第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。
[0056] 本发明所述的大数据多维分析系统1,SQL语句生成模块14中:
[0057] 获取的第一数量为一个,则生成一个SQL语句,查询得一个查询结果,不进行拼装。
[0058] 本发明所述的大数据多维分析系统1,SQL语句生成模块14中:
[0059] 根据第三CUBE名称集合、公用维度名称对应的原维度名称生成第一数量的SQL语句。
[0060] 本发明所述的大数据多维分析系统1,拼装与显示模块16中:
[0061] 获取结果集后,将结果集中的原维度名称替换成公用维度名称,再显示成对应图表,图表中的维度名称为公用维度名称。
[0062] 本发明提供的大数据多维分析方法及系统在使用过程中,首先构建多个CUBE,CUBE包含维度信息和指标信息,将CUBE的维度信息和指标信息存入第一数据库表,以CUBE名称来标示不同的CUBE,以维度名称和指标名称来标示CUBE的维度和指标;然后识别各CUBE含义相同的维度名称,建立含义相同的维度名称之间的匹配关系表,将匹配关系表存入第二数据库表,生成含义相同的维度名称的公用维度名称,含义相同的各维度名称定义为原维度名称,第二数据库表还包括:原维度名称和原维度名称所属的CUBE名称的对应关系表;用户选择公用维度名称,由公用维度名称获取原维度名称,由原维度名称可查询第二数据库表中的对应关系表得到第一CUBE名称集合,用户选择指标名称查询第一数据库表获取包含用户选择的指标的第二CUBE名称集合,综合第一CUBE名称集合和第二CUBE名称集合,得到包含用户选择的公用维度和指标的第三CUBE名称集合;获取第三CUBE名称集合中的CUBE名称数量为第一数量,生成第一数量的SQL语句;将生成的第一数量的SQL语句提交给查询引擎执行,从第三CUBE名称集合的各CUBE中分别查询数据,得到第一数量的查询结果,将查询结果放入内存中缓存;最后根据第二数据库表中的匹配关系表,将第一数量的查询结果进行拼装,得到结果集,按照用户需求,显示结果集对应的图表。
[0063] 与现有技术相比,本发明的有益效果包括:在查询跨CUBE的数据时,先建立各CUBE的匹配关系,用户选择维度和指标查询数据,先查询各CUBE中的符合条件的数据,将数据放入内存缓存,再将内存中的数据进行拼装成结果集,最后将结果集以图表的方式展现给用户,实现了跨CUBE的数据查询,效率高、查询方便、不需要人工对信息进行整合。
[0064] 以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。