Data Warehousing Růst obratu: $10 miliard v 1999 Rozsah od desktop do super: Walmart: 900-CPU, 2,700 disk, 23TB Teradata system Nové termíny slice & dice, rollup, MOLAP, pivot, ...
Obsah Co je datový warehouse? Proč používat warehouse? Modely & operace Implementace warehousu Další vývoj DB2 warehousing
Co je Warehouse? Kolekce dat separovaná od operační databáze subjektově orientovaná určená pro manažery a exekutivu kopíruje operační data obsahuje další údaje (součty, historii) integrovaná časově proměnná stálá (stabilní) více DB2 warehousing
Co je Warehouse? Kolekce prostředků sdružování dat čištění, integrování, ... dotazování, výpisy, analýzy, ... data mining monitorování, administraci warehousu DB2 warehousing
Architektura Warehousu Klient Klient Dotaz & Analýza Zdroj Warehouse Metadata Integrace Zdroj Zdroj Zdroj DB2 warehousing
Motivační příklady Předpověď počasí Srovnávání výkonnosti skupin Monitoring, detekce podvodů Vizualizace DB2 warehousing
Proč Warehouse? ? Dva přístupy: Query-Driven (Eager=dychtivé) Warehouse (Lazy=zpožděné) ? Zdroj Zdroj DB2 warehousing
Query-Driven přístup Klient Wrapper Mediator Zdroj DB2 warehousing
Výhody Warehousingu Vysoký výkon dotazování Nepřístupnost z vně warehousu Lokální zpracování bez ovlivnění zdrojů Může operovat při nepřístupných zdrojích Dotazování na data neukládaná v DBMS Další informace v warehousu Modifikovaná, sumarizovaná (aggregovaná) Historické informace DB2 warehousing
Výhody Query-Driven Netřeba kopírovat data Čerstvější data méně paměti netřeba vybírat data Čerstvější data Netřeba znát potřeby dotazů Postačuje dotazovací interface ke zdroji DB2 warehousing
OLTP vs. OLAP OLTP: On Line Transaction Processing Popisuje zpracování v operační databázi OLAP: On Line Analytical Processing Popisuje zpracování ve warehousu DB2 warehousing
OLTP vs. OLAP OLTP OLAP Většinou updatuje Více malých transakcí Mb-Tb dat Prvotní data Administrativní uživatel Čerstvá data Konsistence, obnova je kritická Většinou čte Dlouhé, komplexní dotazy Gb-Tb dat Summarizovaná, konsolidovaná data Vedoucí pracovník, analytik jako uživatel DB2 warehousing
Datová tržiště Menší warehousy Rozsah části organizace např., marketing (zákazníci, producenti, prodeje) Nevyžaduje celopodnikové informace ale problem budoucí integrace? DB2 warehousing
Modely & Operátory warehousu Datové Modely relační hvězdice & vločky krychle Operátory slice & dice (řez & výřez) roll-up, drill-down (srolování, zavrtání) pivoting další DB2 warehousing
Hvězdice DB2 warehousing
Schéma hvězdicové prodej prodId zákazník datum výrobek zákId zákId výrId výrId jméno jméno obchId addresa cena množ město částka obchod obchId město DB2 warehousing
Tabulky Tabulka faktů Tabulky dimenzí Měřítka (Kč, cm) prodId zákazník prodej prodId zákazník datum výrobek zákId zákId výrId výrId jméno jméno obchId adresa cena množ město Tabulka faktů Tabulky dimenzí Měřítka (Kč, cm) částka obchod obchId město DB2 warehousing
Hierarchie dimenzí Typ obchod město oblast è vločkové schéma è konstelace DB2 warehousing
Krychle Pohled tabulky faktů: Multi-dimenzionální krychle: dimenze = 2 DB2 warehousing
3-D krychle Pohled tabulky faktů: Multi-dimenzionální krychle: den 2 den 1 dimenze = 3 DB2 warehousing
ROLAP versus MOLAP ROLAP: Relational On-Line Analytical Processing MOLAP: Multi-Dimensional On-Line Analytical Processing DB2 warehousing
Agregáty Sečti částky za den 1 V SQL: SELECT sum(částka) FROM prodej WHERE datum = 1 81 DB2 warehousing
Aggregáty Sečti částky po dnech V SQL: SELECT datum, sum(částka) FROM prodej GROUP BY datum DB2 warehousing
Další příklad Sečti částky po dnech a výrobkách V SQL: SELECT datum, sum(částka) FROM prodej GROUP BY datum, výrId rollup drill-down DB2 warehousing
Aggregáty Operátory: sum, count, max, min, median, ave “Having” klauzule Použití hierarchie dimenzí průměr za region (v rámci obchodu) maximum za měsíc (vzhledem k datumu) DB2 warehousing
Agregace krychle Př.: Výpočty součtů . . . 129 rollup drill-down den 2 DB2 warehousing
Operátory krychle . . . prodej(c1,*,*) 129 prodej(c2,p2,*) den 2 . . . den 1 prodej(c1,*,*) 129 prodej(c2,p2,*) prodej(*,*,*) DB2 warehousing
Rozšířená krychle * den 2 prodej(*,p2,*) den 1 DB2 warehousing
Agregagace s použitím hierarchií den 2 den 1 zákazník region země (zákazník c1 v regionu A; zákazníci c2, c3 v regionu B) DB2 warehousing
Pivoting ?! Pohled tabulky faktů Multi-dimenzionální krychle: den 2 DB2 warehousing
Prostředky pro dotazy Query Building Report Writers (porovnávání, grafy,…) Spreadsheet systémy Webovská rozhraní Data Mining DB2 warehousing
Další operace Časové funkce Vyhodnocované atributy Textové dotazy např., časový průměr Vyhodnocované atributy např., provize = prodeje * rabat Textové dotazy např., najdi dokumenty se slovy X AND B např., seřaď documenty podle frekvence slov X, Y, Z DB2 warehousing
Data Mining Rozhodovací stromy Shlukování (Clustering) Asociační pravidla DB2 warehousing
Rozhodovací stromy Příklad: Zjištění údajů, jací zákazníci se zajímají o nové modely aut Výběr zákazníků pro reklamní kampaň Trénovací množina DB2 warehousing
Jedna možnost věk<30 město=PL auto=audi pravděp nepravděp pravděp Y N město=PL auto=audi N Y N Y pravděp nepravděp pravděp nepravděp DB2 warehousing
Jiná možnost auto=audi město=PL věk<45 pravděp nepravděp pravděp Y N město=PL věk<45 Y Y N N pravděp nepravděp pravděp nepravděp DB2 warehousing
Co vyplývá Rozhodovací strom nemůže být příliš hluboký jinak by neměl statisticky významné hodnoty pro rozhodování v nižších úrovních Je třeba vybrat strom, který nejspolehlivěji predikuje výsledky DB2 warehousing
Shlukování (Clustering) příjem vzdělání věk DB2 warehousing
Jiný příklad: Text Každý dokument je vektor např., <100110...> obsahuje slova 1,4,5,... Shluky obsahují “podobné” dokumeny Užitečné pro klasifikaci, vyhledávání dokumenů sport zahraniční zprávy obchod DB2 warehousing
Problémy Je zadán postačující počet shluků? Nalezení “nejlepších” shluků Jsou shluky sémanticky smysluplné? např., shluk “sázkařů’’? Ukládání shluků na disk DB2 warehousing
Dolování asociačních pravidel transakce id zákazníka id Koupené produkty Záznamy prodejů: Data z nákupního koše Trend: Produkty p5, p8 často koupeny společně Trend: Zákazník 12 má v oblibě produkt p9 DB2 warehousing
Asociační pravidla Pravidlo: {p1, p3, p8} Support: počet košů obsahujících tento produkt Častá množina položek: support práh s Problém: nalezení všech častých množin DB2 warehousing
Nalezení častých dvojic Koše(koš, položka) SELECT I.položka, J.položka, COUNT(I.koš) FROM Koše I, Koše J WHERE I.koš = J.koš AND I.položka < J.položka GROUP BY I.položka, J.položka HAVING COUNT(I.koš) >= s; DB2 warehousing
Příklad ověř je-li count s DB2 warehousing
Důsledky Mohutnost množiny dvojic Mohutnost množiny n-tic ještě velká větší! velká Mohutnost množiny n-tic DB2 warehousing
Implementace warehousu Monitoring: Výběr dat ze zdrojů Integrace: Zavlečení, pročištění,... Zpracování: Zpracování dotazu, indexace, ... Správa dat: Metadata, Design, ... DB2 warehousing
Monitoring Typy zdrojů: Relační, plochý soubor, IMS, IDMS, WWW, news-wire, … Inkrementální vs. Obnovovaný zákazník id jméno adresa město 53 josef Horní 10 BR 81 franta Dolní 20 BR nový 111 sára V díře 55 PL DB2 warehousing
Monitorovací techniky Periodické snímky Databázové triggery Uložení logů Replikace dat Ukládání Transakcí Dotazování (dotazy ke zdroji) výhody & nevýhody!! DB2 warehousing
Následky monitoringu Frekvence Transformace dat periodická: denní, týdenní, … triggerovaná: na “velké” změny, množství změn, ... Transformace dat konverze dat na jednotný formát rušit & přidávat položky (např., přidat datu pro získání historie) Standardy (např., ODBC) Gateways DB2 warehousing
Integrace Čistění dat Zavvlékání dat Odvozená data DB2 warehousing Klient Warehouse Zdroj Dotaz & Analýza Integrace Metadata DB2 warehousing
Čistění dat Migrace (např., koruna ð dolar) Praní (Scrubbing): užití doménově-specifické znalosti (např., rodných čísel) Slévání (př.,seznam adres, slučování zákazníků) Auditing: zjišťování pravidel & vztahů (jako data mining) DB faktur DB služeb zákazník1(Jan) zákazník2(Jan) sloučený_zákazník(Jan) DB2 warehousing
Zavlékání dat Incrementálně vs. s obnovou Off-line vs. on-line Frekvence plnění V noci, 1x za týden/měsíc, průběžně Paralelní/oddělené plnění DB2 warehousing
Odvozená data Odvozená data warehousu Kdy aktualizovat odvozená data? indexy agregáty materializované pohledy (další slide) Kdy aktualizovat odvozená data? Incrementálně vs. s obnovou DB2 warehousing
Materializované pohledy Definují nové relace warehousu za použití SQL výrazů neexistuje v žádném zdroji DB2 warehousing
Zpracování ROLAP servery vs. MOLAP servery Indexové struktury Co materializovat? Algorithmy Klient Warehouse Zdroj Dotaz & Analýza Integrace Metadata DB2 warehousing
ROLAP Server Relační OLAP Server nástroje ROLAP utilities server Speciální indexy. Schéma je “denormalizováno” relační DBMS DB2 warehousing
MOLAP Server Multi-Dimensionální OLAP Server M.D. nástroje utilities Výrobek Město Datum 1 2 3 4 mléko voda pivo maso A B Prodeje M.D. nástroje utilities multi-dimensionální server Může také být nadstavbou relačního DBMS DB2 warehousing
Indexové struktury Tradiční přístupové metody Populární ve warehousech B-stromy, hash tabulky, R-stromy, mřížky, … Populární ve warehousech invertované seznamy bit mapové indexy join indexy textové indexy DB2 warehousing
Invertované seznamy . . . datové invertované Index záznamy seznamy věku DB2 warehousing
Užití invertovaných seznamů Dotaz: Zjisti lidi s věkem = 20 a jménem = “fred” Seznam pro věk = 20: r4, r18, r34, r35 Seznam pro jméno = “fred”: r18, r52 Odpověď je průnik: r18 DB2 warehousing
Bitové mapy . . . Index bitové datové věku mapy záznamy DB2 warehousing
Užití bitových map Dotaz: Seznam pro věk = 20: 1101100000 Zjisti lidi s věkem = 20 a jménem = “fred” Seznam pro věk = 20: 1101100000 Seznam pro jméno = “fred”: 0100000001 Odpovědí je průnik: 010000000000 Dobré, je-li kardinalita domény malá Bitové vectory mohou být komprimovány DB2 warehousing
Join “Kombinuje” relace PRODEJ, VÝROBEK V SQL: SELECT * FROM PRODEJ, Výrobek DB2 warehousing
Join Indexy join index DB2 warehousing
Co materializovat? Ulož ve warehousu výsledky užitečné pro běžné dotazy Příklad: Celkové prodeje den 2 . . . den 1 129 materializuj DB2 warehousing
Materializační Faktory Typ/frekvence dotazů Doba odezvy na dotaz Cena paměti Cena změn dat DB2 warehousing
Svaz agregátů krychle vše město výrobek datum město, výrobek 129 vše město výrobek datum město, výrobek město, datum výrobek, datum Použij algoritmus hladového k rozhodnutí co materializovat den 2 den 1 město, výrobek, datum DB2 warehousing
Hierarchie dimenzí vše stát město DB2 warehousing
Hierarchie dimenzí vše město výrobek datum město, výrobek město, datum stát město, výrobek, datum stát, datum stát, výrobek stát, výrobek, datum Nevykresleny všechny hrany... DB2 warehousing
Zajímavé hierarchie vše roky týdny kvartály konceptuální měsíce tabulka dimenzí měsíce dny DB2 warehousing
Algorithmy Optimalizace dotazu Paralelní zpracování Data Mining DB2 warehousing
Příklad: Asociační pravidla Jak provádět dolování pravidel efektivně? Poznatek: Má-li množina X support t, pak každá podmnožina X musí mít alespoň support t Pro dvojice: má-li mít dvojice {i, j} support s pak jak i tak j se musí vyskytnout alespoň v s koších DB2 warehousing
Algorithmus pro dvojice (1) Najdi kandidátní výrobky vyskytují se v s nebo více koších (2) Najdi dvojice se supportem alespoň s, za použití pouze kandidátních výrobků DB2 warehousing
Algoritmus pro dvojice INSERT INTO okBaskets(basket, item) SELECT basket, item FROM Baskets GROUP BY item HAVING COUNT(basket) >= s; Doluj dvojice z košů okBaskets SELECT I.item, J.item, COUNT(I.basket) FROM okBaskets I, okBaskets J WHERE I.basket = J.basket AND I.item < J.item GROUP BY I.item, J.item HAVING COUNT(I.basket) >= s; DB2 warehousing
Efektivní načítání Jedním průchodem: práh = 3 načti & odstraň seřaď DB2 warehousing
Efektivní načítání Jiný způsob: práh = 3 projdi a načti odstraň Měj pole čítačů v paměti DB2 warehousing
Ještě jeden způsob (1) práh = 3 projdi & hashuj & čítej (4) odstraň hash tabulka v paměti práh = 3 (2) projdi & odstraň čítače v paměti (4) odstraň (3) projdi & čítej positivně špatná DB2 warehousing
Diskuse Hashovací schéma: 2 (nebo 3) průchody daty Řadící schéma: vyžaduje řazení! Hashování pracuje dobře, je-li málo dvojic s velkým supportem a hodně s nízkým Dvojice položek rozdělené dle frekvence frekvence práh Ledová hora dotazů DB2 warehousing
Manažování Metadat Návrhu warehousu Nástrojů DB2 warehousing Klient Warehouse Zdroj Query & Analysis Integration Metadata DB2 warehousing
Metadata Administrativa definice zdrojů, nástrojů, ... schémata, hierarchie dimenzí, … pravidla pro extrakci dat, … obnova dat, postupy čistění profil uživatele, řízení přístupu, ... DB2 warehousing
Metadata Obchodní Operační vlastnictví dat, poplatky termíny & definice Operační vznik dat oběh dat (např., aktivní, archivní, ...) stavy, chybové zprávy, následný audit DB2 warehousing
Návrh Jaká data jsou potřebná? Odkud přicházejí? Jak data čistit? Jak je reprezentovat ve warehousu (schéma)? Co sumarizovat? Co materializovat? Co indexovat? DB2 warehousing
Nástroje Vývoj Planování & Analýza Management warehousu návrh & editace: schémat, pohledů, scriptů, pravidel, dotazů, reportů Planování & Analýza co-když scénáře (změny schémat , míra obnovy), plánování kapacity Management warehousu monitoring výkonnosti, hlášení výjimečných stavů Management systému & sítě rytmus provozu (zdrojů, warehousu, klientů) Management toku prací “spolehlivé scripty” pro čistění a analýzu dat DB2 warehousing
Současný stav průmyslu Extrakce a integrace se dělá off-line Obvykle ve velkých, časově náročných dávkách Vše je kopírováno do warehousu Ukládá se bez selekce Pohodlí dotazu vs cena paměti & update Optimalizace dotazu cílená na OLTP Velká prostupnost místo rychlé odezvy Zpracuje celý dotaz před jakýmkoliv výstupem DB2 warehousing
Další směry Lepší výkon Větší warehousy Snazší používání Na čem pracují výrobci a výzkum? DB2 warehousing
Výzkum (1) Inkrementální údržba Konsistence dat Expirace dat Obnova Kvalita dat Zpracování chyb DB2 warehousing
Výzkum (2) Temporální warehousy Materializace & výběr indexů Slévání dat Data Mining Integrace textových & relačních dat DB2 warehousing
Závěr Velká množství dat a složitost dotazů budou tlačit na limity dnešních warehouseů Potřebné lepší systémy: snáze použitelné poskytující kvalitní informace DB2 warehousing