使用SQL实现MDX查询效果的方法和装置制造方法及图纸

技术编号:15791935 阅读:151 留言:0更新日期:2017-07-09 22:40
本发明专利技术公开了使用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实现MDX查询效果的方法和装置
本专利技术涉及计算机
,具体涉及一种使用SQL实现MDX查询效果的方法和装置。
技术介绍
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而是要对多张表中千万条记录的数据进行数据分析和信息综合。为了支持复杂的数据分析和信息综合操作,目前专门设计了一种OLAP(On-LineTransactionProcessing,联机分析处理)系统。OLAP系统可以根据决策人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。现有OLAP系统主要通过MDX(MultiDimensionalExpressions,多维表达式)语句实现,具体过程如下:获取预设数据查询条件参数,利用预设数据查询条件参数,按照预设MDX语法,生成MDX查询语句;将MDX查询语句提交至OLAP服务器,通过OLAP服务器解析执行MDX查询语句生成OLAP数据集(也可以称为cube(多维)数据集,是各个维度组合下的度量数据,直观而易懂),将OLAP数据集展示给用户。现有OLAP系统主要通过MDX语句实现,编程人员需要学习MDX语法,不能重复使用已经掌握的SQL(StructuredQueryLanguage,结构化查询语言)语法,浪费时间;需要专门的OLAP服务器来解析执行MDX语句,部署OLAP服务器的成本和运维比较高。
技术实现思路
为了解决现有技术的问题,本专利技术提供了一种使用SQL实现MDX查询效果的方法和装置,通过SQLHint对SQL进行扩展,在不影响SQL原有功能的前提下,实现多维分析查询,达到类似MDX的查询效果,不需要学习MDX语法,可以节约时间;可以在RDBMS数据库或支持SQL的DW数据库中查询读取数据后,根据SQLHint实现MDX的效果,不需要部署OLAP服务器,可以节约成本。为了解决上述问题,本专利技术公开了一种使用SQL实现MDX查询效果的方法,所述方法包括:获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设OLAPSQL语法,生成携带SQLHint的SQL查询语句;解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQLHint对应的多维查询元数据;在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句,得到SQL数据集;根据所述SQLHint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。进一步地,根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQLHint对应的多维查询元数据,包括:根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;收集并保存所述SELECT子句中的所述SQLHint对应的多维查询元数据。进一步地,收集并保存所述SELECT子句中的所述SQLHint对应的多维查询元数据之后,在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句之前,还包括:判断当前用户是否有查询权限;如果所述当前用户有查询权限,则执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。进一步地,根据所述SQLHint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集,包括:获取所述SQLHint对应的多维查询元数据中的自定义函数;根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;获取所述SQLHint对应的多维查询元数据中的维轴配置信息;根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。进一步地,所述预设OLAPSQL语法为:通过所述SQLHint对SQL进行扩展。进一步地,所述SQLHint包括:自定义函数func和/或自定义关键词;所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和开窗函数;所述自定义关键词至少包括下面一种:轴维度关键词、轴交换关键词、衍生维度关键词和衍生度量关键词。为了解决上述问题,本专利技术还公开了一种使用SQL实现MDX查询效果的装置,所述装置包括:获取模块,用于获取预设数据查询条件参数,利用所述预设数据查询条件参数,按照预设OLAPSQL语法,生成携带SQLHint的SQL查询语句;解析模块,用于解析所述SQL查询语句,得到所述SQL查询语句中每个SQL字符串的含义;处理模块,用于根据所述SQL查询语句中每个SQL字符串的含义,将所述SQL查询语句中预设子句的代码片段转换为支持SQL的代码片段,并且收集所述SQL查询语句中所述SQLHint对应的多维查询元数据;执行模块,用于在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句,得到SQL数据集;构建模块,用于根据所述SQLHint对应的多维查询元数据,将所述SQL数据集组织构建为OLAP数据集。进一步地,所述处理模块包括:第一处理单元,用于根据所述SQL查询语句中每个SQL字符串的含义,分析所述SQL查询语句中SELECT子句、FROM子句、GROUP子句的选择条件、维表名,重新组织所述SELECT子句和所述GROUP子句的代码片段为支持SQL的代码片段;第二处理单元,用于收集并保存所述SELECT子句中的所述SQLHint对应的多维查询元数据。进一步地,所述处理模块还包括:判断单元,用于所述第二处理单元收集并保存所述SELECT子句中的所述SQLHint对应的多维查询元数据之后,判断当前用户是否有查询权限;通知单元,用于如果所述当前用户有查询权限,则通知所述执行模块执行在RDBMS数据库或支持SQL的DW数据库中执行所述SQL查询语句的步骤。进一步地,所述构建模块包括:第一获取单元,用于获取所述SQLHint对应的多维查询元数据中的自定义函数;自定义处理单元,用于根据所述多维查询元数据中的自定义函数,对所述SQL数据集进行自定义处理;第二获取单元,用于获取所述SQLHint对应的多维查询元数据中的维轴配置信息;构建单元,用于根据所述维轴配置信息,将自定义处理后的所述SQL数据集的行数据按照轴进行组织构建得到所述OLAP数据集。进一步地,所述预设OLAPSQL语法为:通过所述SQLHint对SQL进行扩展。进一步地,所述SQLHint包括:自定义函数func和/或自定义关键词;所述自定义函数至少包括下面一种:钻取函数、数据格式化函数、数据计算函数、日期统计函数和本文档来自技高网
...
使用SQL实现MDX查询效果的方法和装置

【技术保护点】
一种使用结构化查询语言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数据集。

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

【专利技术属性】
技术研发人员:刘海波
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1