Petr Jaša
Obsah
Úvod do problematiky
Datový sklad
Důvody pro budování datových skladů Definice, znaky Schéma vazeb
Proces ETL
Data vs. informace Operační vs. analytická databáze Relační vs. multidimenzionální model
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
Znalosti
Data, která pro nás mají smysl a přínos
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:
Informace Data
Business Inteligence
Moudrost
Informace
Surové hodnoty
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
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
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
Předem jsou provedeny a uloženy opakující se výpočty
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) Produkt Region
Region
Čas
Čas
Analýza údajů pro určitý produkt 8
Produkt
Produkt
Analýza pro určité časové období
Region
Čas
Analýza údajů podle regionálních kritérií Datové sklady
Nevýhody transakčních DB pro analýzy
Primárně určené pro ukládání operačních dat
Dosahují vysokých výkonů při transakcích online
Bankovní operace, skladové hospodářství, mzdy, fakturace, … 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
Degradace výpočetního výkonu databázového stroje
Vysoká časová složitost i relativně jednoduché analýzy 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
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í
Supermarkety, banky, mobilní operátoři, podnikové systémy, …
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ě
Definice Billa Inmona:
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 „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
Každá klíčová struktura v datovém skladu
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) 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í
Výdělečnost linek Správa zisků
19
Výroba
Detekce podvodů Odhad rizik
Aerolinie
Služby
Redukce cen Správa logistiky Správa majetku Správa prostředků
Vláda
Kontrola cen Plánování lidských zdrojů
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 Předání informace
Externí
Zdrojová data Management & Správa
Datový sklad
Multidimenz. DB
Interní
(DBMS)
Produkční
Metadata Data Mining
Archivní
OLAP
Místo přípravy dat
Datové trhy Reports/Dotazy
Získání dat 21
Uložení dat
Datové sklady
Získání informací
Zdrojová data
Produkční data
Interní data
Data uložená v privátních souborech (zpravidla XLS) zaměstnanců organizace
Archivní data
Data získaná z různých operačních DB podniku pomocí jednoznačných dotazů
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
24
Relační DB (E-R model) Datové trhy
Datové sklady
Relační DB (dimenzionální model)
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
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
Schéma, dimenze, hierarchie, umístění a obsah datových trhů
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 Zdrojová DB OPERAČNÍ SYSTÉM
log soubory
Zdrojová data
Triggery
Zachycení pomocí log souborů
Zachycení Soubory pomocí generované DB aplikací
Výstupní soubory triggerů
Zachycení pomocí DB triggerů
Oblast přípravy dat
aplikací 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 Zdrojová DB OPERAČNÍ SYSTÉM
Zdrojová data
Včerejší stav
Programy pro extrakci
Soubory získané z razítek 36
Dnešní stav
Programy pro porovnání
Soubory Zachycení získané pomocí porovnáním porovnávání souborů
Zachycení pomocí časových razítek
Oblast přípravy dat 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)
Často je potřeba odstranit tzv. „anomálie“, které v klasických databázích běžně vznikají Příklady anomálií:
Např. atribut Adresa – 3 vs. 1 hodnota
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
Rozdělování/spojování
Konverze záznamů (standardizace různých zdrojů, lepší použitelnost a srozumitelnost)
Sumarizace
Rozdělení záznamu (datum…), spojování více záznamů z různých zdrojů
Konverze
Výběr vhodných atributů pro cílový sklad
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ů
Nejednoznačnost údajů
Použití různých datových typů pro ukládání čísel
Chybějící hodnoty
Pohlaví zákazníka (M, muž, Muž), rodné číslo
Formáty čísel a textových řetězců
Nutné sjednotit terminologii požívanou různými zdroji dat
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
Referenční integrita
Problém vznikne např. při přechodu z CZK na Euro 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í
Inkrementální nahrávání
Nahrávání všech dat do prázdného skladu 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)
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í
Pokud cílová tabulka obsahuje data, pak jsou smazána a nahrazena aktuálními
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
TRANSFORMACE DAT Konverze a změna struktury dat, podle transformačních pravidel
INTEGRACE DAT Kombinace dat z různých zdrojů, založeno na principu mapování zdrojů a cílů
ČIŠTĚNÍ DAT Zlepšení kvality dat na základě čistících pravidel
SUMARIZACE DAT Vytvoření agregací dat, založeno na předdefinovaných procedurách
INICIÁLNÍ NAHRÁNÍ DAT Natáhnutí velkého objemu vstupních dat do datového skladu
AKTUALIZACE METADAT Ukládání a používání metadat při každé z fází ETL
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
Tabulka dimenzí Datové sklady
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í 49
Tabulka dimenzí
Tabulka faktů 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í 50
Tabulka dimenzí
Tabulka faktů Datové sklady
Základní operace OLAP analýzy
Operace Drill-Down (vnoření) a Roll-Up (vynoření)
Operace Drill-Across
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… 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)
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)
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)
Ú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