CN113220728A - 数据查询方法、装置、设备和存储介质 - Google Patents
数据查询方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113220728A CN113220728A CN202110569913.5A CN202110569913A CN113220728A CN 113220728 A CN113220728 A CN 113220728A CN 202110569913 A CN202110569913 A CN 202110569913A CN 113220728 A CN113220728 A CN 113220728A
- Authority
- CN
- China
- Prior art keywords
- dimension
- data
- query
- measurement
- auxiliary
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000005259 measurement Methods 0.000 claims abstract description 95
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000007405 data analysis Methods 0.000 abstract description 3
- 230000002776 aggregation Effects 0.000 description 29
- 238000004220 aggregation Methods 0.000 description 29
- 238000004458 analytical method Methods 0.000 description 21
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006722 reduction reaction Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据查询方法、装置、设备和存储介质。一种数据查询方法,包括:接收MDX查询语句;获取所述MDX查询语句中的度量和维度的相关信息;根据所述度量和维度的相关信息进行查询得到查询结果。本发明通过对度量和维度的相关信息的提取和利用分布式计算框架对MDX表达式进行计算,极大地提高了数据分析的效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据查询方法、装置、设备和存储介质。
背景技术
随着大数据时代的来临,人们收集和分析的数据规模越来越大,如何对海量数据进行分析和决策是一个难题。OLAP(联机数据分析)***由于其优秀的多维分析能力,已成为大数据分析中不可或缺的组件。OLAP通常使用的查询语言是MDX。在大数据上使用MDX语言还不能够进行高效的分析。
发明内容
本申请的主要目的在于提供一种数据查询方法、装置、设备和存储介质,以解决上述问题。
为了实现上述目的,根据本申请的一个方面,提供了一种数据查询方法,包括:
接收MDX查询语句;
获取所述MDX查询语句中的度量和维度的相关信息;
根据所述度量和维度的相关信息进行查询得到查询结果。
在一种实施方式中,根据所述度量和维度的相关信息进行查询,包括:
确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
在一种实施方式中,还包括:获取所述MDX查询语句的算子;
对于所述坐标节点;如果查询不到所述坐标节点的度量,则根据所述坐标节点的行、列维度及度量的表达式,确定所述节点的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量和所述算子计算得到所述节点的度量。
在一种实施方式中,接收MDX查询语句,包括:接收报表工具发送的MDX查询语句;
对查询结果进行格式整理;将经过格式整理的查询结果发送给所述报表工具。
在一种实施方式中,根据所述度量和维度的相关信息进行查询得到查询结果,包括:
根据所述度量和维度的相关信息从分布式存储***进行查询得到查询结果;
所述分布式存储***中包括多批相互隔离的数据;
其中,每批数据中存储了一组维度和度量。
在一种实施方式中,根如果查询不到所述节点的直接度量,则查询所述节点的辅助维度,和/或者,辅助度量,包括:
根据所述度量表达式确定需要用到的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量确定所述辅助维度,和/或者,辅助度量所在的数据批次;
从所述数据批次中获取所述辅助维度,和/或者,辅助度量。
为了实现上述目的,根据本申请的第二方面,提供了一种数据查询装置;该装置包括:
接收模块,用于接收MDX查询语句;
获取模块,用于获取所述MDX查询语句中的度量和维度的相关信息;
查询模块,用于根据所述度量和维度的相关信息进行查询得到查询结果。
在一种实施方式中,查询模块还用于,确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
在一种实施方式中,查询模块还用于,获取所述MDX查询语句的算子;
对于所述坐标节点;如果查询不到所述坐标节点的度量,则根据所述坐标节点的行、列维度及度量表达式查询确定所述坐标节点的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量和所述算子计算得到所述节点的度量。
在一种实施方式中,接收模块还用于,接收报表工具发送的MDX查询语句;
还包括格式整理模块,用于对查询结果进行格式整理;将经过格式整理的查询结果发送给所述报表工具。
在一种实施方式中,查询模块还用于,根据所述度量和维度的相关信息从分布式存储***进行查询得到查询结果;
所述分布式存储***中包括多批相互隔离的数据;
其中,每批数据存储一组维度和度量。
在一种实施方式中,查询模块还用于,根据所述度量表达式确定需要用到的辅助维度,,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量的信息确定所述辅助维度,和/或者,辅助度量所在的数据批次;
从所述数据批次中获取所述辅助维度,和/或者,辅助度量。
为了实现上述目的,根据本申请的第三方面,提供了一种电子设备;包括至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行上述任意一项所述的方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述任意一项所述的方法。
本发明的上述的技术方案,通过提取查询中度量和维度信息和通过分布式计算框架来计算MDX表达式,提高了数据查询、分析的效率。能够应对各种大数据量、复杂逻辑的业务分析场景。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种数据查询方法的流程图;
图2是根据本申请实施例的一种数据查询装置的结构示意图;
图3是根据本申请实施例的另一种数据查询装置的结构示意图;
图4是根据本申请实施例的一种数据查询设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
首先介绍一下本申请所用到的技术术语:
OLAP:Online Analysis Processing,联机数据分析,一种使分析人员能够迅速、从多个维度洞察数据的技术。
Aggregation Query:表示MDX查询在某一聚合层级上的查询内容。
Aggregation Query Result:以特定形式组织的、MDX查询在某一聚合层级上的查询结果。
Dimension:MDX语言概念中的维度,一般对应数据源中一张维表。
Hierarchy:MDX语言概念中的层级结构,可能由多层组成。
Level:MDX语言概念中的级别,一般对应为维表上的特定字段。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请提出了一种数据查询方法,参见附图1所示的一种数据查询方法的流程图;该方法包括:
步骤S102,接收MDX查询语句;其中,可以接收报表分析工具发送的MDX查询语句。
具体的,根据报表分析工具组织MDX语句的模式,对来自各种报表分析工具的MDX查询语句进行分析,提取并组织各种查询时所需的信息发送至查询执行模块。
示例性的,首先,收到报表分析工具发送的MDX查询语句后,根据该语句提取出用户的查询意图:所想要查询的维度、度量、筛选条件及其所处的位置(多维数据模型的若干条轴上);由于MDX查询往往需要多个聚合层级的数据且多个聚合层级之间的计算互相独立,因此根据提取出的上述信息,可以生成若干个相应的Aggregation Query,并将上述Aggregation Query发送至查询执行模块并行执行。
接收报表分析工具包括但不限于:Excel、Tableau、PowerBI。
示例性的,查询语句可以为“查询这一个季度的总的销售额”。
步骤S104,获取所述MDX查询语句中的度量和维度的相关信息;
具体的,度量和维度的相关信息包括但是不限于以下的一种或者几种:度量表达式、所述度量表达式中的相关算子、行维度、列维度以及维度级别信息。
示例性的,查询语句可以为“查询这一个季度的总的销售额”时,度量可以为销售额,维度包括店名、日期。可以建立一个二维的表格,表格的横轴为店名,纵轴为日期。每个店,每天的销售额为度量。
示例性的,查询语句为“查询一个学生在一个季度的平均成绩”,度量为考试成绩,维度包括学生的姓名和日期。
步骤S106,根据所述度量和维度的相关信息进行查询得到查询结果。
其中,数据可以存储在分布式存储***中。分布式存储***是一个统一的整体,在这个***中存储了多批相互隔离的数据,每批数据中包括了一组维度和度量数据。采用分布式存储***可以提高数据存储的安全性,备用性。可以把不同的度量数据存储在不同的数据批次中。
本发明的上述的方法,通过提取查询中的度量和维度信息和通过分布式计算框架来计算MDX表达式,提高了数据查询、分析的效率。能够应对各种大数据量、复杂逻辑的业务分析场景。
在一种实施方式中,根据所述度量和维度的相关信息进行查询,包括:
确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
具体的,尽管报表工具对数据的展示方式是二维数据表格,但逻辑上查询语句是对多维数据的查询。例如:查询每个省份各门店各年份销售额,则查询涉及到城市、门店序数、年份三个维度和销售额这一度量。假设在报表工具中行上放置了城市、门店序数维度,列上放置了年份维度和度量,在报表中的展现形式参见表1:
表1
如表1所示,城市,门店序数和年份三个维度取值来确定销售额的取值,展现形式为二维数据表格,但实际上是一个三维数据立方体,三维的x,y,z轴分别为:城市、门店序数、年份。
在一种实施方式中,还包括:获取所述MDX查询语句的算子;
对于所述坐标节点;如果查询不到所述坐标节点的度量,则根据所述坐标节点的行、列维度、度量表达式确定所述坐标节点的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量和所述算子计算得到所述节点的度量。
具体的,表达式中包括辅助维度,和/或,辅助度量;根据所述度量表达式确定需要用到的辅助维度,和/或,辅助度量。得到辅助维度,和/或者度量后,再计算得到节点的度量值。
度量分为基本度量和计算度量两类,前者可以从分布式存储***的数据批次中直接获取到,后者则根据表达式依赖于维度,和/或者,度量计算得到。
所以需要用到辅助维度、辅助度量:
示例性的,1.假设存在两个基本度量“销售额”与“成本”,那么对于“净利润”(“销售额”–“成本“)这一计算度量来说,便仅依赖于两个辅助度量;
2.假设存在维度“商品编号”取值为1-20,其中1-10号商品由于政策规定,在“销售额”和“成本”之外还有一笔“政策补贴”的额外收入固定值为10,那么此时的“净利润”便应该是:
if(“商品编号”in 1-10)
“销售额“–“成本”+10
else
“销售额“–“成本”
那么“净利润”便是依赖于辅助维度(“商品编号”)和辅助度量(“销售额”、“成本”)。
而政策规定可能会发生变动,因此在业务场景中判断条件一般也会被单独写成一个计算度量,方便进行更改,因此实际上这里会有两个计算度量:
1.政策补贴:if“商品编号”in 1-10;
2.商品净利润:if(“政策补贴”)then“销售额“–“成本”+10else“销售额
“–“成本”。
那么对“政策补贴”来说,它只依赖于辅助维度,而对“商品净利润”来说,它本身只依赖于辅助度量。当然由于它依赖于“政策补贴”,因此它实际上依赖于辅助维度和辅助度量。
示例性的,查询语句为“查询每个季度的利润”,度量表达式为,销售额减去成本等于利润,相关算子为减法运算。
根据所述度量表达式构建抽象语法树;遍历所述抽象语法树;对于所述抽象语法树中的任意的一个节点,采用所述算子对所述节点行维度、列维度进行计算。
具体的,维度包括行维度、列维度,如此可以设计一个二维表格,横轴为行维度,纵轴为列维度。横轴和纵轴作为基本数据块。
示例性的,每个店,每天的销售额为抽象语法树中的一个节点。采用算子可以对该节点进行计算。
在一种实施方式中,还包括:获取所述MDX查询语句中的行、列维度的级别信息;
具体的,H=(L1,L2,L3);
示例性的,H=(年,月,日);年为L1,月为L2,日为L3。H的级别最高,单个年,月,日的级别为低。并且在单个维度的优先级排序中,级别从高到低的优先级排序为:年级别,月级别,日级别。
根据所述级别信息从分布式数据存储***中查询获取对应数据;
示例性的,可以查到某年某月某日的销售额数据;也可以查到,某年的销售额,或某月的销售额,或某天的销售额。比如,可以查到2020年5月1号的销售额;也可以查到:5月的销售额,包括历年的5月的销售额;比如,2019年的5月的销售额和2020年的销售额;可以查询到5月1号的销售额,包括多年的5月1号的销售额;可以进行横向的对比,更直观地判断出历年的5月1号的销售额;以及销售额横向对比的变化趋势。
遍历所述抽象语法树,包括:对于所述抽象语法树的任意一个节点,如果查询不到所述节点的直接度量或者维度,则查询所述节点的辅助度量或辅助维度;
根据所述辅助度量,和/或,辅助维度计算得到所述直接度量或维度。
具体的,采用分布式***中,存储了多批次相互隔离的数据,每批数据包括了一组维度和度量数据。比如,可以在数据批次1存储度量1,度量1为销售额。数据批次2存储度量2,度量2为成本。
示例性的,如果想要计算某天的利润,查询不到直接的利润,需要计算,需要先获得销售额,再获得成本,用销售额减去成本得到利润。其中,销售额和成本均为度量。
因为报表工具对格式有要求,只有特定的格式才能够被报表工具识别。在一种实施方式中,对查询结果进行格式整理;将格式整理成报表工具能够识别的格式。将经过格式整理的查询结果发送给报表工具。
具体的,从多个Aggregation Query Result构造最终返回结果。首先从不同的Aggregation Query中获取到行列上的维度、度量信息确定MDX查询结果的框架(行、列上的维度、度量分布),从查询执行模块返回的数据块的各数据单元中提取出行、列上的维度值及对应的各度量值,再将不同Aggregation Query的提取结果根据聚合层级的高低关系组织,以特定格式返回至报表分析工具。
在一种实施方式中,根据所述度量和维度的相关信息进行查询得到查询结果,包括:
根据所述度量和维度的相关信息从分布式存储***进行查询得到查询结果;
所述分布式存储***中包括多批相互隔离的数据;其中,每批数据中存储了一组维度和度量。
在一种实施方式中,如果查询不到所述节点的直接度量,则查询所述节点的辅助维度,和/或者,辅助度量,包括:
根据所述度量表达式确定需要用到的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量确定所述辅助维度,和/或者,辅助度量所在的数据批次;
从所述数据批次中获取所述辅助维度,和/或者,辅助度量。
具体的,预先存储了数据批次和存储的辅助维度,和/或者,辅助度量的对应关系;根据对应关系确定对应的数据批次,进而获取具体的维度,度量值。
示例性的,度量为销售额,预先存储的关系为,销售额存储在数据批次4中,从数据批次4中获取销售额。
本发明提供了更高性能的MDX执行引擎方案,极大的提升了大数据量时MDX查询的执行速度,提升了查询的整体性能;提供了分布式存储***对接方案,使得用户能够通过分布式存储***处理更大规模的数据量;提供了分布式计算方案,使得用户可以根据实际需求灵活调整资源分配,极大的提高了***的灵活性和用户的使用成本。
第二方面,本发明还提供了一种数据处理装置,如图2所示,该装置包括:
接收模块21,用于接收MDX查询语句;
获取模块22,用于获取所述MDX查询语句中的度量和维度的相关信息;
查询模块23,用于根据所述度量和维度的相关信息进行查询得到查询结果。
在一种实施方式中,查询模块23还用于,确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
在一种实施方式中,查询模块23还用于,获取所述MDX查询语句的算子;
对于所述坐标节点;如果查询不到所述坐标节点的度量,则根据所述坐标节点的行维度、列维度和度量表达式查询确定所述坐标节点的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量和所述算子计算得到所述节点的度量。
在一种实施方式中,接收模块21还用于,接收报表工具发送的MDX查询语句;
还包括格式整理模块,用于对查询结果进行格式整理;将经过格式整理的查询结果发送给所述报表工具。
在一种实施方式中,查询模块23还用于,根据所述度量和维度的相关信息从分布式存储***进行查询得到查询结果;
所述分布式存储***中包括多批相互隔离的数据;其中,每批数据存储一组维度和度量。
在一种实施方式中,查询模块23还用于,根据所述度量表达式确定需要用到的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量的信息确定所述辅助维度,和/或者,辅助度量所在的数据批次;
从所述数据批次中获取所述辅助维度,和/或者,辅助度量。
下面详细介绍另一种数据查询装置,参见附图3所示的另一种数据查询装置的结构示意图;该装置包括:MDX语句解析模块31、查询执行模块32、数据提供模块33、结果构造模块34和分布式运算模块35。
下面将结合一个简单的样例查询来对四个模块做具体介绍,以一条查询了单个维度和单个计算度量的MDX查询为例:select[D].[H].members from[Catalog]where([Measures].[M]),其中D、H分别代表MDX维度(Dimension)、层次结构(Hierarchy),这里假设H只有两个级别(Level):L1、L2分别代表总计和明细,M代表了一个计算度量。
MDX语句解析模块31,用于根据报表分析工具组织MDX语句的模式,对来自各种报表分析工具的MDX查询语句进行分析,提取并组织各种查询时所需的信息发送至查询执行模块。
首先,收到报表分析工具发送的MDX查询语句后,根据该语句提取出用户的查询意图:所想要查询的维度、度量、筛选条件及其所处的位置(多维数据模型的若干条轴上);由于MDX查询往往需要多个聚合层级的数据且多个聚合层级之间的计算互相独立,因此根据提取出的上述信息,可以生成若干个相应的Aggregation Query,并将上述AggregationQuery发送至查询执行模块并行执行。
由于报表分析工具在组织查询语句时有一定的规律,根据其语句模式与语义分析可知,上述样例查询中包含H这一层级结构下的总计与明细两个聚合层级上的数据,因此会转化出两个Aggregation Query,分别计算L1、M与L2、M,并行执行;
查询执行模块32,用于将Aggregation Query转化为分布式执行计划并提交至分布式运算模块35,接收分布式运算模块35发送的计算结果,最终将结果返回给结果构造模块34。
在从MDX语句解析模块获得了不同聚合层级的查询后,根据其中包括的行列维度信息及这些维度上的筛选信息,首先构建基本的数据块对应行、列轴上的元素;随后遍历查询度量表达式的抽象语法树,对于不同类型节点,通过一定规则,映射为不同的分布式算子,对基本数据块进行相应的添加、减少、计算、修改等操作,从而达成逐步解析、执行度量表达式的抽象语法树的目的。完成后将最终包含整个聚合层级查询结果的数据块转化为Aggregation Query Result,并返回至结果构造模块。
对应到上述样例查询,每个Aggregation Query首先查询自身包含的H的级别(L1或L2)的维度数据并构造为基本数据块,之后遍历M这一计算度量的抽象语法树:针对查询语句涉及到的不同算法,不同函数,根据其语义,在基本数据块上以列为单位,用分布式算子进行添加、减少、计算、修改等操作(若有必要添加数据时,则需要通过数据提供模块进行查询),最终在基本数据块上添加上M对应的数据内容。对最终计算完成的数据块,根据Aggregation Query中包含的级别、度量所在位置信息,提取出L1、L2的数据结果与M在L1、L2上的数据结果,将其转化为Aggregation Query Result数据结构,并转发到结果构造模块。
数据提供模块33,用于接收查询执行模块32发送的维度、度量的请求,根据特定规则,对请求的维度、度量范围进一步调整后,向分布式数据存储服务发起查询,获得维度、度量的结果后进行包装,将经过包装的维度、度量的数据块返回至查询执行模块32。
对应到上述样例查询中,首先在最初的初始数据块构造时,需要根据查询中行列上使用的级别信息,组织合适的查询,从分布式数据存储***中获取到相应的数据。其次,在遍历M的抽象语法树的过程中,若发现需要额外的数据,如该计算度量依赖于其他的基本度量或维度时,则再根据这些需要的维度、度量信息,组织查询获取数据、返回给执行模块;
结果构造模块34,用于从多个Aggregation Query Result构造最终返回结果。首先从不同的Aggregation Query中获取到行列上的维度、度量信息确定MDX查询结果的框架(行、列上的维度、度量分布),从查询执行模块返回的数据块的各数据单元中提取出行、列上的维度值及对应的各度量值,再将不同Aggregation Query的提取结果根据聚合层级的高低关系组织,以特定格式返回至报表分析工具。
分布式计算模块35,用于分布式计算计划,将计算结果发送给查询执行模块。
根据本申请的第三方面,提供了一种数据查询设备;参见附图4所示的一种数据查询设备的结构示意图,包括至少一个处理器41和至少一个存储器42;所述存储器42用于存储一个或多个程序指令;所述处理器41,用于运行一个或多个程序指令,用以执行上述任意一项的方法。
第四方面,本申请还提出了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述任一项所述的方法。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
接收MDX查询语句;
获取所述MDX查询语句中的度量和维度的相关信息;
根据所述度量和维度的相关信息进行查询得到查询结果。
2.如权利要求1所述的数据查询方法,其特征在于,根据所述度量和维度的相关信息进行查询,包括:
确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
3.如权利要求2所述的数据查询方法,其特征在于,还包括:
获取所述MDX查询语句的算子;
对于所述坐标节点;如果查询不到所述坐标节点的度量,则根据所述坐标节点的行、列维度及度量表达式,确定所述节点的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量和所述算子计算得到所述节点的度量。
4.如权利要求1所述的数据查询方法,其特征在于,接收MDX查询语句,包括:接收报表工具发送的MDX查询语句;
对查询结果进行格式整理;将经过格式整理的查询结果发送给所述报表工具。
5.如权利要求3所述的数据查询方法,其特征在于,根据所述度量和维度的相关信息进行查询得到查询结果,包括:
根据所述度量和维度的相关信息从分布式存储***进行查询得到查询结果;
所述分布式存储***中包括多批相互隔离的数据;
其中,每批数据中存储了一组维度和度量。
6.如权利要求5所述的数据查询方法,其特征在于,如果查询不到所述节点的直接度量,则查询所述节点的辅助维度,和/或者,辅助度量,包括:
根据所述度量表达式确定需要用到的辅助维度,和/或者,辅助度量;
根据所述辅助维度,和/或者,辅助度量确定所述辅助维度,和/或者,辅助度量所在的数据批次;
从所述数据批次中获取所述辅助维度,和/或者,辅助度量。
7.一种数据查询装置,其特征在于,包括:
接收模块,用于接收MDX查询语句;
获取模块,用于获取所述MDX查询语句中的度量和维度的相关信息;
查询模块,用于根据所述度量和维度的相关信息进行查询得到查询结果。
8.如权利要求7所述的数据查询装置,其特征在于,查询模块还用于,
确定行维度数据范围和列维度数据范围;
根据所述行维度数据范围和列维度数据范围构建多维数据表格;
对于所述多维数据表格中的任意的一个坐标节点;
根据所述坐标节点的行维度和列维度查询确定所述节点的度量数据。
9.一种数据查询设备,其特征在于,包括:至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如权利要求1-6任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110569913.5A CN113220728B (zh) | 2021-05-24 | 2021-05-24 | 数据查询方法、装置、设备和存储介质 |
PCT/CN2022/083616 WO2022247443A1 (zh) | 2021-05-24 | 2022-03-29 | 数据查询方法、装置、设备和存储介质 |
EP22761040.9A EP4116838A4 (en) | 2021-05-24 | 2022-03-29 | DATA QUERY METHOD AND APPARATUS, DEVICE AND RECORDING MEDIUM |
US18/092,330 US20230153298A1 (en) | 2021-05-24 | 2023-01-01 | Data query method, device and equipment and a storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110569913.5A CN113220728B (zh) | 2021-05-24 | 2021-05-24 | 数据查询方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220728A true CN113220728A (zh) | 2021-08-06 |
CN113220728B CN113220728B (zh) | 2023-11-28 |
Family
ID=77098209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110569913.5A Active CN113220728B (zh) | 2021-05-24 | 2021-05-24 | 数据查询方法、装置、设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230153298A1 (zh) |
EP (1) | EP4116838A4 (zh) |
CN (1) | CN113220728B (zh) |
WO (1) | WO2022247443A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022247443A1 (zh) * | 2021-05-24 | 2022-12-01 | 跬云(上海)信息科技有限公司 | 数据查询方法、装置、设备和存储介质 |
WO2023030080A1 (zh) * | 2021-08-30 | 2023-03-09 | 易保网络技术(上海)有限公司 | 一种数据处理方法和设备、存储介质、程序产品以及计算机设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807108B (zh) * | 2024-02-28 | 2024-06-11 | 广州思迈特软件有限公司 | 基于双查询引擎的数据查询方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008954A (zh) * | 2007-01-30 | 2007-08-01 | 金蝶软件(中国)有限公司 | 联机分析处理***中多维表达式数据缓存的方法和装置 |
US20080201293A1 (en) * | 2007-02-15 | 2008-08-21 | Cognos Incorporated | Multidimensional query simplification using data access service having local calculation engine |
US8359305B1 (en) * | 2011-10-18 | 2013-01-22 | International Business Machines Corporation | Query metadata engine |
CN104933115A (zh) * | 2015-06-05 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 一种多维分析方法和*** |
CN105404608A (zh) * | 2015-10-27 | 2016-03-16 | 中通服公众信息产业股份有限公司 | 一种基于公式解析的复杂指标集计算方法和*** |
CN105488045A (zh) * | 2014-09-16 | 2016-04-13 | 中兴通讯股份有限公司 | 一种数据展现的方法及装置 |
US9396248B1 (en) * | 2016-01-04 | 2016-07-19 | International Business Machines Corporation | Modified data query function instantiations |
CN106933845A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 使用sql实现mdx查询效果的方法和装置 |
CN110222124A (zh) * | 2019-05-08 | 2019-09-10 | 跬云(上海)信息科技有限公司 | 基于olap的多维数据处理方法及*** |
CN111597237A (zh) * | 2020-05-22 | 2020-08-28 | 北京学之途网络科技有限公司 | 数据查询结果的生成方法及装置、电子设备、存储介质 |
CN111949658A (zh) * | 2020-08-06 | 2020-11-17 | 浙江工业大学 | 一种面向数据立方体的可操作图形透视表构建方法 |
CN112418721A (zh) * | 2020-12-08 | 2021-02-26 | 中国建设银行股份有限公司 | 指标确定方法和装置 |
CN112559567A (zh) * | 2020-12-10 | 2021-03-26 | 跬云(上海)信息科技有限公司 | 适用于olap查询引擎的查询方法及装置 |
CN112561642A (zh) * | 2020-12-16 | 2021-03-26 | 中国平安人寿保险股份有限公司 | 多维度产品对比分析方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189004B1 (en) * | 1998-05-06 | 2001-02-13 | E. Piphany, Inc. | Method and apparatus for creating a datamart and for creating a query structure for the datamart |
CN111159221B (zh) * | 2019-12-31 | 2023-06-27 | 北京恒泰实达科技股份有限公司 | 一种通过动态构建立方体进行数据处理或查询的方法 |
CN113220728B (zh) * | 2021-05-24 | 2023-11-28 | 跬云(上海)信息科技有限公司 | 数据查询方法、装置、设备和存储介质 |
-
2021
- 2021-05-24 CN CN202110569913.5A patent/CN113220728B/zh active Active
-
2022
- 2022-03-29 EP EP22761040.9A patent/EP4116838A4/en not_active Withdrawn
- 2022-03-29 WO PCT/CN2022/083616 patent/WO2022247443A1/zh unknown
-
2023
- 2023-01-01 US US18/092,330 patent/US20230153298A1/en active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008954A (zh) * | 2007-01-30 | 2007-08-01 | 金蝶软件(中国)有限公司 | 联机分析处理***中多维表达式数据缓存的方法和装置 |
US20080201293A1 (en) * | 2007-02-15 | 2008-08-21 | Cognos Incorporated | Multidimensional query simplification using data access service having local calculation engine |
US8359305B1 (en) * | 2011-10-18 | 2013-01-22 | International Business Machines Corporation | Query metadata engine |
CN105488045A (zh) * | 2014-09-16 | 2016-04-13 | 中兴通讯股份有限公司 | 一种数据展现的方法及装置 |
CN104933115A (zh) * | 2015-06-05 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 一种多维分析方法和*** |
CN105404608A (zh) * | 2015-10-27 | 2016-03-16 | 中通服公众信息产业股份有限公司 | 一种基于公式解析的复杂指标集计算方法和*** |
CN106933845A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 使用sql实现mdx查询效果的方法和装置 |
US9396248B1 (en) * | 2016-01-04 | 2016-07-19 | International Business Machines Corporation | Modified data query function instantiations |
CN110222124A (zh) * | 2019-05-08 | 2019-09-10 | 跬云(上海)信息科技有限公司 | 基于olap的多维数据处理方法及*** |
CN111597237A (zh) * | 2020-05-22 | 2020-08-28 | 北京学之途网络科技有限公司 | 数据查询结果的生成方法及装置、电子设备、存储介质 |
CN111949658A (zh) * | 2020-08-06 | 2020-11-17 | 浙江工业大学 | 一种面向数据立方体的可操作图形透视表构建方法 |
CN112418721A (zh) * | 2020-12-08 | 2021-02-26 | 中国建设银行股份有限公司 | 指标确定方法和装置 |
CN112559567A (zh) * | 2020-12-10 | 2021-03-26 | 跬云(上海)信息科技有限公司 | 适用于olap查询引擎的查询方法及装置 |
CN112561642A (zh) * | 2020-12-16 | 2021-03-26 | 中国平安人寿保险股份有限公司 | 多维度产品对比分析方法、装置、计算机设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
DONALD KOSSMANN: "The State of the Art in Distributed Query Processing", ACM COMPUTING SURVEYS, vol. 32, no. 4, pages 422 - 469, XP058090598, DOI: 10.1145/371578.371598 * |
倪志伟 等: "基于变量选择的OLAP查询推荐仿真模型", ***仿真学报, vol. 25, no. 11, pages 2534 - 2539 * |
徐云青 等: "通用OLAP工具―KDOLAP的设计与实现", 计算机工程与科学, no. 06, pages 95 - 97 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022247443A1 (zh) * | 2021-05-24 | 2022-12-01 | 跬云(上海)信息科技有限公司 | 数据查询方法、装置、设备和存储介质 |
WO2023030080A1 (zh) * | 2021-08-30 | 2023-03-09 | 易保网络技术(上海)有限公司 | 一种数据处理方法和设备、存储介质、程序产品以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4116838A1 (en) | 2023-01-11 |
US20230153298A1 (en) | 2023-05-18 |
EP4116838A4 (en) | 2023-09-27 |
CN113220728B (zh) | 2023-11-28 |
WO2022247443A1 (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220728B (zh) | 数据查询方法、装置、设备和存储介质 | |
US11392558B2 (en) | System and method for extracting a star schema from tabular data for use in a multidimensional database environment | |
US11531662B2 (en) | System and method for use of a dynamic flow in a multidimensional database environment | |
CN107533570B (zh) | 用于从表格数据自动推断立方体模式的***和方法 | |
CN107016001B (zh) | 一种数据查询方法及装置 | |
CN107168977B (zh) | 一种数据查询的优化方法及装置 | |
US20040237029A1 (en) | Methods, systems and computer program products for incorporating spreadsheet formulas of multi-dimensional cube data into a multi-dimentional cube | |
CN111159191A (zh) | 一种数据处理方法、装置和界面 | |
US11200223B2 (en) | System and method for dependency analysis in a multidimensional database environment | |
CN103262076A (zh) | 分析数据处理 | |
US11803865B2 (en) | Graph based processing of multidimensional hierarchical data | |
US8423567B1 (en) | Dynamic query data visualizer | |
US20100293450A1 (en) | System and method for simulating discrete financial forecast calculations | |
CN113553341A (zh) | 多维数据分析方法、装置、设备及计算机可读存储介质 | |
US8793268B1 (en) | Smart key access and utilization to optimize data warehouse performance | |
US8504552B2 (en) | Query based paging through a collection of values | |
Dvoretskyi et al. | Data Utility Assessment while Optimizing the Structure and Minimizing the Volume of a Distributed Database Node. | |
CN113722296A (zh) | 一种农业信息处理方法、装置、电子设备及存储介质 | |
CN112258151A (zh) | 一种基于pandas的对账方法、装置、计算机设备和存储介质 | |
US8200732B2 (en) | Apparatus and method for calculating and visualizing targets | |
CN111159991A (zh) | 一种报表建模设计装置及方法 | |
Lukić | Approach to multidimensional data modeling in BI technology | |
CA2395244A1 (en) | Data restructurer for flattening hierarchies | |
KR100925725B1 (ko) | 다차원 속성을 가진 확장성 비지니스 리포팅 언어 택사노미 구성 방법 | |
US8560522B1 (en) | Additional query date term granularity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |