Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Adattárházak 1 Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása.

Hasonló előadás


Az előadások a következő témára: "Adattárházak 1 Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása."— Előadás másolata:

1 Adattárházak 1 Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása és fogalmi leírások Az adattárháztól az adatbányászatig

2 Adattárházak 2 Mi az adattárház? Sokféleképpen definiálják, nincs egyértelmű meghatározás. Olyan döntéstámogató adatbázis, amelyet a szervezet működéséhez szükséges adatbázisától elkülönítve üzemeltetnek Egyesített, történeti (időtől függő) adatok elemzését, információ feldolgozását támogató platform. “Az adattárház olyan témaspecifikus, integrált, időfüggő, fizikailag is tárolt adatgyűjtemény, amely a menedzsment döntéshozó folyamataihoz szükséges lehet.”—W. H. Inmon Adattár-háztartás (Data warehousing): Az adattárházak készítésének, felhasználásának folyamatai

3 Adattárházak 3 Mit jelent a témaspecifikusság (Subject-Oriented)? Mit vizsgálunk: vásárlókat, termékeket, eladásokat? Nem a napi működéshez szükséges folyamatokkal, tranzakciós folyamatok foglalkozunk, hanem a modellezéssel, a döntéshozók számára hasznos adatelemzésekkel Egy speciális témakörhöz szükséges adathalmaz egyszerű, tömör reprezentálása. Kihagyjuk azokat az adatokat, amelyek nem kellenek a döntéshozáshoz.

4 Adattárházak 4 Mit jelent az integráltság? Többféle, heterogén adatforrás adataiból készítjük el az adattárházat relációs adatbázisok, sima szöveges fájlok, tranzakciós rekordok Integrációs technikákat és adattisztítást kell alkalmaznunk. Biztosítani kell a különböző helyről származó adatok esetén is az egységes elnevezéseket, egységes struktúrákat, egységes attribútum mértékeket. például a szállodai szobaár: Ft, 2700 Ft AFA, reggelivel Az adattárházba kerüléskor rögtön konvertáljuk az adatokat a megfelelő formátumra

5 Adattárházak 5 Mit jelent az id ő függés? Általában hosszabb időtartamra (akár évekre visszamenőleg) vizsgáljuk az adatokat A működési adatbázisban: az adatok aktuális értéke szerepel Az adattárházban: az adatok múltja is szerepel Az adattárház kulcsai (azonosítói) mindig tartalmaznak időpontot, explicit vagy implicit formában a működési adatbázisban nincs mindig időpont megadva

6 Adattárházak 6 Mi jellemz ő a fizika tárolásra? A működési környezetből átvett adatokat fizikailag elkülönítve tároljuk A működési környezetben történő módosítások nem láthatók egyből az adattárházban Nincs szükség tranzakció-kezelésre, naplózásra, konkurenciakezelésre Két alapvető adatelérési művelet kell csak: a kezdeti adatbetöltés és a lekérdezésekhez szükséges adatelérés

7 Adattárházak 7 Adattárház vagy heterogén adatbázis-kezelés? A heterogén adatbázisok hagyományos integrálása: lekérdezésvezérelt Burkolókat és közvetítőket (wrappers/mediators) használunk a heterogén adatbázisok feletti rétegben A lekérdezést egy metaszótár segítségével a heterogén adatbázisok számára értelmezhető alkérdésekké alakítjuk, a megfelelő adatbázisban végrehajtjuk az alkérdést, majd az eredményeket visszaadjuk, és ezekből összerakjuk az eredeti lekérdezésre a választ bonyolult információszűrő folyamat, ráadásul az erőforrásokért versenyezni is kell (mi van, ha nem érhető el éppen az adatbázis?) Adattárház: frissítésvezérelt, nagy teljesítmény, gyorsaságot lehet elérni vele a heterogén adatforrások adatait előzetesen integráljuk és betöltjük egy adattárházba, majd ezt kérdezzük le, ezen végezzük el az elemzéseket.

8 Adattárházak 8 Adattárház vagy m ű ködési adatbázis? OLTP (on-line transaction processing) on-line tranzakciós feldolgozás a hagyományos adatbázis-kezelés fő feladata a napi működést szolgálja ki: vásárlás, raktárnyilvántartás, bankolás, gyártás, bérszámfejtés, regisztrálás, könyvelés. OLAP (on-line analytical processing) on-line elemző feldolgozás az adattárházak fő feladata adatok elemzése, döntéshozás Mik az eltérések az OLTP és az OLAP között: felhasználói kör, a rendszer célja: ügyfelek kiszolgálása, illetve piaci pozíciók megszerzése adattartalom: részletes, aktuális, illetve redukált, történeti adatok az adatbázis tervezése: az alkalmazásoknak megfelelő egyed-kapcsolat modell, illetve a témához tartozó adatok csillagsémában tárolva nézőpont: aktuális helyi adatok, illetve több helyről származó, integrált adatok időbeli változása hozzáférések célja: módosítás, illetve bonyolult, csak olvasási lekérdezések

