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),数