Hatékony SQL Server 2005 Analysis Services (SSAS)-alapú BI rendszerek tervezése Kővári Attila BI tanácsadó, SQL Server MVP www.biprojekt.hu Kovari.Attila@biprojekt.hu.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Számalk-MIS Tanácsadó Kft. Tel:
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Grafikus tervezőrendszerek programozása 10. előadás.
Az Analysis Services 2005 újdonságai Kővári Attila.
E-R modell, reláció-séma
A normalizálás az adatbázis-tervezés egyik módszere
4. gyakorlat Normalizálás.
Arató Bence technológiai igazgató Oracle9i Release 2: Relációs és OLAP adatok kezelése közös platformon InfoStructure.
AVIR – intézményi adatmodell Csulyák Gábor Informatikai igazgató Educatio Nonprofit Kft február 2.
Adatbetöltésre való (ETL eszköz) + AdattisztításAdatprofilozás Adatbányász modellek Futtatása Szövegbányászat (szótövezés, …) … Része az SQL Server.
Adatbázis kezelés Adatbázis tervezés.
Delphi programozás alapjai
Adatbázis (alapfogalmak).
Kinek szól az előadás: Akik már ismerik valamennyire az SSIS-t Akik nem most hallanak először a BI-ról és az adattárházról Az előadás célja A legjobb.
MNB Statisztika A külső finanszírozási igény/képesség változása
SQL Server 2005 Reporting Services a gyakorlatban
Adattárházak kialakulása, építése és elemzése (Rövid áttekintés)
Adatbázis rendszerek II.
az MSAccess programmal
1950-es évek 1960-as évek 1970-es évek 1980-as évek 1990-es évek
SQL – OLAP 2. óra.
Közös kinézet Mester oldal, témák, skin-ek, css Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán.
SQL Server 2005 Reporting Services Kószó Károly rendszermérnök Microsoft Magyarország.
Az adatfeldolgozás forrásai
Gazdasági informatikából megkaptuk a félévi feladatot!!! Mindenki nagy örömére… 0. hét.
Gazdasági informatika II.félév
SQL – OLAP 3. óra.
Önkiszolgáló üzleti intelligencia az SQL Server 2012-ben
Első lépések Hogyan kezdjünk hozzá
Microsoft BI technológiák az eszközmenedzsment szolgálatában
SQL, Relációs adatmodell
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Tervezés, Normalizálás
Térkép. Mi az adat? Minden információ, amit tárolni kell. Minden információ, amit tárolni kell.  szám  szöveg  dátum  hang  kép, stb.
Statisztika, kutatásmódszertan I.
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Adatbázis kezelés.
Adatbázis-kezelés.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
A Microsoft Üzleti Intelligencia megoldása és platformja
Kulcsok meghatározása a táblákban
Adatbázis alapfogalmak
Webprogramozó tanfolyam
Adatbányászat Excel 2007-tel
Adatbázisok kialakítása 1 / 16. Adatbázisok kialakítása 2 / 16 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Adatbázisok.
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
BI a felhőben…. Dudás Viktor –
SQL Server Analysis Services
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
User Profiles Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont.
Adattár alapú Vezetői Információs Rendszer (AVIR) Fejérvári Bence március 26.
 Adatbázis:  Valamilyen szempont szerint rendszerezett adathalmaz.  Adatbázis kezelés:  Adatok tárolása  Műveletek végzése az adatbázison; (Adatok.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
Adatbázisszintű adatmodellek
Programozás III JPA.
Microsoft alapú VIR megoldás az egyetemeken Lénárt Marcell.
Alapfogalmak Adat: rögzített ismeret
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Adatbáziskezelés.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Értékteremtő folyamatok menedzsmentje
Relációs adatmodell, normálformák
Adatbázis-kezelés 2. Relációs adatbázisok.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Előadás másolata:

Hatékony SQL Server 2005 Analysis Services (SSAS)-alapú BI rendszerek tervezése Kővári Attila BI tanácsadó, SQL Server MVP www.biprojekt.hu Kovari.Attila@biprojekt.hu

Az előadásról Kinek szól az előadás: Az előadás célja Akik már ismerik valamennyire az Analysis Services-t. Tudnak dimenziót, kockát építeni. Az előadás célja Hogy segítséget adjon Önöknek hatékony OLAP-alapú vezetői információs Rendszerek, vagy BI megoldások tervezéséhez.

Tematika Miért használjunk OLAP-ot? Hatékony OLAP rendszerek alapkövetelményei Hatékony Dimenziók Attribútumok Hierarchiák tervezése Az idő dimenzió jelentősége és problémái Adatkockák tervezési kérdései

Miért használjunk OLAP-ot? Egy jól megépített csillagséma és egy OLAP kocka elemei egymásnak kölcsönösen megfeleltethetőek. (1:1 mapping) Dimenzió tábla = dimenzió (Adatkocka éle) Ténytábla = Adatkocka cellája Csillag séma = Adatkocka Akkor miért használjuk? Lényegesen jobb lekérdezési sebesség (és nehéz úgy megfektetni, mint a relációst) Klasszisokkal jobb riportkészítő és lekérdező eszközök léteznek hozzá, mint a relációshoz Lényegesen jobb elemzési támogatást nyújt (idősor összehasonlítások) Jogosultság kezelés: A relációs oldalon nehéz olyan jogosultság kezelést kialakítani, hogy valaki láthatja az összegző szint adatait, de részletező sorokat már nem (ad-hoc lekérdezések esetén)

Tematika Miért használjunk OLAP-ot? Hatékony OLAP rendszerek alapkövetelményei Hatékony Dimenziók Attribútumok Hierarchiák tervezése Az idő dimenzió jelentősége és problémái Adatkockák tervezési kérdései

Hatékony OLAP rendszerek alapkövetelményei Építsünk jó csillagsémát! Ne bízzuk az Analysis Services-re a csillag séma vagy az ETL folyatat hibáinak, hiányosságainak kijavítását!!! Ismeretlen dimenzióelem, duplikált dimenzióelem, ismeretlen szülő, … Mind-mind ETL probléma, ott kell megoldani! Hiányzó elsődleges kulcsok, kalkulációk mind-mind csillagséma probléma, ott kell megoldani! Ha ezen követelményeknek megfelelünk, akkor a problémák java részét kiküszöböltük Bár, az adatforrás nézetek lehetőséget biztosítanak komplex sémák kialakítására, az OLAP és a relációs adatbázis között továbbra is célszerű view-kat használni az üzleti logika megfogalmazására: Az adatbázisban definiált csillagsémát elérhetik távoli alkalmazások, szerverek és adatbázisok. Ugyanez az adatforrás nézetekről nem mondható el. Az adatforrás nézetben létrehozott csillag sémát sajnos még a Reporting Services sem látja. Hiába alakítunk ki képleteket, felhasználó barát megnevezéseket az adatforrás nézetben, ha azt nem tudjuk máshol használni. Ellenben ha ugyanezt a relációs oldalon, view-kal oldjuk meg, akkor mind az Analysis Services, mind a Reporting Services látni fogja. A view-k definiálásával egyszerűsíthető a jogosultság kezelés, szépíthető a táblák, oszlopok megnevezése, függetleníthető az OLAP (és az adatpiacon definiált relációs riportok) az adatpiac fizikai szerkezetének változásától, Könnyebb, jobban kezelhető felületek léteznek az adatbázis nézetek (view-k) szerkesztéséhez, mint az adatforrás nézetek szerkesztéséhez. És view-k használata esetén könnyen tudunk szerepjátszó dimenziókat származtatni meglévő dimenziók meta adataiból… Persze, ha OLAP kockát nem a saját adatbázisunkra, hanem mások adatbázisára kell építenünk, és nem engedik meg nekünk a view-k létrehozását (pl. idegen, vagy nem MSSQL alapú adattárház), akkor nincs más választásunk, mint az adatforrás nézetben definiált named query-k használata. De minden más esetben célszerűbb view-kat használni…

Tematika Miért használjunk OLAP-ot? Hatékony OLAP rendszerek alapkövetelményei Hatékony Dimenziók Attribútumok Hierarchiák tervezése Az idő dimenzió jelentősége és problémái Adatkockák tervezési kérdései

Dimenziók – Attribútumok – Hierarchiák (alapfogalmak) Vizsgálati szempontok (idő, termék, vevő, …) A dimenziók attribútumokból, és hierarchiákból épülnek fel. Attribútumok Felfogható, mint egy hierarchia szintjei (Év, negyedév, hónap, nap,…) Felfogható, mint dimenzió elemek tulajdonsága (egyszintű hierarchia) (Hét napjai, Munka-, vagy szabadnap) Attribútumok kapcsolata 1:1 es attribútum (pl. egy ügyfél e-mail címe, telefonszáma, …) (ex member property) 1:M-es attribútum (Hét napjai) Hierarchiák Az attribútumok láncolata (év alatta negyedév, alatta hónap, …) Fajtái Természetes (natural) Reporting. (Sió, alatta 1 literes, alatta 12% gyümölcstartalom, ..)

Dimenziók – Attribútumok – Hierarchiák (Tervezés) Termékcsoport Gyümölcstart Kiszerelés EAN (Cikk kód) Termék Attribútumok: Termékcsoport Termékek ALL (User) Hierarchia Gyümölcstart Kiszerelés Attribútum hier: (1:M Attribútum) EAN (Cikk kód) Attribútum reláció (1:1-es Attribútum) AttributeHierarchyEnabled=false Célszerű minden dimenzión legalább egy (user) hierarchiát építeni. (Általában nem létezik az üzleti életben olyan dimenzió amin nem definiálható legalább egy (user) hierarchia) Egyébként hatékonysági szempontból is fontos, mert az aggregáció tervező csak két dolgot vesz figyelembe alapértelmezettként a tervezésnél: a kulcs attribútumot és azokat, amelyeket tartalmaz a hier

Hatékony dimenziók tervezése Használjunk kevés dimenziót (5-10/kocka) sok-sok attribútummal és hierarchiával Építsünk egy „conform” dimenziót (pl. Dátum), és ezekből származtassunk sok-sok szerepjátszó dimenziót (rendelés dátuma, szállítás dátuma, …) Csak azokat az elemeket válogassuk be a szerepjátszó dimenzióba, amelyre az adott téma elemzőjének szüksége lesz (Belföldi vevők, export vevők) Érdekes, hogy az emberek relációs oldalon meg tudnak tervezni egy dimenzió táblát, de ha átülnek a többdimenziós oldalra, akkor mindent elfelejtenek és neki állnak százdimenziós kockákat gyártani.

Hatékony attribútumok tervezése Egy attribútum ne legyen egyszerre eleme egy attribútum hierarchiának (Attribute hierarchy), és egy felhasználói hierarchiának (user hierarchy). Csak a szükséges információkból képezzünk attribútumot! Minden attribútum rendelkezzen EGYEDI kulccsal! (Q1 helyett Q1 2007, Q1 2006) A kulcsok legyenek egész számok (mint a surrogate key-k) Állítsuk Rigid-re azon attribútumok RelationshipType tulajdonságát, amelyek nem változnak az időben. (pl. az ügyfél neme) Használjunk default membert a nem aggregálható attribútumokra!

Hatékony attribútum relációk tervezése Használjunk tranzitív relációkat! Azon attribútumokat kössük össze, amelyek között a valóságban is létezik KÖZVETLEN kapcsolat! Az Analysis Services felismeri és megfelelően használja a tranzitív relációkat A tranzitív reláció segít az aggregáció tervezőnek! Az analysis Services felismeri és megfelelően használja a tranzitív relációkat! A tranzitív reláció olyan reláció, amely szerint ha az első és második elem, továbbá a második és harmadik elem azonos viszonyban áll egymással, akkor ez a viszony az első és harmadik elem között is fennáll. Ez segít az aggregáció tervezőnek, hatékony aggregációkat készíteni. A tranzitív reláció olyan reláció, amely szerint ha az első és második elem, továbbá a második és harmadik elem azonos viszonyban áll egymással, akkor ez a viszony az első és harmadik elem között is fennáll.

Hatékony attribútum relációk tervezése kerüljük a redundáns relációkat! Megnövelik a dimenzió méretét Megnehezítik az aggregáció tervezést Megnövelik a felösszegzések időszükségletét Speciális esetben csupa NULL értéket adhat vissza a lekérdezés Ha van olyan measure group-unk amely nem a member key-vel csatlakozik a dimenzióhoz, akkor előfordulhat, hogy az Analysis Services nem összegzi fel a kocka adatait az adott attribútum szerint, és ha ezt az attribútumot választjuk lapozó dimenziónak, akkor csupa NULL értéket ad vissza. A figyelmeztető ablak hibaüzenete: This dimension contains one or more redundant attribute relationships. These relationships may prevent data from being aggregated when a non-key attribute is used as a granularity attribute in a cube. Verify the following relationships and delete those that are not needed: [Day] -> [Year]; [Day] -> [Quarter].

Hatékony hierarchiák tervezése A hierarchiák csak az attribútumok közti kapcsolatot írják le (előre definiált bejárási útvonal) Az attribútumok beágyazásával előállíthatunk ad-hoc hierarchiákat is Akkor miért használjuk? Mert az ember is használ hierarchiákat fogalmai rendezéséhez. Mert a kliens alkalmazások még hierarchiákra (és nem attribútumokra) vannak optimalizálva Mert segít az aggregáció tervezőnek optimalizálni Madár-e a kanári? 75 ezredmásodperc? Állat e a madár? 75 ezredmásodperc Állat-e a kanári? 150 ezredmásodperc

Hatékony hierarchiák tervezése folytatás… Csak természetes hierarchiákat definiáljunk (ország-város; év-negyedév-hónap) Ne definiáljunk reporting hierarchiákat! Ezt bízzuk a felhasználókra (Összes termék, alatta 1 literes kiszerelésűek, alatta alma ízűek, alatta 12%-os gyümölcstartalmúak) klasszikus hiba: ország, alatta vevő Csak olyan attribútumokra definiáljunk hierarchiát, amelyek között létezik élő (üzletileg létező) kapcsolat! És a hierarchiával csak erősítsük meg ezt a kapcsolatot, hogy az aggregáció tervező és a felhasználók munkáját is könnyítsük.

Tematika Miért használjunk OLAP-ot? Hatékony OLAP rendszerek alapkövetelményei Hatékony Dimenziók Attribútumok Hierarchiák tervezése Az idő dimenzió jelentősége és problémái Adatkockák tervezési kérdései

Hatékony idő dimenzió tervezése Az idő dimenzió az OLAP-alapú rendszerek lelke Mind a dimenziónak, mind attribútumainak Time típusúnak kell lennie! Az attribútumait rendezni kell! (OrderBy tulajdonság) Mindig teljes évet vegyünk fel! Kódok: Member key (Mesterséges kulcs: 20070516) Member value (természetes kulcs: 2007-05-16) Member name (május 16, 2007) Az Excel 2007 fel tudja használni a member value tulajdonság értékét, ha az dátum!

Hatékony idő dimenzió tervezése Hierarchia szintenként 2 attribútum Hónap attribútum Elemei: január, 2007; február, 2007; Elemszáma = évek száma * 12 Ebből építsünk hierarchiát! Az év hónapjai attribútum Elemei: január, február, március, … Elemszáma = 12 Ez legyen független attribútum (Ezt használjuk szezonalitás vizsgálathoz.)

Hatékony idő dimenzió tervezése YTD, YoY, … Hova tegyük a YTD, YoY, … kalkulációkat? Measures? Idő dimenzióba mint attribútum? Hozzunk létre külön idősor kalkulációk dimenziót!

Hatékony idő dimenzió tervezése a problémák: Gyémánt alak (Diamond shape) Egy dimenzión belül két olyan legfelső szint, ahol nincs ALL member http://www.sqljunkies.com/WebLog/mosha/archive/2006/10/25/time_calculations_parallelperiod.aspx

Hatékony idő dimenzió tervezésének problémái: ALL level Az idő dimenzióra nem teszünk ALL szintet, mert üzletileg nincs értelme! De ha két hierarchiát is használunk, (Pénzügyi, naptári) akkor kénytelenek vagyunk. Megoldás: Vagy ALL szint, vagy csak egyféle hierarchia.

Hatékony adatkockák tervezése Használjuk a forrásadat collation-jét Válasszuk a szükséges legkisebb adattípust A collation szükséges a helyes rendezési sorrendhez, de karakter sorozatok összehasonlításához is. Különösen akkor kell figyelnünk ha distinct count measure-t építünk rá! A collaction-öket adatbázis, kocka, dimenzió vagy kapcsolódó oszlop szinjén is meghatározhatjuk! A szükséges legkisebb adattípust ALL szinten kell mérni!

Összefoglaló Építsen jó csillagsémát, és erre ültessen egy OLAP kockát! Használjon kevés „conform” dimenziót sok attribútummal Fordítson extra figyelmet az attribútum kapcsolatok tervezésére Csak természetes hierarchiákat definiáljon

További információk OLAP Design Best Practices for Analysis Services 2005 http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/olapdbpssas2005.mspx Analysis Services 2005 Performance Guide http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SSAS2005PerfGuide.doc Project REAL: Analysis Services Technical Drilldown http://www.microsoft.com/technet/prodtechnol/sql/2005/realastd.mspx Magyar nyelvű anyagok http://www.biprojekt.hu/blog/Analysis_Services_2005.htm