Petr Jaša
Obsah Úvod do problematiky Data vs. informace Operační vs. analytická databáze Relační vs. multidimenzionální model Datový sklad Důvody pro budování datových skladů Definice, znaky Schéma vazeb Proces ETL Jednotlivé kroky Analýza OLAP Definice Schémata a operace 2 Datové sklady
Úvod do problematiky Data vs. informace Operační vs. analytická databáze Relační vs. multidimenzionální model Nevýhody operačních databází pro analýzy 3 Datové sklady
Data versus informace Data Surové hodnoty Informace Data, která pro nás mají smysl a přínos Business Inteligence Proces transformace údajů na informace a převod informací na poznatky pro koncového uživatele Vstup: velké objemy dat Výstup: dosud neznámé poznatky, které lze využít v procesu rozhodování Prostředky Business Inteligence: Datové sklady (data warehouses) Analýza OLAP (On-line Analytical Processing) Data Mining (Získávání (dolování) znalostí z dat) 4 Datové sklady Moudrost Znalosti Informace Data
Operační vs. analytická databáze Operační databáze Transakční databáze, OLTP databáze Umožnit klientům provést velké množství transakcí online Automatizace každodenních činností Uložení dat do systému, jejich správa Např.: vytvoření objednávky, rezervace letu, přijetí platby apod. Analytická databáze Informační databáze, OLAP databáze Analýza velkého množství údajů, výsledkem jsou souhrny a reporty, podpora rozhodování Využití (analýza) uložených dat Např.: zjištění, které produkty se nejlépe prodávají nebo v kterém regionu jsou tržby nejnižší apod. 5 Datové sklady
Relační model Relační databázový model sdružuje data do tzv. relací (tabulek), které obsahují n-tice (řádky). Normalizace, vysoce strukturovaná data Výhody Potenciál odborníků ve firmách, kteří tento model několik let rutině používají Potenciál softwaru a vývojových nástrojů Použitelnost v transakčních databázích i datových skladech Nevýhody Absence analytických nástrojů Objemy dat se kterými je možné v rozumném čase pracovat 6 Datové sklady
Multidimenzionální model Podklad pro získání sumarizovaných a agregovaných dat Předem jsou provedeny a uloženy opakující se výpočty Obsahuje především nenormalizované tabulky Redundance není tak podstatným problémem (rychlost) Tabulky faktů obsahují velké množství dat Tabulky dimenzí nenormalizované, menší množství dat Výhody Rychlý komplexní přístup k velkému množství dat Možnost komplexních analýz Silné schopnosti pro modelování a prognózy Nevýhody Vyšší nároky na kapacitu úložiště Problémy při změně dimenzí nutnost přepočítat agregovaná data (informace) 7 Datové sklady
Multidimenzionální databáze - krychle Krychle (kostka) = ekvivalent tabulky v relační DB Pro její výpočet je nutné velké množství výpočtů Může mít i více než tři dimenze Pomocí průniků jednotlivých dimenzí lze získat údaje (např. za určité časové období nebo určitý region) Region Produkt Region Produkt Region Produkt Čas Čas Čas Analýza údajů pro určitý produkt Analýza pro určité časové období Analýza údajů podle regionálních kritérií 8 Datové sklady
Nevýhody transakčních DB pro analýzy Primárně určené pro ukládání operačních dat Bankovní operace, skladové hospodářství, mzdy, fakturace, Dosahují vysokých výkonů při transakcích online Normalizace, vysoce strukturované Výsledky operací jsou především tabulky s daty explicitně uvedenými v databázi Obtížné hledání závislostí mezi jednotlivými veličinami Velmi rozsáhlé výstupy 9 Datové sklady
Nevýhody transakčních DB pro analýzy Data jsou často v několika heterogenních systémech Vysoká časová složitost i relativně jednoduché analýzy Degradace výpočetního výkonu databázového stroje Složité spojování tabulek, příprava dat Neustále se opakující stejné výpočty Nehomogenní záznamy (názvy, formáty, datové typy) Nejsou uchovávány historické údaje Je potřeba spolupráce analytika s databázovým odborníkem nástroje nejsou dostatečně intuitivní 10 Datové sklady
Datový sklad Důvody pro budování datových skladů Definice, znaky Srovnání s klasickými operačními databázemi Budování a provoz Schéma vazeb Popis jednotlivých částí 11 Datové sklady
Důvody pro budování Obrovské množství nashromážděných dat v databázích, které samy osobě nepřináší žádný užitek Supermarkety, banky, mobilní operátoři, podnikové systémy, Potřeba získávat z těchto dat strategické informace (znalosti), které v nich nejsou explicitně uvedeny Následná analýza dat pomocí OLAP, data mining Na základě těchto dat je možné provádět rozhodnutí Povolení úvěru, reklamní kampaň, rozmístění zboží, Data warehousing Proces konstrukce a používání datových skladů 12 Datové sklady
Definice datového skladu Strukturované úložiště údajů Lze definovat mnoha způsoby, většinou neformálně Databáze sloužící k podpoře rozhodování, která je uložena odděleně od operační databáze Podpora pro zpracování informací poskytnutím platformy sloučených historických dat pro analýzu Definice Billa Inmona: Podnikově strukturovaný depozitář subjektově orientovaných, integrovaných, časově proměnlivých, historických dat použitých na získávání informací a podporu rozhodování, obsahuje atomická i sumární data. Nabízí jak prostředky pro samotné uložení dat, tak pro jejich analýzu. 13 Datové sklady
Znaky datových skladů - subjektová orientace Údaje jsou zapisovány podle předmětu zájmu Data jsou organizována podle hlavních subjektů (zákazník, výrobek, apod.) Poskytuje jednoduchý a výstižný pohled související s konkrétní analýzou, data, která aktuálně nejsou potřeba, nejsou zobrazována Orientace na aplikaci: ukládání na základě aplikace (např. data pro fakturaci, personalistiku ) 14 Datové sklady
Znaky datových skladů - integrovanost Údaje týkající se konkrétního předmětu se ukládají pouze jednou -> jednotná terminologie, jednotky veličin Vytvořen spojením několika heterogenních zdrojů dat - relační databáze, textové soubory, on-line transakce Problém nekonzistentních zdrojů dat Nutnost úpravy, vyčištění a sjednocení (integrace) vstupních dat Je nutné ověřit konzistenci v pojmenování proměnných, jejich struktury a jednotkách pro různé zdroje dat 15 Datové sklady
Znaky datových skladů - časová variabilita Čas = klíčový atribut Časový horizont datového skladu je zpravidla podstatně delší než u operační databáze Operační databáze: pouze současně aktuální data Data v datovém skladu: poskytují informace z historické perspektivy (např. posledních 5-10 let) Každá klíčová struktura v datovém skladu obsahuje časový element, explicitně nebo implicitně ale klíč u operačních dat nemusí vždy obsahovat časový element Data jsou ukládána jako série snímků, jeden snímek reprezentuje určitý časový úsek 16 Datové sklady
Znaky datových skladů - neměnnost Fyzicky oddělené uložení dat transformovaných z operačních databází V datových skladech se data většinou nemění ani neodstraňují, jen se přidávají manipulace s daty je tedy jednodušší. Jen dva typy operací: vkládání dat a přístup k datům Optimalizace a normalizace ztrácí smysl Nepotřebuje zpracování transakcí, zotavení, mechanismy pro řízení souběžného přístupu 17 Datové sklady
Datový sklad vs. klasická DB Odlišné vlastnosti (OLTP vs. OLAP): Uživatelé a orientace systému: zákazník vs. obchodník Datový obsah: současná, detailní vs. historická, sloučená Návrh databáze: ER model + aplikace vs. schéma hvězdy + subjekt Přístupové vzory: aktualizace vs. read-only, ale komplexní dotazy Vlastnost Klasická DB Datový sklad Čas odezvy ms s s h Operace DML, např SQL Jen čtení, zápis Původ dat 30 60 dní Snímky za čas. úsek Organizace dat Podle aplikace Podle předmětu, času Velikost Malá až velká Velká až velmi velká Zdroje dat Operační, interní Operační, interní, externí Činnosti Procesy Analýza 18 Datové sklady
Příklady použití Maloobchod Věrnost zákazníků Marketing Bankovnictví Detekce podvodů Odhad rizik Aerolinie Výdělečnost linek Správa zisků Výroba Redukce cen Správa logistiky Služby Správa majetku Správa prostředků Vláda Kontrola cen Plánování lidských zdrojů 19 Datové sklady
Schéma vazeb datového skladu Operační prostředí Extrakce Transformace Zavedení OLAP Uživatelé DATOVÝ SKLAD Získání údajů -> úprava a zavedení do datového skladu -> analýza -> zpřístupnění uživatelům 20 Datové sklady
Součásti datového skladu Zdrojová data Předání informace Archivní Interní Produkční Externí Management & Správa Místo přípravy dat (DBMS) Metadata Datový sklad Multidimenz. DB Datové trhy Data Mining OLAP Reports/Dotazy Získání dat Uložení dat 21 Datové sklady Získání informací
Zdrojová data Produkční data Data získaná z různých operačních DB podniku pomocí jednoznačných dotazů Interní data Data uložená v privátních souborech (zpravidla XLS) zaměstnanců organizace Archivní data Jeden ze základních předpokladů úspěšné analýzy jde většinou o velká kvanta dat Externí data Data z různých zdrojů, která mohou být pro organizaci užitečná Externí zdroje dat třetích stran, například dlouhodobé informace o kurzech akcií apod. 22 Datové sklady
Místo přípravy dat Místo, kde probíhá tzv. příprava údajů fáze ETL (mezistupeň mezi vstupními daty a datovým skladem) Může být i součástí datového skladu Místo speciálně k tomuto účelu určené Extrakce, Transformace, Loading Výsledkem jsou data, která jsou připravena pro analýzu a je možné je uložit do datového skladu Soubory ve formátu vhodném pro nahrávání do datového skladu Relační DB (jednodušší manipulace s daty) 23 Datové sklady
Uložení dat Jde o oddělené skladiště pro uložení velkého množství především historických dat Je navrženo pro analýzu, ne pro rychlý přístup k datům Jsou většinou pro uživatele read-only, s výjimkou administrátora Musí být přístupná pro více druhů nástrojů odpovídající rozhraní Metadata (DBMS) Datový sklad Relační DB (E-R model) Datové trhy Relační DB (dimenzionální model) 24 Datové sklady
Předání informace Poskytuje informace pro různé uživatele Začínající uživatelé: tiskové sestavy, jednoduché dotazy Běžní uživatelé: statistická analýza, různá zobrazení dat, předdefinované dotazy Pokročilí uživatelé: provádí multidimenzionální analýzu, formuluje vlastní OLAP dotazy, používá exekutivní IS (data mining ) 25 Datové sklady
Složka managementu a správy Nadřazena všem součástem datového skladu Koordinace jednotlivých složek datového skladu Používá informace uložené v metadatech Zpravidla je spravováno administrátorem Nejdůležitější funkce Monitoring všech operací s datovým skladem Ošetření a zotavení po chybách Extrakce dat ze zdroje pro účely aktualizace datového skladu Kontrola správnosti transformace dat Zajištění správné funkce při získávání informací Zajištění bezpečnosti dat a autorizace uživatelů 26 Datové sklady
Metadata data popisující data Popis struktury datového skladu Schéma, dimenze, hierarchie, umístění a obsah datových trhů Operační metadata Historie (původ) dat, monitorovací informace (statistiky, chyby apod.), stav dat (archivní, aktuální) Obsahují informace o všech zdrojích dat pro datový sklad (struktura, umístění atd.) Metadata o extrakci a transformaci Jaké metody byly použity při ETL fázi, různá omezení Algoritmy používané pro sumarizaci Metadata pro koncového uživatele Informace o datovém skladu a datech v něm, další obchodní a jiné informace, které může využít pro analýzu 27 Datové sklady
Příprava údajů - etapa ETL Klíčová úloha správy datového skladu ETL = Extraction, Transformation, Loading Extrakce výběr dat různými metodami Transformace ověření, čištění, integrace a časové označení dat Loading přesun dat do datového skladu Hlavní cíl: centralizace údajů Nutné především proto, aby v datovém skladu byla dostatečně kvalitní data Nikdy nekončící proces (neustále nutnost aktualizovat). 28 Datové sklady
Hlavní úkoly ETL etapy Určit data, která mají být uložena v datovém skladu Určit zdroje dat, interní i externí Příprava mapování mezi zdrojovými a cílovými daty Stanovení pravidel pro extrakci dat Určit pravidla pro transformaci a čištění dat Plán pro agregaci tabulek Návrh oblasti přípravy dat Napsat procedury pro nahrávání dat ETL pro tabulky dimenzí a faktů 29 Datové sklady
Extrakce Zdroj: Data z nehomogenního operačního prostředí, popř. z archivních dat Identifikace zdrojů (struktury a aplikace) Metoda extrakce pro každý zdroj Manuální napíši si sám SQL příkazy S využitím nástrojů Frekvence extrakcí pro každý zdroj Periodická extrakce z interních zdrojů Občasná extrakce z externích zdrojů (např. Internet) První extrakce provádí se především z archivních dat 30 Datové sklady
Extrakce identifikace zdrojů Výpis všech datových položek potřebných v tabulce faktů Výpis všech dimenzí Pro každou cílovou položku najít zdroj a jeho položku Je-li více zdrojů pro jednu cílovou položku, vyber preferovaný zdroj Identifikace vícenásobných zdrojů pro jeden cíl stanovení konsolidačních pravidel Identifikace vícenásobných cílů na jeden zdroj stanovení dělících pravidel Určení implicitních hodnot Zjištění chybějících hodnot ve zdrojových datech 31 Datové sklady
Extrakce metody extrakce Metoda extrakce statických dat Vytvoření obrazu zdrojové databáze na výstupu Používá se při iniciálním nahrávání dat do skladu Metody extrakce při aktualizaci dat Metody přímé extrakce Metody odložené extrakce 32 Datové sklady
Extrakce metody přímé extrakce Liší se způsobem zachycení změn v DB od posledního nahrání Zachycení pomocí log souborů (vytvořených databází) Zachycení pomocí databázových triggerů Při každé změně se spustí trigger, který zapíše změnu do souboru Zachycení pomocí samotných databázových aplikací Editace aplikace tak, aby ukládala záznamy o provedených změnách v DB 33 Datové sklady
Extrakce metody přímé extrakce SŘBD OPERAČNÍ SYSTÉM Zdrojová DB Zdrojová data Triggery log soubory Soubory generované aplikací Zachycení pomocí DB aplikací Výstupní soubory triggerů Zachycení pomocí DB triggerů Zachycení pomocí log souborů Oblast přípravy dat 34 Datové sklady
Extrakce metody odložené extrakce Nezachycují změny při jejich vzniku, ale až při nahrávání se porovnává zdrojová a cílová DB Zachycení pomocí časových razítek Razítky jsou označeny záznamy, které byly přidány nebo editovány ty se pak při nahrávání dat naleznou (problém s mazáním) Zachycení pomocí porovnávání souborů Vytvoří se soubor s kopií dat ve stavu současném a včerejším, pak se soubory porovnají (velmi neefektivní) 35 Datové sklady
Extrakce metody odložené extrakce SŘBD OPERAČNÍ SYSTÉM Zdrojová DB Zdrojová data Dnešní stav Programy pro extrakci Soubory získané z razítek Soubory získané Zachycení porovnáním pomocí časových razítek Programy pro porovnání Zachycení pomocí porovnávání souborů Oblast přípravy dat Včerejší stav 36 Datové sklady
Transformace Cílem je zvýšit kvalitu vstupních dat a zvýšit jejich použitelnost pro cílového uživatele Někdy je kvalita vstupních dat velmi proměnlivá ->čištění dat (odstranění nekvalitních dat) Např. atribut Adresa 3 vs. 1 hodnota Často je potřeba odstranit tzv. anomálie, které v klasických databázích běžně vznikají Příklady anomálií: Přechod z MS-DOSu na Windows např. kódování češtiny Lidský faktor různé překlepy, pravopisné chyby Potřeba rozdělení složených atributů na atomické 37 Datové sklady
Transformace typické úkony Selekce Výběr vhodných atributů pro cílový sklad Rozdělování/spojování Rozdělení záznamu (datum ), spojování více záznamů z různých zdrojů Konverze Konverze záznamů (standardizace různých zdrojů, lepší použitelnost a srozumitelnost) Sumarizace Místo detailních dat je vhodnější je sumarizovat Obohacení Vytvoření lepšího pohledu na data na základě různých zdrojů 38 Datové sklady
Transformace časté problémy Konvence názvů pojmů a objektů Nutné sjednotit terminologii požívanou různými zdroji dat Nejednoznačnost údajů Pohlaví zákazníka (M, muž, Muž), rodné číslo Formáty čísel a textových řetězců Použití různých datových typů pro ukládání čísel Chybějící hodnoty Doplnit, popř. ignorovat nebo označit nějakým příznakem Duplicitní hodnoty Většinou není příliš velký problém je odstranit, někdy je to však časově náročné 39 Datové sklady
Transformace časté problémy Různé peněžní měny Problém vznikne např. při přechodu z CZK na Euro Referenční integrita Neustálé změny v reálném světě zkreslují data např. i po zrušení oddělení firmy zůstanou v DB údaje o jeho zaměstnancích Chybějící datum Časový aspekt je v datových skladech velmi důležitý, ve vstupních datech však čas často chybí často je nutné jej doplnit 40 Datové sklady
Přenos dat Přesun údajů a jejich uložení do tabulek datového skladu Většinou jde o časově náročnou operaci, především u iniciálního přenosu Iniciální nahrávání Nahrávání všech dat do prázdného skladu Inkrementální nahrávání Promítnutí změn v DB do datového skladu (provádí se periodicky) Přepis dat Kompletní smazání obsahu skladu a nahrání aktuálních dat 41 Datové sklady
Přenos dat - módy nahrávání Nahrání (Load) Pokud cílová tabulka obsahuje data, pak jsou smazána a nahrazena aktuálními Přidání (Append) Přidání nových dat ke stávajícím, při duplicitě může uživatel zvolit další postup Destruktivní sloučení Stejné jako přidání, při stejných klíčích se přepíše hodnota daného řádku Konstruktivní sloučení Při stejných klíčích se přidá nový prvek a označí se jako nový, starý v datovém skladu zůstane 42 Datové sklady
Problémy fáze ETL Je nutné zkontrolovat správnost dat v datovém skladu Dochází k chybám na HDD, výpadkům spojení Problémy mohou vzniknout při změně formátu vstupních dat 43 Datové sklady
Shrnutí fáze ETL EXTRAKCE DAT Extrakce z heterogenních a vnějších zdrojů dat INTEGRACE DAT Kombinace dat z různých zdrojů, založeno na principu mapování zdrojů a cílů SUMARIZACE DAT Vytvoření agregací dat, založeno na předdefinovaných procedurách AKTUALIZACE METADAT Ukládání a používání metadat při každé z fází ETL TRANSFORMACE DAT Konverze a změna struktury dat, podle transformačních pravidel ČIŠTĚNÍ DAT Zlepšení kvality dat na základě čistících pravidel INICIÁLNÍ NAHRÁNÍ DAT Natáhnutí velkého objemu vstupních dat do datového skladu DALŠÍ NAHRÁVÁNÍ Periodická aktualizace dat v datovém skladu 44 Datové sklady
Analýza OLAP Definice Schémata Operace 45 Datové sklady
Analýza OLAP Slouží pro zpracování údajů uložených v datovém skladu do podoby pro koncového uživatele, tedy manažera, analytika Definice (E. F. Codd) OLAP je volně definovaný řád principů, které poskytují dimenzionální rámec pro podporu rozhodování Systémy OLAP umožňují pracovníkům přijímajícím rozhodnutí přístup k údajům potřebným na tvorbu rozhodnutí. 46 Datové sklady
Fakta a dimenze Každá OLAP krychle obsahuje 2 typy údajů fakta a dimenze Fakta Největší tabulka v DB, zpravidla jen jedna Obsahuje numerické měrné jednotky obchodování V kombinaci s tabulkami dimenzí tvoří určitá schémata Dimenze Logicky nebo hierarchicky uspořádané údaje Textové popisy obchodování Jsou menší a nemění se tak často Nejčastěji: časové, geografické a produktové dimenze (stromové struktury) 47 Datové sklady
Schémata tabulek dimenzí Hvězdicové schéma (Star schema) Tabulka faktů obsahuje cizí klíče do tabulky dimenzí, ty se vztahují k jejím primárním klíčům Snadno pochopitelné Tabulky dimenzí však nejsou normalizované, je to tedy poměrně pomalé Tabulka dimenzí Tabulka dimenzí Tabulka faktů Tabulka dimenzí 48 Datové sklady Tabulka dimenzí
Schémata tabulek dimenzí Schéma sněhové vločky (snowflake schema) Některé dimenze jsou složeny z mnoha relačně svázaných tabulek Rychlejší zavedení údajů Nižší dotazovací výkon více spojení tabulek Tabulka dimenzí Tabulka dimenzí Tabulka dimenzí Tabulka faktů Tabulka dimenzí 49 Datové sklady
Schémata tabulek dimenzí Model souhvězdí Slouží pro sofistikované aplikace vyžadující více tabulek faktů Sdílení tabulek dimenzí více tabulkami faktů Jde spíše o spojení více hvězdicových schémat do jednoho schématu Tabulka dimenzí Tabulka dimenzí Tabulka faktů Tabulka dimenzí Tabulka faktů Tabulka dimenzí 50 Datové sklady
Základní operace OLAP analýzy Operace Drill-Down (vnoření) a Roll-Up (vynoření) Posuny v hierarchii pro danou dimenzi směrem k detailní úrovni, resp. k obecnější úrovni Operace Roll-Up zahrnuje především sumační operace, drilldown přepočítání hodnot Operace Drill-Across Přechod na jinou hierarchii definovanou nad stejnou dimenzí Operace Drill-Through Přechod na úroveň záznamů v tabulce čtení konkrétních hodnot tabulky faktů. 51 Datové sklady
Základní operace OLAP analýzy Operace Slice & Dice Jde o pohled na kostku pro jednu hodnotu jedné z dimenzí Operace Rotation Umožňuje pohled na kostku z různých úhlů pohledu jde o změnu os datové kostky a tím o změnu výsledku operace slice & dice (viz příklad) 52 Datové sklady
Úložiště multidimenzionálních údajů Relační x Multidimenzionální databázový model MOLAP (multidimenzionální OLAP) Data se získávají z DB nebo datového skladu Ukládají se do vlastních datových struktur Výkon x redundance dat (nároky na prostor) ROLAP (relační databázový OLAP) Údaje získávány z relačních tabulek Uživateli předkládány jako multidimenzionální pohled HOLAP (hybridní OLAP) Údaje v relačních tabulkách Agregace se ukládají do multidimenzionálních struktur DOLAP (desktop OLAP) 53 Datové sklady
Reference Lacko L.: Datové sklady, analýza OLAP a dolování dat, Computer Press, Brno 2003 Bartík V.: Datové sklady přednášky, dostupné na http://www.fit.vutbr.cz/~bartik/prednasky.zip 54 Datové sklady
Děkuji za pozornost 55 Datové sklady