XML for Analysis(XMLA)开发详解-(6)XMLA Discover方法解析及实例

目录

1、综述(简要回顾一下Olap开发接口)

2、XMLA概念(基本来自联机手册,介绍一些概念,如果熟悉概念可以略过)

3、XMLA配置(针对各个版本的SSAS、IIS的配置说明)

4、XMLA over TCP/IP(说明一下为什么SSAS内置的XMLA over TCP/IP在开发时行不通)

5、 XML for Analysis(XMLA)开发详解-(5)XMLA请求的格式及实例示意

6、元数据访问接口Discover方法(获取目标OLAP服务的结构性信息及属性信息)

7、数据查询接口Execute方法(执行MDX语句查询)及全文总结

本文将不断根据情况更新(最近更新请通过http://www.jbean.cn获取)。

Discover方法解析及示例

XMLA的Discover方法的命令很多,每个命令所附带的属性及参数也很复杂,如果逐条去掌握的话比较费力,本文主要以构建任务一中的多维数据库结构(见图1)及任务二中的Cube结构(见图2)为例介绍常用的命令及属性。这两个处理流程已经包含了基本的处理过程,更复杂的要求可以根据需要对之调整即可。

在介绍过程中,仅给出XMLA封包中的命令部分,外围的SOAP及HTTP封包(参见上一节)基本相同(除非打算在SOAP封包中显式控制SESSION及事务处理)不再重复给出。

注1由于没有特别指定SESSION及事务,因此,下面的示例每个步骤都是独立的,可以单独请求获取对应信息;

注2:本节Discover命令可通过Execute命令配合MDX语句实现类似效果。

注3本文的所有命令都是在SSAS2008下调试通过,使用的是微软提供的SSAS2008示例数据库(版本:Refresh1)Adventure Works DW 2008(http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=18407);

任务一:构建多维数据库结构

图1:

clip_image002

步骤示例:

Step1获取服务器或 Web 服务上可用的 XML for Analysis (XMLA) 访问接口数据源的列表;

DISCOVER_DATASOURCES

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>DISCOVER_DATASOURCES</RequestType>

<Restrictions>

<RestrictionList>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<Content>Data</Content>

</PropertyList>

</Properties>

</Discover>

行集:包含了可用数据源DataSource的名称、属性、支持特性等

Step2返回指定数据源所对应的数据库中的目录(Catalog)列表;

DBSCHEMA_CATALOGS

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>DBSCHEMA_CATALOGS</RequestType>

<Restrictions>

<RestrictionList>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<DataSourceInfo>http://www.JBean.cn</DataSourceInfo>

<Content>Data</Content>

</PropertyList>

</Properties>

</Discover>

行集:获取上一步返回的数据源JBean 中的目录(Catalog)的名称、描述、访问控制列表ACL等信息。

Step3返回指定数据源、Catalog下多维数据集(CUBE)列表;

MDSCHEMA_CUBES

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>MDSCHEMA_CUBES</RequestType>

<Restrictions>

<RestrictionList>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<DataSourceInfo>http://www.JBean.cn</DataSourceInfo>

<Catalog>Adventure Works DW 2008</Catalog>

<Format>Tabular</Format>

<Content>SchemaData</Content>

</PropertyList>

</Properties>

</Discover>

行集:返回指定数据源(JBean)、Catalog(Adventure Works DW 2008)下的CUBE列表

 

 
任务二:构建多维数据库结构

接下来介绍的是获取一个CUBE(这里是任务一最后一步获取的Adventure Works多维数据集)的维度、层次及成员结构所需的基本步骤。

如下图2所示,我们将展开‘Adventure WorksCube的维度,并展开其Sale Channel维度的层级直到该维的成员一级。

clip_image004

步骤示例:

Step1获取指定CUBE的维度(Dimension)列表;

MDSCHEMA_DIMENSIONS

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>MDSCHEMA_DIMENSIONS</RequestType>

<Restrictions>

<RestrictionList>

<CATALOG_NAME>Adventure Works DW 2008</CATALOG_NAME>

<CUBE_NAME>Adventure Works</CUBE_NAME>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<DataSourceInfo>http://www.JBean.cn</DataSourceInfo>

<Catalog>Adventure Works DW 2008</Catalog>

<Format>Tabular</Format>

<Content>SchemaData</Content>

</PropertyList>

</Properties>

</Discover>

行集:返回指定数据源(JBean)及Catalog(Adventure Works DW 2008)下的CUBE(Adventure Works)的所有维度列表

Step2获取指定维度(Dimension)的默认层次(Level)列表;

MDSCHEMA_DIMENSIONS

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>MDSCHEMA_LEVELS</RequestType>

<Restrictions>

<RestrictionList>

<CATALOG_NAME>Adventure Works DW 2008</CATALOG_NAME>

<CUBE_NAME>Adventure Works</CUBE_NAME>

<DIMENSION_UNIQUE_NAME>[Sales Channel]</DIMENSION_UNIQUE_NAME>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<DataSourceInfo>http://www.JBean.cn</DataSourceInfo>

<Catalog>Adventure Works DW 2008</Catalog>

<Format>Tabular</Format>

<Content>SchemaData</Content>

</PropertyList>

</Properties>

</Discover>

行集:返回指定数据源(JBean)、Catalog(Adventure Works DW 2008)、CUBE(Adventure Works)下的维度(Sales Channel)的所有层次列表;

Step3获取指定层次(Level)下的成员(Member)列表;

MDSCHEMA_MEMBERS

返回结果

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<RequestType>MDSCHEMA_MEMBERS</RequestType>

<Restrictions>

<RestrictionList>

<CATALOG_NAME>Adventure Works DW 2008</CATALOG_NAME>

<CUBE_NAME>Adventure Works</CUBE_NAME>

<LEVEL_UNIQUE_NAME>[Sales Channel].[Sales Channel].[(All)]</LEVEL_UNIQUE_NAME>

</RestrictionList>

</Restrictions>

<Properties>

<PropertyList>

<DataSourceInfo>http://www.JBean.cn</DataSourceInfo>

<Catalog>Adventure Works DW 2008</Catalog>

<Format>Tabular</Format>

<Content>SchemaData</Content>

</PropertyList>

</Properties>

</Discover>

行集:返回维度sale Channel的指定层次(All)下的成员列表;

本文将不断根据情况更新(最近更新请通过http://www.jbean.cn获取)。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值