Microsoft Analysis Services

Microsoft Analysis Services is a group of OLAP and Data Mining services provided in Microsoft SQL Server.

History
Microsoft's foray into OLAP Server business began in 1996 with the acquisition of OLAP technology from the Israeli company, Panorama Software. In 1998 Microsoft released the first version, named OLAP Services, part of SQL Server 7. OLAP Services supported MOLAP, ROLAP, HOLAP and Hybrid OLAP architectures, used OLEDB for OLAP as the client access API and MDX as a query language. It could work in the client server mode or in offline mode with local cube files. In 2000 Microsoft released the next version, named Analysis Services 2000. The rename from OLAP Services happened because of the inclusion of Data Mining services, so the product wasn't just about OLAP anymore. Analysis Services 2000 was an evolutionary release; it was built on the same architecture as OLAP Services and was backward compatible with it. The major improvements included more flexibility in dimension design, by supporting parent child dimensions, changing dimensions, virtual dimensions etc. Another major area of improvements was a much enhanced calculation engine with support for unary operators, custom rollups and cell calculations. Other new features were dimension security, distinct count, connectivity over HTTP, session cubes, grouping levels etc. In 2005 Microsoft released the next generation of OLAP and Data Mining technology as Analysis Services 2005. It maintained backward compatibility on the API level, i.e. applications written with OLE DB for OLAP (ODBO) and MDX continue to work, but the architecture of the product was completely different. The major change came to the model in the form of UDM - Unified Dimensional Model.

Timeline

 * July 1, 1996 - Microsoft opens new team to build an OLAP product, codenamed Plato (permutation of letters from OLAP)
 * July 15, 1996 - Panorama Software delegation meets with Microsoft
 * October 27, 1996 - Microsoft announces acquisition of Panorama Software development team
 * November 1998 - OLAP Services 7.0 (codename Sphinx) ships
 * August 2000 - Analysis Services 2000 (codename Shiloh) ships
 * November 2001 - XML for Analysis SDK 1.0 ships
 * April 2003 - ADOMD.NET and XML for Analysis SDK 1.1 ship
 * October 28, 2005 - Analysis Services 2005 (codename Yukon) ships

Storage Modes
Microsoft Analysis Services takes a neutral position in the MOLAP vs. ROLAP arguments among OLAP products. It allows all the flavors of MOLAP, ROLAP and HOLAP to be used within the same model.

Partition Storage Modes

 * MOLAP - Multidimensional OLAP - Both fact data and aggregations are processed, stored, and indexed using a special format optimized for multidimensional data.
 * ROLAP - Relational OLAP - Both fact data and aggregations remain in the relational data source, eliminating the need for special processing.
 * HOLAP - Hybrid OLAP - This mode uses the relational data source to store the fact data, but pre-processes aggregations and indexes, storing these in a special format, optimized for multidimensional data.

Dimension Storage Modes

 * MOLAP - dimension attributes and hierarchies are processed and stored in the special format
 * ROLAP - dimension attributes are not processed and remain in the relational data source. Partitions dimensioned by ROLAP dimensions must be in the ROLAP mode as well.

APIs and Object Models
Microsoft Analysis Services supports different sets of APIs and object models for different operations and in different programming environments

Querying

 * XML for Analysis - The lowest level API. It can be used from any platform and in any language which support HTTP and XML
 * OLE DB for OLAP (ODBO) - Extension of OLEDB. COM based and suitable for C/C++ programs on Windows platform.
 * ADOMD - Extension of ADO. COM Automation based and suitable for VB programs on Windows platform.
 * ADOMD.NET - Extension of ADO.NET. .NET based and suitable for managed code programs on CLR platforms.

Administration and Management

 * DSO - For AS 2000. COM Automation based and suitable for VB programs on Windows platform.
 * AMO - For AS 2005. .NET based and suitable for managed code programs on CLR platforms.

Query Languages
Microsoft Analysis Services supports the following query languages

Data Definition Language (DDL)
DDL in Analysis Services is XML based and supports commands such as , , ,  etc. For Data Mining models import and export, it also supports PMML.

Data Manipulation Language (DML)

 * MDX - for querying OLAP cubes
 * SQL - small subset of SQL for querying OLAP cubes and dimensions as if they were tables
 * DMX - for querying Data Mining models