9 Adattárházak 9 Az OLTP és az OLAP közti különbségek OLTPOLAP a felhasználókügyfelek, adminisztrátorok, programozók adatelemző tudásmunkások a funkcionalitás céljanapi működés kiszolgálásadöntéshozás az adatbázis tervezésealkalmazásorientálttémaorientált az adatokaktuálisak, részletesek, relációsak, vagy szöveges állományok, elkülönítettek történeti, összesített, többdimenziós, egységesített, integrált a felhasználás módjafolyamatos, ismétlődőidőnkénti, ad-hoc a hozzáférés módjaolvas/írás, indexek az elsődleges kulcsokra lekérdezések, sokféle, speciális index használata a tipikus munkaegységrövid, egyszerű tranzakcióösszetett lekérdezés a munkaegységbe bevont rekordok száma pár tucatmilliós nagyságrend a felhasználók számatöbb ezerszáznál kevesebb az adatbázis mérete100 megabájt – pár gigabájt100 gigabájt – több terabájt a teljesítmény mérésetranzakciószám/másodperclekérdezés száma/másodperc, átlagos válaszidő

10 Adattárházak 10 Miért különítjük el az adattárházat? Nagy teljesítmény akarunk elérni mindkét rendszerben Az adatbázis-kezelő rendszerek az OLTP-t támogatják: különböző adatelérési módszerekkel, indexelésekkel, konkurenciakezeléssel, helyreállítási mechanizmusokkal Az adattárház az OLAP-ot támogatja: összetett OLAP lekérdezéseket, többdimenziós nézeteket, összesítéseket Más a cél, másfélék az adatok, mint OLTP esetén: hiányzó adatok: A döntésekhez nagyon régi adatok is kellhetnek, ami a napi működéshez nem kellene (már archiválva van) összesítések: heterogén forrásokból származó adatokat kell összesíteni, aggregálni adatminőség változatos: a különböző rendszerek eltérően reprezentálják, kódolják az adatokat, így ezeket össze kell egyeztetni Megjegyzés: Léteznek adattárház nélküli OLAP rendszerek, amelyek közvetlenül az relációs adatbázisból dolgoznak.

11 Adattárházak 11 Adattárházak Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása és fogalmi leírások Az adattárháztól az adatbányászatig

12 Adattárházak 12 A táblázatoktól az adatkockákig Az adattárház többdimenziós adatmodellt valósít meg, tipikusan adatkockákat használ. Egy adatkocka, mint például az eladások, esetén az adatokat több dimenzióban nézhetjük, modellezhetjük Dimenziótáblákat használunk: cikk(cikk_név, márka, típus), vagy idő(nap, hét, hónap, negyedév, év) A ténytábla tartalmazza az értékeket, mértékeket (például eladott_mennyiség_dollárban) és kulcsokat a megfelelő dimenziótáblákhoz, amely alapján a dimenzió részleteit tudjuk a tényekhez hozzákapcsolni Az n-dimenziós (n-D) alapkockát alapkuboidnak (alaptéglának) hívjuk. Ez a legrészletezettebb nézete a tényeknek. A legfelső szintű 0-D kuboid a teljes összesítést tartalmazza, (függetlenül helytől, időtől, egyéb dimenzióktól). Ez az apex kuboid. A kuboidok hálóját hívjuk adatkockának.

13 Adattárházak 13 Az adatkocka : a kuboidok hálója idő,cikk idő,cikk,hely idő, cikk, hely, szállító összes ( all ) időcikkhelyszállító idő,hely idő,szállító cikk,hely cikk,szállító hely,szállító idő,cikk,szállító idő,hely,szállító cikk,hely,szállító 0-D (apex) kuboid 1-D kuboidok 2-D kuboidok 3-D kuboidok 4-D (alap) kuboid

14 Adattárházak 14 Az adattárház fogalmi modelljei Adattárházak modelljei: dimenziók és mértékek Csillagséma: Középen áll a ténytábla, ami dimenziótáblákkal van összekapcsolva. Hópehelyséma: A csillagséma finomítása, a dimenziótáblákat dekomponáljuk normálformájú kisebb dimenziótáblákra. Csillagkép vagy galaxisséma: Több ténytábla közös dimenziótáblákat használ.

