MDX是”MultiDimensional eXpression”的缩写,这是一种类似于SQL的数据库查询语言。这种查询语言专门用于OLAP (Online analytical processing,在线分析处理)数据,这些数据是存储于OLAP Cube(在线分析处理数据块)中。

1. MDX的历史

MDX由微软于1997年作为ODBO规范的一部分最先提出。Microsoft Analysis Services(微软分析服务)随后基于这个规范发布了“Microsoft OLAP Services 7.0”。微软又于1999年正式发布了该规范。

MDX仅仅只是一个微软的规范,并不是一个开放的标准。但是这个规范正在被越来越多的OLAP服务提供商所采用。这正是MDX生命力顽强的体现。

2. MDX数据库

MDX标准几乎被所有的大型数据库软件提供商所采用。微软有SSAS(Microsoft SQL Server Analysis Services),甲骨文有Essbase,SAP有SAP BW,IBM有TM1,除此之外还有各种各样的OLAP服务提供商的商用软件支持该标准。详情见表格:

3. MDX获取数据

MDX规范里定义了两种获取数据的方式:XMLA和OLE DB for OLAP。

3.1 XMLA

XMLA是“XML for Analysis”的缩写。这是一个企业级标准,用于获取分析系统(例如OLAP)的数据。

XMLA支持两种SOAP方法:Execute和Discover。其中:Execute用于执行MDX语句,返回的结果是多维数据的结构和对应的格式化结果

Discover用于获取OLAP数据块的结构数据,例如:目录(Catalog),数据块(Cube),维度(Dimension),属性(Properties)等。

在XMLA标准中,MDX语句被放在标签中,例如:

SELECT Measures.MEMBERS ON COLUMNS FROM Sales

FoodMart

Multidimensional

TupleFormat

3.2 OLE DB for OLAP

OLE DB for OLAP 是“Object Linking and Embedding Database for Online Analytical Processing abbreviated ODBO”的缩写。这是由微软发布的、用于处理多维数据的企业级标准。其中ODBO是一个在Windows平台用于客户端和OLAP服务器交互的标准API,而且ODBO拓展了OLE DB访问OLAP数据能力。

如果用户需要通过OLE DB for OLAP访问支持MDX的数据库,那么MDX的数据库必须提供Windows版本的客户端API库,同时用户必须有一定的编程基础才能正确地拿到数据。

4. MDX语句

一条基本的MDX语句样例如下:

with member [Measures].[DoubleAmount] as '[Measures].[Amount] * 2'

select [Account].[Accounts].Levels(1).AllMembers on columns,

{[Measures].[Amount], [Measures].[DoubleAmount]} on rows

from [Finance]

where ([Date].[Calendar Year].&[2001])“with” 语句部分;样例中的第1行。该语句用于获取数据前的预处理。在预处理的过程中,我们可以定义各种各样的计算,这些计算包括可命名集合和计算成员。在本样例中,我们定义的是计算成员。

通过分析这个MDX语句样例,我们可以看出MDX语句有以下几个部分:

“select” 语句部分;样例中的第2,3行。该语句用于选择可获取的数据。

“from” 语句部分;样例中的第4行。该语句用来定义我们从哪个数据块获取数据。

“where” 语句部分;样例中的第5行。该语句用来切割数据块,并合计数据。

在这4个部分中,我们都有很大的自由度,可以根据自己的需求写出很复杂的MDX语句以获得相应的数据。

5. 可以访问MDX数据的客户端

5.1 使用Firefox获取MDX数据

对于支持XMLA标准的MDX数据库,我们可以使用Firefox的开发者工具来访问。具体的步骤如下:打开Firefox浏览器

打开开发者工具:右键点击失败记录,选择“Edit and Resend”按钮:修改“New Request”的方法为“POST”,同时把基于XMLA规范创建的请求放到“Request Body”里面:点击“Send”即可

在标准的XMLA规范里,我们需要把用于登录验证的信息放到Request Header里面,而且验证信息需要加密。

5.2 使用Excel获取MDX数据

另外我们还可以通过Excel来访问大部分的MDX数据库。具体的步骤如下打开新版本的Excel,小编使用的是Excel 2017

换到Data那一页,点击“Get Data”下拉框如果是MSAS,就选择”From Database”里面的“From Analysis Services”选项填写对应的登录信息,然后点击下一步选择对应的数据块或者表格,然后点击结束在Excel的右边区域会出现一个可编辑的对话框,我们可以在对话框里进行操作结果会显示在Excel的空白区域

Excel相对来说,操作起来比较简单,使用也比较方便;但是Excel在筛选方面限制比较大,不能自由筛选数据。

6. 微策略对MDX数据库的支持

微策略从03年就开始支持MDX数据库,到MicroStrategy 2019我们已经直接支持了以下MDX数据库:

基于这些MDX数据库,微策略提供了灵活的数据探索方式和高度自由化的操作选择。

在微策略的产品中,我们只需要简单三步,就能创建出高可读性的报表。创建MDX数据库连接:导入MDX数据块:创建可视化报表:

