Microsoft Analysis Services

**Microsoft SQL Server Analysis Services** (**SSAS**) er et verktøy for datautvinning og online analytisk prosessering (OLAP) på Microsoft SQL Server. SSAS brukes for å analysere og gi innsikt i data som kan være spredt ut over ulike databaser, tabeller eller filer, og kan håndtere både flerdimensjonale og tabulære data, hvor forskjellen mellom de to er hvordan dataene blir presentert. I en tabulær modell er informasjonen brettet ut til todimensjonale tabeller som dermed kan være mer leselige for et menneske. En flerdimensjonal modell kan derimot inneholde informasjon med svært mange frihetsgrader, og må brettes ut for bli leselig for et menneske.

## Historie
1996 bestemte Microsoft seg for å bygge et nytt OLAP-produkt, og kjøpte senere samme år OLAP-programvareteknologien og et utviklerlag fra canadiske Panorama Software.

I 1998 lanserte Microsoft **OLAP Services 7.0** som en del av SQL Server 7. OLAP Services hadde støtte for OLAP-arkitekturer som var multidimensjonale, relasjonelle og hybride (MOLAP, ROLAP og HOLAP), brukte Microsoft sitt OLE DB for OLAP som klient for å aksessere API, og hadde MDX som et spørrespråk. Den kunne fungere i klient-tjener-modus eller i frakoblet modus med lokale kubefiler.

I 2000 ble navnet byttet til Microsoft **Analysis Services 2000** siden det ble inkludert funksjonalitet for datautvinning. Denne versjonen var bakoverkompatibel med OLAP Services. Blant nye funksjoner var mer fleksibilitet i dimensjonsdesign gjennom støtte for foreldre/barn-dimensjoner, endringsdimensjoner og virtuelle dimensjoner, forbedret beregningsmotor med støtte for unære operatorer, egendefinerte samleoppdateringer og celleberegninger. Andre funksjoner var dimensjonssikkerhet, distinkt telling, tilkobling over HTTP, øktkuber, og grupperingsnivåer.

I 2005 lanserte Microsoft **Analysis Services 2005**. Den opprettholdt bakoverkompatibilitet på API-nivå, men selv om applikasjoner skrevet med OLE DB for OLAP og MDX fortsatte å fungere var den underliggende arkitekturen helt annerledes. Den største endringen var bruken av Microsoft sin Unified Dimensional Model (UDM).

## Flerdimensjonale lagringsmoduser
SSAS forholder seg nøytralt i diskusjonen om MOLAP vs. ROLAP blant OLAP-produkter, og tillater at det brukes alle typer av MOLAP, ROLAP og HOLAP i samme modell.

### Partisjons-lagringsmodus
* MOLAP: Multidimensjonal eller flerdimensjonal OLAP. Både faktadata og aggregeringer blir prosessert, lagret og indeksert ved hjelp av et spesielt format optimalisert for flerdimensjonale data.
* ROLAP: Relasjonell OLAP. Både faktadata og aggregeringer forblir i relasjonsdatakilden, og eliminerer behovet for spesiell behandling.
* HOLAP: Hybrid OLAP. Denne modusen bruker relasjonsdatakilden til å lagre faktadata, men forprosesser aggregeringer og indekser, og lagrer disse i et spesielt format optimalisert for flerdimensjonale data.

### Dimensjons-lagringsmodus
* MOLAP: Dimensjonsattributter og hierarkier behandles og lagres i spesialformatet.
* ROLAP: Dimensjonsattributter behandles ikke, og forblir i den relasjonelle datakilden.

### Tabulær lagringsmodus
* I minne: Den tabulære lagringsmodusen komprimerer data og lagrer modellen i minnet (*in-memory*) for raskere utførelse av spørringer.

## API-er og objektmodeller
SSAS støtter ulike API-er og objektmodeller for ulike driftsscenarioer og programmeringsmiljøer.

### Spørring
* XML for Analysis: Det laveste API-nivået. Den kan brukes fra alle plattformer og på alle språk som støtter HTTP og XML
* OLE DB for OLAP: Utvidelse av OLE DB. Er COM-basert og egner seg for C/C++ programmer på Windows-plattformen.
* ADOMD: Utvidelse av ADO. En COM-automatisering basert på og egnet for Visual Basic-programmer på Windows-plattformen.
* ADOMD.NET: Utvidelse av ADO.NET. Er .NET-basert og egnet for programmer med håndtert kode på Common Language Runtime (CLR) -plattformen.
* ADO.NET Entity Framework: Entity Framework og LINQ kan brukes oppå ADOMD.NET (SSAS Entity Framework Provider kreves)

### Administrasjon og håndtering
* DSO: For SSAS 2000. Basert på COM-automasjon og egnet for VB-programmer på Windows-plattformen.
* AMO: For SSAS 2005 og senere versjoner. .NET basert og egnet for programmer med håndtert kode på CLR-plattformen.

## Spørringsspråk
Microsoft Analysis Services støtter to grupper av spørringsspråk: Datadefinisjonsspråk og datamanipuleringsspråk.

### Datadefinisjonsspråk
I SSAS er datadefinisjonsspråkene (*data definition language*, DDL) XML-baserte, og støtter kommandoer som , ,  og . For import og eksport av datautvinnings-modeller støttes også Predictive Model Markup Language (PMML).

### Datamanipuleringsspråk
Datamanipuleringsspråk (*data manipulation language*, DML) i SSAS inkluderer:

* MDX for spørring av OLAP-kuber.
* LINQ for spørring av OLAP-kuber fra .NET ved hjelp av ADO.NET Entity Framework og Language INtegrated Query (SSAS Entity Framework Provider kreves).
* SQL slik at man kan spørre OLAP-kuber og -dimensjoner som om de var tabeller. Denne funksjonen går under navnet Dynamic Management Views (DMV), og er egentlig er dette en liten delmengde av SQL.
* DMX for spørring av datautvinnings-modeller.
* DAX for spørring av tabularmodeller.

## Referanser