15 Adattárházak 15 Csillagséma time_key day day_of_the_week month quarter year time location_key street city state_or_province country location Sales ténytábla time_key item_key branch_key location_key units_sold dollars_sold avg_sales Mértékek item_key item_name brand type supplier_type item branch_key branch_name branch_type branch

16 Adattárházak 16 Hópehelyséma time_key day day_of_the_week month quarter year time location_key street city_key location Sales ténytábla time_key item_key branch_key location_key units_sold dollars_sold avg_sales Mértékek item_key item_name brand type supplier_key item branch_key branch_name branch_type branch supplier_key supplier_type supplier city_key city state_or_province country city

17 Adattárházak 17 Galaxisséma ( 2 ténytáblával) time_key day day_of_the_week month quarter year time location_key street city province_or_state country location Sales ténytábla time_key item_key branch_key location_key units_sold dollars_sold avg_sales Mértékek item_key item_name brand type supplier_type item branch_key branch_name branch_type branch Shipping ténytábla time_key item_key shipper_key from_location to_location dollars_cost units_shipped shipper_key shipper_name location_key shipper_type shipper

18 Adattárházak 18 Adatbányász (adattárház) nyelvek Szabvány nincs, de több kísérlet történt a funkciók SQL-szerű leírására. DMQL – egy adatbányász lekérdező nyelv relációs adatbázisokra (Han definiálta 1996-ban) GMQL (Geo Mining Query Language) - térbeli adatok adatbányászó nyelve, DMQL-re épül (Koperski definiálta 1999-ben) SDMOQL (Spatial Data Mining Object Query Language) itérbeli adatok objektum alapú lekérdező nyelve, OQL-re épül (Malerba definiálta 2002-ben)

19 Adattárházak 19 Adatkocka definiálása (BNF) DMQL- ben Kocka (ténytábla) definiálása define cube [ ]: Dimenziótáblák definiálása define dimension as ( ) Közös dimenziótáblák definiálása ha már egy kockában definiáltuk a dimenziót define dimension as in cube

20 Adattárházak 20 Csillagséma definiálása DMQL-ben define cube sales_star [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country)

21 Adattárházak 21 Hópehelyséma definiálása DMQL-ben define cube sales_snowflake [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier(supplier_key, supplier_type)) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city(city_key, province_or_state, country))

22 Adattárházak 22 Galaxisséma definiálása DMQL-ben define cube sales [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) define cube shipping [time, item, shipper, from_location, to_location]: dollar_cost = sum(cost_in_dollars), unit_shipped = count(*) define dimension time as time in cube sales define dimension item as item in cube sales define dimension shipper as (shipper_key, shipper_name, location as location in cube sales, shipper_type) define dimension from_location as location in cube sales define dimension to_location as location in cube sales

23 Adattárházak 23 Adatkockák az Oracle-ben

24 Adattárházak 24 Dimenzió készítése Oracle-ben

25 Adattárházak 25 Szintek és hierarchiák készítése Oracle-ben

26 Adattárházak 26 Attribútumok készítése Oracle-ben

27 Adattárházak 27 Kocka készítése Oracle-ben

28 Adattárházak 28 A kocka mértékeinek megadása Oracle-ben

29 Adattárházak 29 Az adatkockákban háromféle mérték szerepelhet Disztributív: partíciókra kiszámolva és az eredményekre alkalmazva ugyanazt kapjuk, mintha a teljes adathalmazra alkalmaztuk volna: f( {f(P1),…,f(Pn)} ) = f(P1 ∪ … ∪ Pn) ilyen például a count(), sum(), min(), max() Algebrai: ha egy N változós algebrai függvénybe disztributív függvényeket helyettesítünk ilyen például avg() = sum()/count(), min_N() : n-ik legkisebb, standard_deviation() Holisztikus (teljes): nem korlátos számú argumentumú függvény például median(), mode(), rank()

30 Adattárházak 30 Egy fogalmi hierarchia a HELY dimenzióban bármi (all) EuropeNorth_America MexicoCanadaSpainGermany Vancouver M. WindL. Chan... összes - bármi (all) régió iroda ország TorontoFrankfurtváros

31 Adattárházak 31 Adattárházak, hierarchiák megjelenítése Hierarchiák specifikálása: séma szintű hierarchia nap < {hónap < negyedév; hét} < év értékhalmaz szintű hierarchia {1..10} < olcsó