我们一直致力于支持更多的MDX数据库,并提供可靠、快速的服务。更多信息请咨询微策略MDX团队。

7. 总结

本文章简要讲述了MDX的历史背景、MDX语句的介绍、MDX数据获取方式以及微策略对于MDX数据库支持。微策略对于MDX数据库的支持有悠久的历史,我们相信微策略能够给客户提供关于MDX专业全面的解决方案。

参考资料:

我们会每周推送商业智能、数据分析资讯、技术干货和程序员日常生活,欢迎关注我们的知乎公众号“微策略中国”或微信公众号“微策略 商业智能"。

MySQL导入mdx_浅谈MDX数据库相关推荐

  1. 从MySQL Bug#67718浅谈B+树索引的分裂优化

    从MySQL Bug#67718浅谈B+树索引的分裂优化 1月 6th, 2013 发表评论 | Trackback 问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Cha ...

  2. 浅谈时序数据库(TSDB)

    浅谈时序数据库(TSDB) 一.什么是时序数据库 二.时序数据库特点 基本特点 核心特性 三.补充知识 LSM树(LSM tree vs B tree) B tree LSM tree 总结 四.常见 ...

  3. 浅谈计算机数据库技术的应用,浅谈计算机数据库技术的应用意义.doc

    浅谈计算机数据库技术的应用意义.doc 浅谈计算机数据库技术的应用意义 [摘 要]随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络 ...

  4. 管理中计算机系统的应用论文,浅谈计算机数据库的管理与应用论文

    浅谈计算机数据库的管理与应用论文 摘要:随着社会经济的快速发展,信息化网络技术手段不断进步,信息技术在人们日常生活.工作及学习中的广泛渗透,不仅给人们生活带来了极大便利,还极大的提升了人们工作与学习效 ...

  5. .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  6. 支付宝的数据库是MySQL变种_浅谈MySql的储存引擎(表类型)

    浅谈mysql的存储引擎(表类型) 什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库, ...

  7. mysql 类似 nvl,浅谈mysql可有类似oracle的nvl的函数

    浅谈mysql可有类似oracle的nvl的函数 要用ifnull,而不是isnull isnull是判断是否为null,返回值是1表示null或者0表示不为空 ifnull等同于oracle的nvl ...

  8. [分享]浅谈分布式数据库

    文章集中整理总结mysql分库分表开源产品,分布式数据库的设计,以及实际应用案例等相关内容,部分附上本文作者实际应用过程中的理解. 本文感谢sjdbc,mycat,姜承尧,林涛等文章提供的精彩介绍. ...

  9. 浅谈Oracle 数据库之间数据同步方案

    随着信息技术的飞速发展,企业信息化建设的不断深入,使得企业业务系统数量不断增加.这时,各业务系统之间数据交互,各子业务系统与核心业务系统之间数据交互,诸如此类场景的应用需求不断出现.因此,IT部门应对 ...

最新文章

  1. ubuntu16.04 下安装Opencv2.4.9
  2. Android测试原理概述(一)
  3. Shiny平台构建与R包开发(一)——ui布局
  4. 敏捷个人:提供更多文档下载,并转载一篇敏捷个人读书笔记
  5. 浙大29岁“粉色系”女博导获百万大奖!最爱少女粉的她,既是实验高手还是个“大厨”......
  6. Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
  7. Redis的分片、预分片技术总结
  8. regester正则用法_Regester(正则表达式测试器)
  9. 怪兽星座欲并购,运动饮料成为新战场?
  10. 股票中阿尔法和贝塔都什么意思?
  11. 计算机等级考试四级--数据库原理
  12. CRM实战分类以及对企业运营的思考
  13. 常用jquery方法 总结
  14. java在线编译器_java在线编译器-youjavait.com
  15. linux pvs命令安装,使用linux的pvs命令格式化输出物理卷信息报表
  16. 安全港到隐私护盾!美欧个人数据跨境流动20年政策变迁
  17. 在C语言二级考试中编程题编译,二级C语言上机编程题
  18. 安徽大学计算机科学与技术学院klu,方贤勇 - 安徽大学 - 计算机科学与技术学院...
  19. 先验概率与后验概率及贝叶斯公式
  20. 务实java基础之集合总结

热门文章

  1. 在CentOS .65 64位安装OpenMeetings .3.0.1
  2. 微信多开服务器,PC端微信多开
  3. android模拟点击系统打开apk按钮,Android开发系列: 电脑端Android模拟器安装使用教程...
  4. 六轴机器人光机_烂大街的六轴机器人
  5. 有符号和无符号整型的临界点
  6. 圣杯布局原来这么简单!!
  7. 《Linux/Unix设计思想》读书笔记与感想
  8. 【ASE入门学习】ASE入门系列十二——Ramp采样(渐变采样)
  9. unity可以直接转h5吗_Unity对H5小游戏开发的支持—Project Tiny
  10. 安全态势攻防赛事可视化,助力网络安全发展