Jump to content

XML for Analysis

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Wikiolap (talk | contribs) at 06:25, 3 January 2006 (Original writeup). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

XML for Analysis (abbreviated as XMLA) is the industry standard for data access in analytical systems, such as OLAP and Data Mining. XMLA is based on other industry standards such as SOAP and HTTP. XMLA is maintained by XMLA Council with Microsoft, Hyperion and SAS being the official XMLA Council founder members.

History

  • April 2000 - XMLA was first proposed by Microsoft as a successor for OLEDB for OLAP
  • January 2001 - Hyperion joined Microsoft endorsing XMLA.
  • April 2001 - XMLA 1.0 was released.
  • September 2001 - XMLA Council was formed. First XMLA Council meeting happened.
  • November 2001 - Microsoft released XML for Analysis SDK - first reference implementation for XMLA 1.0
  • November 2002 - XMLA 1.1 was released by XMLA Council.
  • March 2003 - Private XMLA interop event at Simba headquarters.
  • May 2003 - Public XMLA interop event at TDWI conference.

API

XMLA consists of only two SOAP methods. It was designed in such a way to preserve simplicity.

  • Execute
  • Discover

Execute

Execute method has two parameters:

  • Command - command to be executed. It can be MDX, DMX or SQL.
  • Properties - XML list of command properties such as Timeout, Catalog name etc.

The result of Execute command could be Multidimensional Dataset or Tabular Rowset.

Discover

Discover method was designed to model all the discovery methods possible in OLEDB including various schema rowset, properties, keywords etc. Discover method allows to specify what needs to be discovered, the possible restrictions and properties. The result of Discover method is a rowset.

Query language

XMLA specifies MDXML as the query language. In the XMLA 1.1 version, the only construct in MDXML is an MDX statement enclosed in the <Statement> tag.

Example

Below is an example of XMLA Execute request with MDX query in command.

<soap:Envelope>
 <soap:Body>
  <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
   <Command>
    <Statement>SELECT Measures.MEMBERS ON COLUMNS FROM Sales</Statement>
   </Command>
   <Properties>
    <PropertyList>
     <DataSourceInfo/>
     <Catalog>FoodMart</Catalog>
     <Format>Multidimensional</Format>
     <AxisFormat>TupleFormat</AxisFormat>
    </PropertyList>
   </Properties>
  </Execute>
 </soap:Body>
</soap:Envelope>

Session management

XMLA has a notion of session state. It is maintained through predefined SOAP headers

  • BeginSession - to begin a new session
  • EndSession - to end existing session
  • UseSession - to use existing session. SessionId attribute previously returned for BeginSession should be used.