32 Adattárházak 32 Többdimenziós adatok Az eladott mennyiséget a termék, hónap és régió függvényében adjuk meg Termék Régió Hónap Dimenziók: Termék, Hely, Idő Hierarchikus összesítő utak Ipar Régió Év Kategória Ország Negyedév Termék Város Hónap Hét Iroda Nap

33 Adattárházak 33 Az összesítéseket tartalmazó adatkocka Éves TV eladás az USA-ban Dátum Termék Ország   TV MP3 PC 1.n.é. 2. n.é. 3. n.é. 4. n.é. U.S.A Kanada Mexico 

34 Adattárházak 34 A kockának megfelelő kuboidok all termék dátum ország termék,dátumtermék,országdátum, ország termék, dátum, ország 0-D (apex) kuboid 1-D kuboidok 2-D kuboidok 3-D (alap) kuboid

35 Adattárházak 35 Adatkocka böngészése Az adatkocka használatánál szükséges a megjelenítés OLAP műveletek kezelése interaktív kezelés Mi jellemző a legnagyobb összesített eladásra? Legnagyobb kocka: Észak- Amerika, szabadtéri, olcsó termék: legfeljebb az ára

36 Adattárházak 36 Tipikus OLAP m ű veletek Felgörgetés - Roll up (drill-up): összesítjük (pl. összegezzük) az adatokat a hierarchián feljebb lépve vagy a dimenziót elhagyva Lefúrás - Drill down (roll down): kirészletezünk adatokat (a felgörgetés fordítottja) alacsonyabb szintű összesítést veszünk, részletezzük az adatokat, vagy bevezetünk egy új dimenziót Szeletelés és kockázás - Slice and dice: vetítés és kiválasztás Forgatás (pivotálás) - Pivot (rotate): elforgatjuk a kockát, vagy a vizualizációját, a 3D-t alkotó 2D-s síkszeletek sorozatát átrendezzük Egyéb műveletek Keresztülfúrás - drill across: egynél több ténytáblában fúrunk le Átfúrás -drill through: a lefúrást SQL utasításokkal a kockában a legrészletezettebb adatokig, azaz az alap relációs táblákig folytatjuk

37 Adattárházak 37 Példa az OLAP m ű veletekre: felgörgetés (Roll-up) A városokat összesítjük az országokban

38 Adattárházak 38 Példa az OLAP m ű veletekre: lefúrás (Drill-down) Kibontjuk a negyedéveket hónapokra

39 Adattárházak 39 Példa az OLAP m ű veletekre: kockázás (Dice) Egy részkockát képzünk két városra, két negyedévre és két termékre

40 Adattárházak 40 Példa az OLAP m ű veletekre: szeletelés (Slice) Az első negyedév szerinti kétdimenziós szeletet vesszük

41 Adattárházak 41 Példa az OLAP m ű veletekre: forgatás (Pivot) A hely és termék tengelyeket felcseréljük

42 Adattárházak 42 A dimenziók fogalmi hierarchiáinak reprezentálása csillagháló (Star-Net) modellben Szállítás légi kamion rendelések Rendelések szerződések Vásárló Termék termékcsoport márka cikk értékesítő kerület osztály Szervezet Akciók város ország régió Hely nap negyedév év Idő Minden kör egy lábnyom (footprint) téli karácsonyi

43 Adattárházak 43 Adattárházak Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása és fogalmi leírások Az adattárháztól az adatbányászatig

44 Adattárházak 44 Adattárház tervezése Négyféle szempont az adattárház tervezéséhez Fentről le az adattárházhoz szükséges lényeges információ kiválasztása (mire van és mire lehet majd szükség) Adatforrás mit tárolunk a működési rendszereinkben Adattárház milyen tény és dimenziótáblákat tárolunk az adattárházban Üzlet a végfelhasználó milyen célra használhatja majd az adatokat

45 Adattárházak 45 Az adattárház tervezési folyamata Fentről le, vagy lentről fel, vagy kombinálva Fentről le (Top-down): Gondosan, fokozatosan részletezve mindent megtervezünk (időigényes) Lentről fel (Bottom-up): Próbálgatunk, prototípusokat adunk (gyors) Szoftvertervezési szempontból Vízesés modell (Waterfall): strukturált, szisztematikus elemzés, mielőtt a következő lépést megtesszük Spirális modell (Spiral): gyorsan, egyre több funkcionalitást teszünk a készülő rendszerbe Az adattárház tervezési folyamatának tipikus lépései Határozzuk meg az üzleti folyamatokat, amelyekben modellezzünk például a rendeléseket, számlákat Határozzuk meg az üzleti folyamatok atomi adatszintjét Határozzuk meg a tényrekordokhoz tartozó dimenziókat Határozzuk meg a rekordokban szereplő mértékeket

