Az Analysis Services 2005 újdonságai Kővári Attila
Bevezetés Mi az OLAP SQL 7, 2000, 2005 Legfontosabb újdonság: Univerzális dimenzió modell SQL 7.0 SQL 2005 Belépés a piacra •Költséghatékony megoldás Belépés a piacra •Költséghatékony megoldás SQL 2000 Masszív OLAP szerver •Egy teljes funkcionalitású •OLAP szerver Masszív OLAP szerver •Egy teljes funkcionalitású •OLAP szerver ? ?
Intelligens gyorsítótár ProActive Cache Cache (gyorsítótár) Növeli a sebességet Nem kell karbantartani Figyel a forrásadatbázis változására. (query notification) Measures csoportonként külön meghatározható!
Dimenziók 2000 vs 2005 Univerzális Dimenzió Modell (UDM) AS 2000-ben minden adatot hierachiák (dimenziók) köré szerveztük Member property-ket és az azokra épített virtuális dimenziókat ritkán használtuk Ezzel szemben ben az attribútumoké a főszerep. (a „tárolt” virtuális dimenzióké)
Dimenziók, attribútumok, hierarchiák Univerzális Dimenzió Modell (UDM) 2000: dimenziók, szintek 2005 dimenzió, attribútumok Év Negyedév Hónap Év Hét Idő.hónapIdő.hét Év Negyedév Hónap Idő Hét Nap
Attribútum alapú dimenziók Univerzális Dimenzió Modell (UDM) Hierarchiák: Az attribútumok rendezése (bejárási útvonala) A hierarchiák csak „logikai” objektumok. (felösszegzés nélkül hozhatjuk létre, módosíthatjuk, törölhetjük) A kliens oldalon megjelenhetnek mint egy hierarchia szintjei és mint egy önálló dimenzió is DIMENZIÓ = OSZLOP 1:1-es megfeleltetés az oszlopokkal (a dimenzió fogalma kiterjesztve az adatforrásokra)
Auto Exists Univerzális Dimenzió Modell (UDM) DolgozókNemek Kiss Béla Férfi Kovács Géza Férfi Nagy Bea Nő Üres cellát kapok vissza, ha lekérdezem a férfi Nagy Beát A Select ([Dolgozók].members * [Nemek].[Nő]) csak Nagy Beát adja vissza A nem létező cellákba nem lehet visszaírást kezdeményezni, mert nem létezik FérfiNőK.B.10? K.G.10? N.B?20 Fizetések
MDX hatékonyság Univerzális Dimenzió Modell (UDM) A hierarchia nem más, mint az attribútumok bejárási útvonala [Időszak].[2005].[II. Negyedév 2005].[április 2005] = ( [Időszak].[év].2005, [Időszak].[Negyedév].[II. Negyedév 2005], [Időszak].[Hónap].[április 2005])
Adatforrás nézetek Data Source View Híd az adatkockák és az adatforrások között Külön logikai réteg a csillag és hópehely sémák meghatározására XML-ben tárolva Jogosultság kezelés Off-line megvalósítás Nem kell léteznie az adatforrásnak Átnevezhető, módosítható séma elemek (ezekből a nézetekből a későbbiekben részkockák is származtathatóak)
Többnyelvűség Translation A sémába „új” oszlopok szúrhatóak be, amelyek a dimenziók elemeinek más nyelvű megnevezéseit tartalmazza. De maga a séma is létezhet több nyelven Választható kliens oldalról (nem kell függővé tenni a területi beállításoktól (regional settings))
Új dimenzió tipusok Beépített idő dimenzió Szerepjátszó (Role Playing) dimenziók Referencia dimenziók Több a többhöz (Many to Many) dimenziók Egyenleg Ft Nagy Bea 20 Kiss Béla 20 Összes ügyfél 20
Beépített idő dimenzió Miért jó? Felösszegzések az idő mentén (Semi-additive probléma) Központi karbantartás Automatikusan létrehozható több hierarchia –Naptári évre –Pénzügyi évre –Létrehozható 13 hónapos év,... Minden dátum típusú oszlopra automatikusan definiálhatjuk (nem kell újraépíteni) És definiálni lehet rá automatikusan kalkulált értékeket: Kumulált értékek, Mozgóátlag, Előző év azonos időszakához képest,...
KPI – Mutatószámok Key Performance Indicators A KPI egy olyan objektum amely feltölthető: Aktuális érték (Fact) Cél érték (Plan) Státusz (-1 és 1 közötti érték. Mennyire közelítettük meg a cél értéket? 1-nagyon; -1 semennyire) Trend (-1 és 1 közötti érték. +1: folyamatosan közelítünk a célérték felé –1 egyre jobban távolodunk a céltől) A KPI csak egy lehetőség amelyre kliens oldalon definiálni lehet megjelenítőket (jelzőlámpák, szimbólumok)
Meta adatok mdb helyett XML formátum (sima szövegfájl) Szétválasztható a fejlesztő és az éles szerver Adatbázis építés adatforrás nélkül (üres kockák, dimenziók) A fejlesztőknek nem kell látniuk az összes adatot (jogosultság kezelés) és többen dolgozhatnak ugyanazon projekten XML sablonok (template-ek) -> operatív rendszerekhez a gyártók fejleszthetnek OLAP megoldásokat
Eltérő részletezettségű adatok Mérték csoportok (measure groups) A measure egy numerikus oszlop a fact táblában Az összes measure a fact táblában alkot egy measure csoportot Ha több fact táblám van, több measures csoportot tudok létrehozni (Pl. terv és tény adatok) Aggregálás módja fact táblánként (measures csoportonként) szabadon választható (ROLAP, PoActve Cache, MOLAP)
Új felösszegzési módok Semi-Additive, Non-additive measures Egyenlegeket nem lehet felösszegezni az idő dimenzió mentén (az első negyedévi készlet nem egyenlő a januári februári márciusi készlet összegével) AS 2000-es megoldási módok Rekurzív számított mezők Relációs oldalon megoldva és nem aggregálva LookupCube-bal megoldva Non-additive (nincs aggregáció)
MDX – MDX SCRIPT A lekérdezés nyelve továbbra is az MDX, de a szerver oldali kalkulációt 2005-ben az MDX script látja el Az MDX Script összegzi fel a kockát, számítja ki a számított mezők értékét Script. Az utasítások sorban hajtódnak végre!!! Nyomkövethető
MDX SCRIPT CALCULATE; feltölti a kockát (aggregálja) SCOPE; limitálni lehet a kockát annak egy részhalmazára SCOPE (Idö.január); –SCOPE (cikk.alma); – [Measures].[Darab] = 100; –END SCOPE; END SCOPE; CACHE: A kalkuláció eredményét a lemezre menti
Kalkulációk A kalkulációk a szerveren hajtódnak végre (Nincs kliens oldali cache használat) A server oldali cache meg van osztva a felhasználók között A lekérdezés optimalizáló újraírja a lekérdezést -> ha lehet hatékonyabban lekérdezni.
MDX Hiányzó dimenzió elemek (Dimenzió elemek jönnek/mennek) -> az MDX NULL értéket ad vissza olyan dimenzió értékre amely már nem létezik (de nem száll el!, állítható) Halmazok (set) megadhatóak a where feltételben. WHERE (idő.jan, idő.feb)
demó Felhasznált irodalom l/2005/evaluate/dwsqlsy.mspx l/2005/evaluate/dwsqlsy.mspx l/2005/evaluate/dwsqlsy.mspx nalysisServices/defaulet.aspx nalysisServices/defaulet.aspx nalysisServices/defaulet.aspx