2.1.2 基于元数据的查询
针对关系数据源编写查询时使用的是结构化查询语言(Structured Query Language,SQL)。SQL是一门出色的语言,但它主要是为事务处理系统开发的,而不是报表应用程序。有关SQL的问题并不在于语言本身,而在于数据库提供了很少关于它本身的信息。数据的组织和存储格式以及数据所指的信息(后者也许更重要),称为元数据(metadata)。关系数据库包含的元数据很少,有关数据库的多数信息都来自编写SQL的人。
另一方面,OLAP多维数据集包含很多元数据。例如,创建OLAP多维数据集时,不但定义了度量值是什么内容,而且定义了它们应该怎样被聚合,标题应该是什么,甚至应该怎样格式化数字。同样地,在OLAP多维数据集中,创建带有许多属性的维度时,需要定义哪些属性是可分组的,以及哪些可分组的属性应该链接起来以形成层次结构。不幸的是创建查询时SQL并不能利用这些元数据。
因此,使用OLAP数据源时,只能使用其他的查询语言,使用最多的是多维表达式(MultiDimensional Expression)或MDX。MDX最初由微软公司开发,并且许多OLAP供应商都有其自己的查询源。但在2001年,微软、海波龙(Hyperion)和SAS组成了一个分析XML(XML for Analysis,XMLA)委员会以制定使用OLAP数据源的规范。XMLA规范选择的语言为MDX。多数主流的OLAP供应商现在都加入了XMLA委员会,并且也有XMLA提供者。(有关XMLA的更多详细信息,请参考委员会网站http://www.xmla.org)
本小节将介绍MDX作为一门基于元数据的查询语言的优点。现在您无需学习怎样编写MDX的详细内容,后续章节将有关于MDX细节的内容。您在本书中学到的所有MDX查询毫无疑问地都适用于微软分析服务。多数也适用于其他OLAP供应商,但某些细节可能会有差别。
能使用OLAP源元数据的查询语言,一个关键的优点就是,能使用通用浏览器查询特定的数据源。例如,对于微软分析服务多维数据集,可以选择使用微软Office中的微软客户端工具,也可以选择使用其他许多供应商的工具。任何使用MDX或XMLA的客户端工具都能理解多维数据集,并能产生非常有意义的报表,而无需创建自定义查询。换句话说就是,因为MDX查询语句基于存储在OLAP多维数据集中的元数据,可使用工具生成查询,而无需自己编写任何MDX查询语句。
如果因为某些原因确实需要编写自定义的MDX查询,元数据使它比编写SQL查询更简单。作为一个简单的示例,在SQL中如果想用SQL创建一个计算每个客户所在城市的销售量总额的查询,仍然需要添加一个子句以保证城市被恰当地排序;但在MDX查询中,只要简单地陈述需要城市属性的成员,就可以自动地获取存储在元数据中的默认排序。再举一个例子,在一个同时包含国家和城市列的SQL表中,并没有任何信息表明城市属于特定的国家,所以如果想显示德国的所有城市,需要显式使用Germany来筛选,但显示的却是城市;在OLAP多维数据集中,国家被定义为城市的父辈,所以可以通过表达式[Germany].Children来查询。事实上,如果后来向国家和城市添加了地区,这个MDX表达式将自动返回德国的所有地区,这些都基于元数据中所定义的层次关系。
这正是MDX给报表查询领域带来的优点。许多类型的报表查询使用SQL都非常困难——例如把卖得最好的产品作为列标题并且把卖得最好的地区作为行标题的交叉表格,但使用MDX查询却非常简单。有些报表甚至使用SQL根本就不能完成——例如把嵌套好几个层次的属性作为列的标题,而这使用MDX查询也非常简单。
| 回书目 上一节 下一节 |
|
· Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. |
· 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. |
|
||||
| · 微软出价446亿美元收购.. · 2008年上半年全国软考.. · LAMP技术精解 · ARP攻击防范与解决方案 · 企业数据恢复指南 · 技术人求职简历完备手册 · Apache技术专题 · 三层交换技术专题 |
· 首届中国IT工程师生态.. · 视频访谈:网管员如何踏.. · Linux——从菜鸟到高手 · 交换机故障解决指南 · OSPF路由协议专栏 · 勇闯IT培训黑色围城 · 见证中国网络安全二十年 · 华为员工自杀频频拷问.. |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · 企业数据恢复指南 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · PHP开发应用手册 |
|||