46 Adattárházak 46 Adattárház megvalósítása többrétegű architektúrában Adattárház Kiszed Tisztít Transzformál Betölt Frissít OLAP motor Elemzés Lekérdezés Jelentések Adat- bányászat Monitor & Integrátor Metaadat Adatforrások Kliens eszközök szolgáltat Adatpiacok Működési adatbázis Más források Tárolt adatok OLAP Szerver

47 Adattárházak 47 Az adattárház három típusa Vállalati adattárház (Enterprise warehouse) a teljes szervezet összes fontos információját tartalmazza, amely bármilyen témájú elemzéshez valaha is kellhet Adatpiac (Data Mart) egy adott témához (például marketing) szükséges adatok gyűjteménye külön is megépíthetjük, de lehet része a vállalati adattárháznak is Virtuális adattárház (Virtual warehouse) A működési adatbázisra építünk nézeteket Egyes összesítő nézeteket materializálunk

48 Adattárházak 48 Adattárház építése 1. Magas szintű szervezeti adatmodell definiálása 2. Adatpiac építése 3. Osztott adatpiacok építése 4. Többrétegű adattárház architektúra 2. Vállalati adattárház építése 2. Adatpiac építése A modell finomítása

49 Adattárházak 49 Adattárház-épít ő segédeszközök Adatgyűjtéshez több, heterogén, akár külső adatforrásból összegyűjti, kiválasztja a szükséges adatokat Adattisztításhoz adathibákat kijelzi, ha lehet ki is javítja Adattranszformációhoz az örökölt adatbázisokból az adatokat az adattárház formátumára transzformálja Betöltéshez rendez, összesít, egyesít, nézeteket készít, ellenőrzi az integritási feltételeket, indexeket készít, particionál Frissítéshez időközönként az új adatokat, változásokat betölti az adattárházba

50 Adattárházak 50 A leíró adatok kezelése (Metadata Repository) A metaadatok az adattárház objektumainak definícióit tárolják. Adattárház struktúráinak leírása sémák, nézetek, dimenziók, hierarchiák, számolt adatok definíciói, adatpiacok elérési helye és tartalma Működési metaadatok adatvonal (a migrált adatok története és a transzformációk sorozata), adatállapot (aktív, archivált, törölt), monitorozási információk (használati statisztikák, hibajelentések, ellenőrzések) Az összesítésekhez, aggregációkhoz szükséges algoritmusok Azok a leképezések (mappings), amelyek a működési adatbázisból áttöltik az adatokat az adattárházba Rendszer szintű adatleírások a jobb teljesítményhez indexek definíciói, frissítési periódusok Üzleti adatok üzleti fogalmak, definíciók, díjkalkulációk

51 Adattárházak 51 OLAP szerver architektúrák Relációs OLAP (ROLAP) alsó rétegben egy relációs vagy objektumrelációs adatbázis-kezelő tárolja, kezeli az adattárház adatait, erre épül rá az OLAP köztes réteg az adatbázis-kezelő lehetőséget biztosít az optimalizálásra, aggregációra és egyéb kiegészítő eszköz, szolgáltatás használatára jól skálázható Multidimenziós OLAP (MOLAP) ritka tömbök kezelésére kifejlesztett többdimenziós tárkezelő az összesített, aggregált adatok speciális indexelési lehetősége Hibrid OLAP (HOLAP) (pédául Microsoft SQLServer) az alsó szint relációs, felső szint tömbkezelő Speciális SQL szerver (például Redbricks) SQL lekérdező utasítások csillagsémákra, hópehelysémákra

52 Adattárházak 52 Adattárházak felhasználása Felhasználási területek Alapinformáció szolgáltatása lekérdezések, alapvető statisztikai elemzések, jelentések, (táblák, kereszttáblák, diagramok, grafikonok) Elemzések többdimenziós elemzések OLAP műveletek (szeletelés, kockázás, lefúrás, forgatás) használata Adatbányászat rejtett minták feltárása asszociációs szabályok keresése, analitikus modell készítése, osztályozás és előrejelzés, az eredmények vizuális megjelenítése

53 Adattárházak 53 Adattárházak Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása és fogalmi leírások Az adattárháztól az adatbányászatig

