CN106933845A - 使用sql实现mdx查询效果的方法和装置 - Google Patents

使用sql实现mdx查询效果的方法和装置 Download PDF

Info

Publication number
CN106933845A
CN106933845A CN201511020709.9A CN201511020709A CN106933845A CN 106933845 A CN106933845 A CN 106933845A CN 201511020709 A CN201511020709 A CN 201511020709A CN 106933845 A CN106933845 A CN 106933845A
Authority
CN
China
Prior art keywords
sql
hint
query statement
data
clause
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
Application number
CN201511020709.9A
Other languages
English (en)
Other versions
CN106933845B (zh
Inventor
刘海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201511020709.9A priority Critical patent/CN106933845B/zh
Publication of CN106933845A publication Critical patent/CN106933845A/zh
Application granted granted Critical
Publication of CN106933845B publication Critical patent/CN106933845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了使用SQL实现MDX查询效果的方法和装置,属于计算机技术领域。所述方法:获取并利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句;解析SQL查询语句,得到SQL查询语句中每个SQL字符串的含义;根据SQL查询语句中每个SQL字符串的含义,将SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集SQL查询语句中SQL Hint对应的多维查询元数据;在RDBMS数据库或支持SQL的DW数据库中执行SQL查询语句,得到SQL数据集;根据SQL Hint对应的多维查询元数据,将SQL数据集组织构建为OLAP数据集。

Description

使用SQL实现MDX查询效果的方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及一种使用SQL实现MDX查询效果的方法和装置。
背景技术
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而是要对多张表中千万条记录的数据进行数据分析和信息综合。为了支持复杂的数据分析和信息综合操作,目前专门设计了一种OLAP(On-Line Transaction Processing,联机分析处理)系统。OLAP系统可以根据决策人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。
现有OLAP系统主要通过MDX(Multi Dimensional Expressions,多维表达式)语句实现,具体过程如下:获取预设数据查询条件参数,利用预设数据查询条件参数,按照预设MDX语法,生成MDX查询语句;将MDX查询语句提交至OLAP服务器,通过OLAP服务器解析执行MDX查询语句生成OLAP数据集(也可以称为cube(多维)数据集,是各个维度组合下的度量数据,直观而易懂),将OLAP数据集展示给用户。
现有OLAP系统主要通过MDX语句实现,编程人员需要学习MDX语法,不能重复使用已经掌握的SQL(Structured Query Language,结构化查询语言)语法,浪费时间;需要专门的OLAP服务器来解析执行MDX语句,部署OLAP服务器的成本和运维比较高。
发明内容
为了解决现有技术的问题,本发明提供了一种使用SQL实现MDX查询效果的方法和装置,通过SQL Hint对SQL进行扩展,在不影响SQL原有功能的前提下,实现多维分析查询,达到类似MDX的查询效果,不需要学习MDX语法,可以节约时间;可以在RDBMS数据库或支持SQL的DW数据库中查询读取数据后,根据SQL Hint实现MDX的效果,不需要部署OLAP服务器,可以节约成本。
为了解决上述问题,本发明公开了一种使用SQL实现MDX查询效果的方法,所述方法包括:
获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句;
解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;
根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据;
在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句,得到SQL数据集;
根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。
进一步地,根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据,包括:
根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;
收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据。
进一步地,收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据之后,在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句之前,还包括:
判断当前用户是否有查询权限;
如果所述当前用户有查询权限,则执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。
进一步地,根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集,包括:
获取所述SQL Hint对应的多维查询元数据中的自定义函数;
根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;
获取所述SQL Hint对应的多维查询元数据中的维轴配置信息;
根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。
进一步地,所述预设OLAP SQL语法为:通过所述SQL Hint对SQL进行扩展。
进一步地,所述SQL Hint包括:自定义函数func和/或自定义关键词;
所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
所述自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
为了解决上述问题,本发明还公开了一种使用SQL实现MDX查询效果的装置,所述装置包括:
获取模块,用于获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句;
解析模块,用于解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;
处理模块,用于根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据;
执行模块,用于在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句,得到SQL数据集;
构建模块,用于根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。
进一步地,所述处理模块包括:
第一处理单元,用于根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;
第二处理单元,用于收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据。
进一步地,所述处理模块还包括:
判断单元,用于所述第二处理单元收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据之后,判断当前用户是否有查询权限;
通知单元,用于如果所述当前用户有查询权限,则通知所述执行模块执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。
进一步地,所述构建模块包括:
第一获取单元,用于获取所述SQL Hint对应的多维查询元数据中的自定义函数;
自定义处理单元,用于根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;
第二获取单元,用于获取所述SQL Hint对应的多维查询元数据中的维轴配置信息;
构建单元,用于根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。
进一步地,所述预设OLAP SQL语法为:通过所述SQL Hint对SQL进行扩展。
进一步地,所述SQL Hint包括:自定义函数func和/或自定义关键词;
所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
所述自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
与现有技术相比,本发明可以获得包括以下技术效果:
通过SQL Hint对SQL进行扩展,在不影响SQL原有功能的前提下,实现多维分析查询,达到类似MDX的查询效果,不需要学习MDX语法,可以节约时间;可以在RDBMS数据库或支持SQL的DW数据库中查询读取数据后,根据SQL Hint实现MDX的效果,不需要部署OLAP服务器,可以节约成本。
当然,实施本发明的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的第一种使用SQL实现MDX查询效果的方法流程图;
图2是本发明实施例的第二种使用SQL实现MDX查询效果的方法流程图;
图3是本发明实施例的第三种使用SQL实现MDX查询效果的方法流程图;
图4是本发明实施例的第一种使用SQL实现MDX查询效果的装置结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
实施例描述
下面以一实施例对本发明方法的实现作进一步说明。如图1所示,为本发明实施例的一种使用SQL实现MDX查询效果的方法流程图,该方法包括:
S101:获取预设数据查询条件参数,利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint(提示)的SQL查询语句。
具体地,获取预设数据查询条件参数可以是本地应用系统通过查询网络页面上预设查询入口获取用户在需要查询时输入的预设数据查询条件参数,相应地,利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句可以是本地系统利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句。获取预设数据查询条件参数也可以是咨询用户需求,根据用户需求设置查询条件参数,相应地,利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句可以是用户利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句,将携带SQL Hint的SQL查询语句直接输入本地应用系统。
其中,预设OLAP SQL语法为:通过SQL Hint对SQL进行扩展。
其中,SQL Hint包括:自定义函数func和/或自定义关键词;
自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
其中,SQL hint的数据可以是json5(JavaScript Object Notation,脚本对象集合)格式的数据配置,SQL hint的自定义关键词至少包括下面的几种:
rotate:对查询结果进行旋转操作(轴交换操作:轴1和轴2的结果互相交换位置)。
axis:查询的结果所在的轴,类似于MDX的on关键字。
func:为了实现多维查询,需要支持的函数,RDBMS不一定支持。
derive:衍生字段,由其他列的数据计算、汇总之后生成的新字段。
alias:衍生字段的别名,类似SQL as关键字。
S102:解析SQL查询语句,得到SQL查询语句中每个SQL字符串的含义。
“select year/*axis:column*/,order_amount/*axis:row,func:chinseExpr*/from order”SQL查询语句被解析为:
select:keyword,sql关键字;year:标识字符;/*axis:column,func:chineseExpr*/:sql hint,sql语句增强,而且此增强属于year字段;order_amount:标识字符;/*axis:row*/:sql hint,sql语句增强,而且此增强是属于order_amount字段;from:keyword,sql关键字;order:标识符字段,被识别为数据库表名称。
S103:根据SQL查询语句中每个SQL字符串的含义,将SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集SQL查询语句中SQL Hint对应的多维查询元数据。
具体地,根据SQL查询语句中每个SQL字符串的含义,分析SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织SELECT子句和GROUP子句的代码片段为支持SQL的代码片段;
收集并保存SELECT子句中的SQL Hint对应的多维查询元数据。
S104:在RDBMS(Relational Database Management System,关系数据库管理系统)数据库或支持SQL的DW(Data Warehouse,数据仓库)数据库中执行SQL查询语句,得到SQL数据集。
具体地,通过JDBC(Java Data Base Connectivity,java数据库连接)与RDBMS数据库或支持SQL的DW数据库建立连接,在RDBMS数据库或支持SQL的DW数据库中执行SQL查询语句,得到SQL数据集。
S105:根据SQL Hint对应的多维查询元数据,将SQL数据集组织构建为OLAP数据集。
具体地,将SQL数据集组织构建为OLAP数据集,将OLAP数据集(多维结果)显示在二维空间上展示给用户。
具体地,参见图2,根据SQL Hint对应的多维查询元数据,将SQL数据集组织构建为OLAP数据集,包括:
S105a:获取SQL Hint对应的多维查询元数据中的自定义函数。
S105b:根据自定义函数,对SQL数据集进行自定义处理。
例如:自定义函数为:func:chineseExpr。func:chineseExpr是用来对year进行格式化,则将SQL数据集中相关数据转换为'xxxx年'这种中文格式。
S105c:获取SQL Hint对应的多维查询元数据中的维轴配置信息。
S105d:根据维轴配置信息,将自定义处理后的SQL数据集的行数据按照轴进行组织构建得到OLAP数据集。
例如:根据rotate的维轴配置信息,将每个字段的值相应的放在行轴或者列轴。
具体地,参见图3,收集并保存SELECT子句中的SQL Hint对应的多维查询元数据之后,在RDBMS数据库或支持SQL的DW数据库中执行SQL查询语句之前,还包括:
S106:判断当前用户是否有查询权限,如果当前用户有查询权限,则执行S104;如果当前用户有查询权限,则结束。
具体地,判断当前用户是否有查询权限时,可以是:
判断当前用户是否有权限访问SELECT子句的数据和是否有权限访问WHERE条件过滤后的数据;
如果有权限访问SELECT子句的数据且有权限访问WHERE条件过滤后的数据,则确定当前用户有查询权限;如果没有权限访问SELECT子句的数据或没有权限访问WHERE条件过滤后的数据,则确定当前用户没有查询权限。
并且,如果用户有权限访问SELECT子句的数据,但是不能访问SELECT子句的全部数据,则可以对SQL查询语句做进一步的封装,例如:当前用户不能访问order_mout值大于10000的数据,则可以在SQL查询语句中新增过滤条件:from order where order_amount<10000。其他需要限制访问数据多少的地方与此类似。
本实施例所述的使用SQL实现MDX查询效果的方法,通过SQL Hint对SQL进行扩展,在不影响SQL原有功能的前提下,实现多维分析查询,达到类似MDX的查询效果,不需要学习MDX语法,可以节约时间;可以在RDBMS数据库或支持SQL的DW数据库中查询读取数据后,根据SQLHint实现MDX的效果,不需要部署OLAP服务器,可以节约成本。
为了便于理解,下面举例进行进一步说明:
例如:一个比较简单的场景,查询各个区域每年订单总数。使用传统SQL查询语句,查询结果如表1所示。
表1
按照本实施例的方法,得到的携带SQL Hint的SQL查询语句如下:
使用携带SQL Hint的SQL查询语句,查询结果如表2所示。
表2
2009 2010 2011 2012
area 订单数量 订单数量 订单数量 订单数量
东北 304 299 318 289
华北 429 419 395 417
华东 401 412 353 379
华南 805 801 747 888
西北 170 170 178 144
西南 81 71 48 50
如图4所示,是本发明实施例的一种使用SQL实现MDX查询效果的装置结构图,该装置包括:
获取模块201,用于获取预设数据查询条件参数,利用预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句;
解析模块202,用于解析SQL查询语句,得到SQL查询语句中每个SQL字符串的含义;
处理模块203,用于根据SQL查询语句中每个SQL字符串的含义,将SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集SQL查询语句中SQL Hint对应的多维查询元数据;
执行模块204,用于在RDBMS数据库或支持SQL的DW数据库中执行SQL查询语句,得到SQL数据集;
构建模块205,用于根据SQL Hint对应的多维查询元数据,将SQL数据集组织构建为OLAP数据集。
进一步地,处理模块203包括:
第一处理单元,用于根据SQL查询语句中每个SQL字符串的含义,分析SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织SELECT子句和GROUP子句的代码片段为支持SQL的代码片段;
第二处理单元,用于收集并保存SELECT子句中的SQL Hint对应的多维查询元数据。
进一步地,处理模块203还包括:
判断单元,用于第二处理单元收集并保存SELECT子句中的SQL Hint对应的多维查询元数据之后,判断当前用户是否有查询权限;
通知单元,用于如果当前用户有查询权限,则通知执行模块204执行在RDBMS数据库或支持SQL的DW数据库中执行SQL查询语句的步骤。
进一步地,构建模块205包括:
第一获取单元,用于获取SQL Hint对应的多维查询元数据中的自定义函数;
自定义处理单元,用于根据多维查询元数据中的自定义函数,对SQL数据集进行自定义处理;
第二获取单元,用于获取SQL Hint对应的多维查询元数据中的维轴配置信息;
构建单元,用于根据维轴配置信息,将自定义处理后的SQL数据集的行数据按照轴进行组织构建得到OLAP数据集。
进一步地,预设OLAP SQL语法为:通过SQL Hint对SQL进行扩展。
进一步地,SQL Hint包括:自定义函数func和/或自定义关键词;
自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
本实施例所述的使用SQL实现MDX查询效果的装置,通过SQL Hint对SQL进行扩展,在不影响SQL原有功能的前提下,实现多维分析查询,达到类似MDX的查询效果,不需要学习MDX语法,可以节约时间;可以在RDBMS数据库或支持SQL的DW数据库中查询读取数据后,根据SQLHint实现MDX的效果,不需要部署OLAP服务器,可以节约成本。
所述装置与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (12)

1.一种使用结构化查询语言SQL实现多维表达式MDX查询效果的方法,其特征在于,所述方法包括:
获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设联机分析处理OLAP SQL语法,生成携带SQL Hint的SQL查询语句;
解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;
根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据;
在关系数据库管理系统RDBMS数据库或支持SQL的数据仓库DW数据库中执行所述SQL查询语句,得到SQL数据集;
根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。
2.如权利要求1所述的方法,其特征在于,根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据,包括:
根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;
收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据。
3.如权利要求2所述的方法,其特征在于,收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据之后,在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句之前,还包括:
判断当前用户是否有查询权限;
如果所述当前用户有查询权限,则执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。
4.如权利要求1-3任一权利要求所述的方法,其特征在于,根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集,包括:
获取所述SQL Hint对应的多维查询元数据中的自定义函数;
根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;
获取所述SQL Hint对应的多维查询元数据中的维轴配置信息;
根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。
5.如权利要求1-3任一权利要求所述的方法,其特征在于,所述预设OLAP SQL语法为:通过所述SQL Hint对SQL进行扩展。
6.如权利要求1-3任一权利要求所述的方法,其特征在于,所述SQL Hint包括:自定义函数func和/或自定义关键词;
所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
所述自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
7.一种使用SQL实现MDX查询效果的装置,其特征在于,所述装置包括:
获取模块,用于获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设OLAP SQL语法,生成携带SQL Hint的SQL查询语句;
解析模块,用于解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;
处理模块,用于根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQL Hint对应的多维查询元数据;
执行模块,用于在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句,得到SQL数据集;
构建模块,用于根据所述SQL Hint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。
8.如权利要求7所述的装置,其特征在于,所述处理模块包括:
第一处理单元,用于根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;
第二处理单元,用于收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据。
9.如权利要求8所述的装置,其特征在于,所述处理模块还包括:
判断单元,用于所述第二处理单元收集并保存所述SELECT子句中的所述SQL Hint对应的多维查询元数据之后,判断当前用户是否有查询权限;
通知单元,用于如果所述当前用户有查询权限,则通知所述执行模块执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。
10.如权利要求7-9任一权利要求所述的装置,其特征在于,所述构建模块包括:
第一获取单元,用于获取所述SQL Hint对应的多维查询元数据中的自定义函数;
自定义处理单元,用于根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;
第二获取单元,用于获取所述SQL Hint对应的多维查询元数据中的维轴配置信息;
构建单元,用于根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。
11.如权利要求7-9任一权利要求所述的装置,其特征在于,所述预设OLAP SQL语法为:通过所述SQL Hint对SQL进行扩展。
12.如权利要求7-9任一权利要求所述的装置,其特征在于,所述SQLHint包括:自定义函数func和/或自定义关键词;
所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;
所述自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。
CN201511020709.9A 2015-12-30 2015-12-30 使用sql实现mdx查询效果的方法和装置 Active CN106933845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511020709.9A CN106933845B (zh) 2015-12-30 2015-12-30 使用sql实现mdx查询效果的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511020709.9A CN106933845B (zh) 2015-12-30 2015-12-30 使用sql实现mdx查询效果的方法和装置

Publications (2)

Publication Number Publication Date
CN106933845A true CN106933845A (zh) 2017-07-07
CN106933845B CN106933845B (zh) 2020-07-24

Family

ID=59441689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511020709.9A Active CN106933845B (zh) 2015-12-30 2015-12-30 使用sql实现mdx查询效果的方法和装置

Country Status (1)

Country Link
CN (1) CN106933845B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959454A (zh) * 2018-06-15 2018-12-07 上海达梦数据库有限公司 一种提示子句指定方法、装置、设备及存储介质
CN109241080A (zh) * 2018-09-29 2019-01-18 焦点科技股份有限公司 一种fql查询语言的构建使用方法及其系统
CN110362595A (zh) * 2019-07-19 2019-10-22 北京首汽智行科技有限公司 一种sql语句动态解析方法
CN110795101A (zh) * 2019-09-18 2020-02-14 平安科技(深圳)有限公司 Sql代码信息显示方法、装置、计算机装置及存储介质
CN110837545A (zh) * 2019-11-13 2020-02-25 贵州医渡云技术有限公司 交互式数据分析方法、装置、介质及电子设备
CN110858202A (zh) * 2018-08-21 2020-03-03 北京京东尚科信息技术有限公司 数据库查询语句中where子句的生成方法和生成装置
CN113220728A (zh) * 2021-05-24 2021-08-06 跬云(上海)信息科技有限公司 数据查询方法、装置、设备和存储介质
CN114138821A (zh) * 2022-01-12 2022-03-04 广州思迈特软件有限公司 一种数据库查询方法、系统和电子设备
CN114238469A (zh) * 2021-12-07 2022-03-25 杭州天均数聚科技有限公司 数据提取接口开放方法、装置、计算机设备及存储介质
CN114860759A (zh) * 2022-05-18 2022-08-05 建信金融科技有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588358A (zh) * 2004-08-26 2005-03-02 陈红 对mdx多维数据查询语句的处理方法和系统
US20080091647A1 (en) * 2006-10-11 2008-04-17 International Business Machines Corporation Tool and a method for customizing hint
CN104794113A (zh) * 2014-01-16 2015-07-22 中兴通讯股份有限公司 数据处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588358A (zh) * 2004-08-26 2005-03-02 陈红 对mdx多维数据查询语句的处理方法和系统
US20080091647A1 (en) * 2006-10-11 2008-04-17 International Business Machines Corporation Tool and a method for customizing hint
CN104794113A (zh) * 2014-01-16 2015-07-22 中兴通讯股份有限公司 数据处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
仓鹏: "基于Oracle Optimizer 对Mondrian中间代码的优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
彭成 等: "高校财务多维查询分析系统", 《计算机工程与设计》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959454A (zh) * 2018-06-15 2018-12-07 上海达梦数据库有限公司 一种提示子句指定方法、装置、设备及存储介质
CN108959454B (zh) * 2018-06-15 2020-12-04 上海达梦数据库有限公司 一种提示子句指定方法、装置、设备及存储介质
CN110858202A (zh) * 2018-08-21 2020-03-03 北京京东尚科信息技术有限公司 数据库查询语句中where子句的生成方法和生成装置
CN109241080A (zh) * 2018-09-29 2019-01-18 焦点科技股份有限公司 一种fql查询语言的构建使用方法及其系统
CN110362595A (zh) * 2019-07-19 2019-10-22 北京首汽智行科技有限公司 一种sql语句动态解析方法
CN110795101A (zh) * 2019-09-18 2020-02-14 平安科技(深圳)有限公司 Sql代码信息显示方法、装置、计算机装置及存储介质
CN110795101B (zh) * 2019-09-18 2024-01-30 平安科技(深圳)有限公司 Sql代码信息显示方法、装置、计算机装置及存储介质
CN110837545A (zh) * 2019-11-13 2020-02-25 贵州医渡云技术有限公司 交互式数据分析方法、装置、介质及电子设备
CN113220728A (zh) * 2021-05-24 2021-08-06 跬云(上海)信息科技有限公司 数据查询方法、装置、设备和存储介质
CN113220728B (zh) * 2021-05-24 2023-11-28 跬云(上海)信息科技有限公司 数据查询方法、装置、设备和存储介质
CN114238469A (zh) * 2021-12-07 2022-03-25 杭州天均数聚科技有限公司 数据提取接口开放方法、装置、计算机设备及存储介质
CN114138821A (zh) * 2022-01-12 2022-03-04 广州思迈特软件有限公司 一种数据库查询方法、系统和电子设备
CN114860759A (zh) * 2022-05-18 2022-08-05 建信金融科技有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN106933845B (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN106933845A (zh) 使用sql实现mdx查询效果的方法和装置
CN103902653B (zh) 一种构建数据仓库表血缘关系图的方法和装置
US8935267B2 (en) Apparatus and method for executing different query language queries on tree structured data using pre-computed indices of selective document paths
CN102682118B (zh) 一种多维数据模型访问方法及装置
US10061787B2 (en) Unified data model for integration between relational and non-relational databases
Patel-Schneider Analyzing schema. org
US8825621B2 (en) Transformation of complex data source result sets to normalized sets for manipulation and presentation
CN103186639B (zh) 数据生成方法及系统
Ramzan et al. Intelligent data engineering for migration to NoSQL based secure environments
KR101505858B1 (ko) 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템
CN102360367A (zh) 一种xbrl数据搜索方法及搜索引擎
US11960484B2 (en) Identifying joins of tables of a database
CN102999637B (zh) 根据文件特征码为文件自动添加文件标签的方法及系统
AU2007275507C1 (en) Semantic aware processing of XML documents
Pamungkas et al. B-BabelNet: business-specific lexical database for improving semantic analysis of business process models
Liu et al. PAIRPQ: an efficient path index for regular path queries on knowledge graphs
Shi et al. An optimized full-text retrieval system based on lucene in oracle database
Shen et al. A graph-based RDF triple store
Muñoz-Sánchez et al. Managing Physical Schemas in MongoDB Stores
Yu et al. A novel method for extracting entity data from Deep Web precisely
US10325106B1 (en) Apparatus and method for operating a triple store database with document based triple access security
Huan et al. Query interface schema extraction for hidden web resources searching
Suganya et al. XML query-answering support system using association mining technique
Abedjan et al. Profiling Non-Relational Data
Wang et al. A storage and query mechanism of XBRL data based on native XML database

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
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right