XML for Analysis
From Wikipedia, the free encyclopedia
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 XML, SOAP and HTTP. XMLA is maintained by XMLA Council with Microsoft, Hyperion and SAS being the official XMLA Council founder members.
Contents |
[edit] History
- April 2000 - XMLA was first proposed by Microsoft as a successor for OLE DB for OLAP (ODBO).
- 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 - First Private XMLA interop event at Simba Technologies headquarters. XMLA 1.1 was released by XMLA Council.
- March 2003 - Second Private XMLA interop event at Simba Technologies headquarters.
- May 2003 - Public XMLA interop event at TDWI conference.
[edit] API
XMLA consists of only two SOAP methods. It was designed in such a way to preserve simplicity.
- Execute
- Discover
[edit] 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.
[edit] 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.
[edit] 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.
[edit] 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>
[edit] 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.
[edit] Products
Products which support XMLA fall into two categories:
- XMLA Providers - these products provide XMLA service. Typically these are server or middle tier products
- XMLA Consumers - these products can connect to XMLA Providers and consume XMLA. Typically these are client/UI products
[edit] XMLA Providers
- Microsoft Analysis Services 2005
- Hyperion Essbase 7
- Microsoft XML for Analysis SDK
- SimbaO2X - A standards-based ODBO to XMLA client-side driver, which supports all the major multi-dimensional standards – MDX, ODBO, XMLA.
- SimbaProvider SDK - A SDK for creating custom OLE DB for OLAP (ODBO) and/or XML for Analysis (XMLA) connectivity to multi-dimensional and star-schema relational data sources.
- Mondrian - An open-source olap server
[edit] XMLA Consumers
- Report Portal - OLAP browser
- Sapience BI and BPM Platform
- Snowflake.net - ASP.NET control
- ADOMD.NET object model
- Visual Studio .NET Web Control for Business Intelligence
- REX - Open Source OLAP browser and MDX Editor
- ReportSmith.NET - OLAP & OLDB Report Designer/Editor
- IntraSight ajax OLAP browser