54 Adattárházak 54 Adatkockák hatékony el ő állítása Az adatkocka kuboidok hálója A háló legalján az alapkuboid áll. A háló tetején az egy cellából álló apex kuboid áll. Hány darab n-dimenziós kuboid van, ha L i (+1 az ANY miatt) szint van egy dimenzióban? Az adatkockát érdemes materializálni teljes materializálás: összes kuboidot (2 n vagy még több, ha szintek is vannak) részleges materializálás: néhány kuboidot nincs materializás Melyik kuboidot materializáljuk? gyakran van rá szükség, mennyi hely van a kuboidok tárolására, sok összesítést tudunk belőle képezni

55 Adattárházak 55 Adatkocka m ű veletek A kocka definiálása DMQL-ben define cube sales[item, city, year]: sum(sales_in_dollars) compute cube sales Kifejezhető SQL-ben a cube by (Gray 1996) művelettel SELECT item, city, year, SUM (amount) FROM SALES CUBE BY item, city, year Mindez az alábbi Group-By –ok képzését jelenti (date, product, customer), (date,product),(date, customer), (product, customer), (date), (product), (customer) () (item)(city) () (year) (city, item)(city, year)(item, year) (city, item, year)

56 Adattárházak 56 A jéghegy kocka Csak azokat a kuboidokat számoljuk ki, amelyekhez tartozó aggregátorérték elég nagy, például elég sok adatot tartalmaz HAVING COUNT(*) >= minsup Motiváció Általában csak kevés kuboid érdekes egy ritka kockában Azok lesznek az érdekesek, amelyben az aggregáció elér egy küszöbindexet Nem kell exponenciális sok kockát kiszámolni

57 Adattárházak 57 A jéghegy kocka SELECT Part, StoreLocation, Customer, SUM(Price) FROM R CUBE BY Part, StoreLocation, Customer HAVING COUNT(*) >=2 A jéghegy kuboidjai PRICE Az R adatbázis

58 Adattárházak 58 Az OLAP adatok indexelése: Bitmap index Olyan oszlopra jó, amelyben kevés különböző értéke szerepel (az oszlop képmérete kicsi) Minden értéknek egy bitvektor felel meg, mivel a bitműveletek gyorsak A bitvektornak annyi eleme van, ahány sora van a táblának A bitvektor j-ik komponense 1, ha a j-ik rekordban ez az értéke szerepel az indexelt oszlopban, egyébként 0. Jól használható AND, OR, COUNT, GROUP BY számítására Az alap tábla Index a Region oszlopra Index a Type oszlopra

59 Adattárházak 59 Az OLAP adatok indexelése: összekapcsolási index (Join Index) A join index: JI(R-id, S-id) formájú, ahol R (R-id, …)  S (S-id, …) A join index párok formájában materializálja az összekapcsolható sorokat, ezzel gyorssá teszi az összekapcsolási műveletet Az adattárház csillagsémájában a dimenziótáblák rekordjait kell a ténytábla rekordjaihoz kapcsolni, így erre nagyon jól használható. Például a Sales ténytáblához kapcsoljuk a location és az item dimenziókat A city join index azokat a párokat tartalmazza, hogy egy adott városban milyen azonosítóval rendelkező eladások történtek Lehetne hármasokat is tárolni (a három tábla összekapcsolható rekordazonosítóit)

60 Adattárházak 60 Az OLAP lekérdezések hatékony végrehajtása Határozzuk meg, milyen műveleteket kellene elvégezni a rendelkezésre álló kuboidokon A lefúrás, felgörgetés, stb. műveleteket írjuk át SQL-be, például a kockázás művelet kiválasztással és vetítéssel fejezhető ki. Határozzuk meg, mely materializált kuboidokból számolható ki az OLAP művelet. Például adott a következő kocka és a hierarchiák a szokásosak. define cube sales_star [time, item, branch, location]:dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) Egy olyan lekérdezés kell kiszámolni, amely a {brand, province_or_state} értékekre vonatkozik a “year = 2004” feltétellel. A következő 4 materializált nézet közül melyiket használhatjuk? 1) {year, item_name, city} 2) {year, brand, country} 3) {year, brand, province_or_state} 4) {item_name, province_or_state}, ahol year = 2004 A 2. nem jó, mert a country adatokban elveszítjük a finomabb province_or_state értékeket. A többi jó. Az 1. választása a sok city érték miatt kevésbé hatékony. Ha sok item tartozik ugyanahhoz a brand értékhez, akkor 4. se elég hatékony. A 3. a legjobb. (Indexek esetén más lehet a helyzet!)

61 Adattárházak 61 Adattárházak Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása és fogalmi leírások Az adattárháztól az adatbányászatig

62 Adattárházak 62 What is Concept Description? Descriptive vs. predictive data mining Descriptive mining: describes concepts or task-relevant data sets in concise, summarative, informative, discriminative forms Predictive mining: Based on data and analysis, constructs models for the database, and predicts the trend and properties of unknown data Concept description: Characterization: provides a concise and succinct summarization of the given collection of data Comparison: provides descriptions comparing two or more collections of data

63 Adattárházak 63 Data Generalization and Summarization- based Characterization Data generalization A process which abstracts a large set of task-relevant data in a database from a low conceptual levels to higher ones. Approaches: Data cube approach(OLAP approach) Attribute-oriented induction approach Conceptual levels

64 Adattárházak 64 Attribute-Oriented Induction Proposed in 1989 (KDD ‘89 workshop) Not confined to categorical data nor particular measures How it is done? Collect the task-relevant data (initial relation) using a relational database query Perform generalization by attribute removal or attribute generalization Apply aggregation by merging identical, generalized tuples and accumulating their respective counts Interactive presentation with users

65 Adattárházak 65 Basic Principles of Attribute-Oriented Induction Data focusing: task-relevant data, including dimensions, and the result is the initial relation Attribute-removal: remove attribute A if there is a large set of distinct values for A but (1) there is no generalization operator on A, or (2) A’s higher level concepts are expressed in terms of other attributes Attribute-generalization: If there is a large set of distinct values for A, and there exists a set of generalization operators on A, then select an operator and generalize A Attribute-threshold control: typical 2-8, specified/default Generalized relation threshold control: control the final relation/rule size

66 Adattárházak 66 Attribute-Oriented Induction: Basic Algorithm InitialRel: Query processing of task-relevant data, deriving the initial relation. PreGen: Based on the analysis of the number of distinct values in each attribute, determine generalization plan for each attribute: removal? or how high to generalize? PrimeGen: Based on the PreGen plan, perform generalization to the right level to derive a “prime generalized relation”, accumulating the counts. Presentation: User interaction: (1) adjust levels by drilling, (2) pivoting, (3) mapping into rules, cross tabs, visualization presentations.

67 Adattárházak 67 Example DMQL: Describe general characteristics of graduate students in the Big-University database use Big_University_DB mine characteristics as “Science_Students” in relevance to name, gender, major, birth_place, birth_date, residence, phone#, gpa from student where status in “graduate” Corresponding SQL statement: Select name, gender, major, birth_place, birth_date, residence, phone#, gpa from student where status in {“Msc”, “MBA”, “PhD” }

68 Adattárházak 68 Class Characterization: An Example Prime Generalized Relation Initial Relation

69 Adattárházak 69 Presentation of Generalized Results Generalized relation: Relations where some or all attributes are generalized, with counts or other aggregation values accumulated. Cross tabulation: Mapping results into cross tabulation form (similar to contingency tables). Visualization techniques: Pie charts, bar charts, curves, cubes, and other visual forms. Quantitative characteristic rules: Mapping generalized result into characteristic rules with quantitative information associated with it, e.g.,

70 Adattárházak 70 Mining Class Comparisons Comparison: Comparing two or more classes Method: Partition the set of relevant data into the target class and the contrasting class(es) Generalize both classes to the same high level concepts Compare tuples with the same high level descriptions Present for every tuple its description and two measures support - distribution within single class comparison - distribution between classes Highlight the tuples with strong discriminant features Relevance Analysis: Find attributes (features) which best distinguish different classes

71 Adattárházak 71 Quantitative Discriminant Rules Cj = target class q a = a generalized tuple covers some tuples of class but can also cover some tuples of contrasting class d-weight range: [0, 1] quantitative discriminant rule form

72 Adattárházak 72 Example: Quantitative Discriminant Rule Quantitative discriminant rule where 90/( ) = 30% Count distribution between graduate and undergraduate students for a generalized tuple

73 Adattárházak 73 Class Description Quantitative characteristic rule necessary Quantitative discriminant rule sufficient Quantitative description rule necessary and sufficient

74 Adattárházak 74 Example: Quantitative Description Rule Quantitative description rule for target class Europe Crosstab showing associated t-weight, d-weight values and total number (in thousands) of TVs and computers sold at AllElectronics in 1998

75 Adattárházak 75 Concept Description vs. Cube-Based OLAP Similarity: Data generalization Presentation of data summarization at multiple levels of abstraction Interactive drilling, pivoting, slicing and dicing Differences: OLAP has systematic preprocessing, query independent, and can drill down to rather low level AOI has automated desired level allocation, and may perform dimension relevance analysis/ranking when there are many relevant dimensions

76 Adattárházak 76 Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing Data warehouse: Basic concept Data warehouse modeling: Data cube and OLAP Data warehouse architecture Data warehouse implementation Data generalization and concept description From data warehousing to data mining

77 Adattárházak 77 From On-Line Analytical Processing (OLAP) to On Line Analytical Mining (OLAM) Why online analytical mining? High quality of data in data warehouses DW contains integrated, consistent, cleaned data Available information processing structure surrounding data warehouses ODBC, OLEDB, Web accessing, service facilities, reporting and OLAP tools OLAP-based exploratory data analysis Mining with drilling, dicing, pivoting, etc. On-line selection of data mining functions Integration and swapping of multiple mining functions, algorithms, and tasks

78 Adattárházak 78 An OLAM System Architecture Data Warehouse Meta Data MDDB OLAM Engine OLAP Engine User GUI API Data Cube API Database API Data cleaning Data integration Layer3 OLAP/OLAM Layer2 MDDB Layer1 Data Repository Layer4 User Interface Filtering&IntegrationFiltering Databases Mining queryMining result

79 Adattárházak 79 Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing Data warehouse: Basic concept Data warehouse modeling: Data cube and OLAP Data warehouse architecture Data warehouse implementation Data generalization and concept description From data warehousing to data mining Summary

80 Adattárházak 80 Summary: Data Generalization, Data Warehousing, and On-line Analytical Processing Data generalization: Attribute-oriented induction Data warehousing: A multi-dimensional model of a data warehouse Star schema, snowflake schema, fact constellations A data cube consists of dimensions & measures OLAP operations: drilling, rolling, slicing, dicing and pivoting Data warehouse architecture OLAP servers: ROLAP, MOLAP, HOLAP Efficient computation of data cubes Partial vs. full vs. no materialization Indexing OALP data: Bitmap index and join index OLAP query processing From OLAP to OLAM (on-line analytical mining)

81 Adattárházak 81 References (I) S. Agarwal, R. Agrawal, P. M. Deshpande, A. Gupta, J. F. Naughton, R. Ramakrishnan, and S. Sarawagi. On the computation of multidimensional aggregates. VLDB’96 D. Agrawal, A. E. Abbadi, A. Singh, and T. Yurek. Efficient view maintenance in data warehouses. SIGMOD’97 R. Agrawal, A. Gupta, and S. Sarawagi. Modeling multidimensional databases. ICDE’97 S. Chaudhuri and U. Dayal. An overview of data warehousing and OLAP technology. ACM SIGMOD Record, 26:65-74, 1997 E. F. Codd, S. B. Codd, and C. T. Salley. Beyond decision support. Computer World, 27, July J. Gray, et al. Data cube: A relational aggregation operator generalizing group-by, cross-tab and sub-totals. Data Mining and Knowledge Discovery, 1:29-54, A. Gupta and I. S. Mumick. Materialized Views: Techniques, Implementations, and Applications. MIT Press, J. Han. Towards on-line analytical mining in large databases. ACM SIGMOD Record, 27:97-107, V. Harinarayan, A. Rajaraman, and J. D. Ullman. Implementing data cubes efficiently. SIGMOD’96

82 Adattárházak 82 References (II) C. Imhoff, N. Galemmo, and J. G. Geiger. Mastering Data Warehouse Design: Relational and Dimensional Techniques. John Wiley, 2003 W. H. Inmon. Building the Data Warehouse. John Wiley, 1996 R. Kimball and M. Ross. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling. 2ed. John Wiley, 2002 P. O'Neil and D. Quass. Improved query performance with variant indexes. SIGMOD'97 Microsoft. OLEDB for OLAP programmer's reference version 1.0. In A. Shoshani. OLAP and statistical databases: Similarities and differences. PODS’00. S. Sarawagi and M. Stonebraker. Efficient organization of large multidimensional arrays. ICDE'94 OLAP council. MDAPI specification version 2.0. In E. Thomsen. OLAP Solutions: Building Multidimensional Information Systems. John Wiley, 1997 P. Valduriez. Join indices. ACM Trans. Database Systems, 12: , J. Widom. Research problems in data warehousing. CIKM’95.


Letölteni ppt "Adattárházak 1 Adattárház: alapfogalmak Adattárház modellek: adatkockák és OLAP Adattárház architektúrák Adattárházak megvalósítása Adatok általánosítása."

Hasonló előadás


Google Hirdetések