Databáze jsou typicky klasifikované jako relační (SQL) nebo NoSQL, transakční (OLTP), analytické (OLAP) nebo hybridní (HTAP). Databáze pro jednotlivá oddělení a specializované podoby byly původně považované za obrovské zlepšení firemní praxe, ale následně se staly terčem posměšků jako izolované ostrovy.
Pokusy o vytvoření jednotných databází pro všechna data v rámci podniku jsou označovány jako datová jezera, pokud se data ponechají v původním formátu, nebo jako datové sklady, pokud se údaje převedou do společného formátu a schématu. Podmnožiny datového skladu (data warehouse) se pak nazývají datová tržiště (data mart).
V podstatě lze říci, že datový sklad je analytická databáze, obvykle relační, která je vytvořená ze dvou nebo více zdrojů dat, typicky pro ukládání historických dat, která mohou dosahovat velikosti petabajtů.
Datové sklady mají často významné výpočetní a paměťové prostředky pro spouštění komplikovaných dotazů a generování reportů. Často slouží jako zdroje dat pro systémy BI (Business Intelligence) a strojové učení.
Proč používat datový sklad?
Jednou z hlavních motivací k použití podnikového datového skladu (EDW, Enterprise Data Warehouse), je to, že provozní (OLTP) databáze omezuje velikost a druh indexů, které můžete vytvořit, a proto zpomaluje analytické dotazy.
Jakmile zkopírujete data do datového skladu, můžete pro dobrý výkon analytických dotazů indexovat vše, co vás v datovém skladu zajímá, aniž by to ovlivnilo výkon zápisu databáze OLTP.
Dalším důvodem k použití podnikových datových skladů je umožnit spojení dat z více zdrojů pro analýzu. Například vaše prodejní aplikace OLTP pravděpodobně nemusí vědět nic o počasí v prodejních lokalitách, ale vaše předpovědi prodeje by mohly taková data dobře využít.
Pokud přidáte data o historii počasí do vašeho datového skladu, může být snadné je zohlednit ve vašich modelech historických údajů o prodejích.
Datový sklad vs. datové jezero
Datová jezera, která ukládají soubory dat v nativním formátu, jsou v podstatě „schéma při čtení“, což znamená, že jakákoli aplikace, která čte data z jezera, si bude muset zavést vlastní typy dat a vztahy mezi těmito daty.
Datové sklady jsou naopak „schéma při zápisu,“ což znamená, že datové typy, indexy a vztahy jsou zavedeny již v datech tak, jak jsou data uložena v EDW.
„Schéma při čtení“ je dobré pro data, která mohou být použitá v několika kontextech, a představuje malé riziko ztráty dat, přestože vzniká nebezpečí, že data se nikdy nepoužijí. (Qubole, dodavatel cloudových nástrojů datového skladu pro datová jezera, odhaduje, že 90 % dat ve většině datových jezer je neaktivních.).
„Schéma při zápisu“ je dobré pro data, která mají specifický účel, a je dobré pro data, která musí mít správně vytvořený vztah k datům z jiných zdrojů. Nebezpečím je, že nesprávně formátovaná data mohou být vyřazená při importu, protože nedochází k jejich správné konverzi na požadovaný typ.
Datový sklad vs. data mart
Datové sklady obsahují celopodniková data, zatímco datová tržiště obsahují data orientovaná na konkrétní firemní záležitosti. Datová tržiště mohou být závislá na datovém skladu, nezávislá na datovém skladu (tj. odvozovaná z provozní databáze či externích zdrojů), nebo mohou být hybridem obou zmíněných variant.
Důvody pro vytvoření data martu zahrnují použití méně místa, rychlejší odpovědi na dotazy a menší náklady na provoz než provoz plného datového skladu. Datové tržiště často obsahuje shrnuté a vybrané údaje namísto nebo navíc k podrobným údajům nalezeným v datovém skladu.
Architektury datového skladu
Obecně mají datové sklady vrstvenou architekturu: zdrojová data, staging databáze, nástroje ETL (extract, transform, load) nebo ELT (extract, load, transform), řádné úložiště dat a nástroje pro prezentaci dat. Každá vrstva slouží jinému účelu.
Zdrojová data často zahrnují provozní databáze z prodeje, marketingu a dalších firemních oddělení. Mohou také zahrnovat sociální sítě a externí data, jako jsou průzkumy a demografie.
Staging vrstva ukládá data získaná z datových zdrojů. Pokud je zdroj nestrukturovaný, jako je například text ze sociálních sítí, je to místo, kde je schéma uložené.
V tomto místě se také realizují kontroly kvality, aby se odstranila nedostatečně kvalitní data a opravily běžné chyby. Nástroje ETL nasají data, vykonají jakékoli požadované mapování a transformace a data vloží do vrstvy úložiště dat.
Nástroje ELT nejprve data uloží a transformují je až později. Při použití nástrojů ELT můžete také použít datové jezero a přeskočit tradiční staging vrstvu.
Vrstva uložení dat datového skladu obsahuje vyčištěná, transformovaná data připravená pro analýzu. Často to bude řádkově orientované relační úložiště, ale může mít také sloupcovou orientaci nebo může mít invertovaný seznam pro fulltextové vyhledávání.
Datové sklady mají často mnohem více indexů než provozní datová úložiště, aby se analytické dotazy urychlily.
Prezentace dat z datového skladu se často provádí spuštěním dotazů SQL, které mohou být vytvořeny za pomoci nástroje s grafickým uživatelským rozhraním. Výstup dotazů SQL se používá k vytvoření tabulek, grafů, přehledových panelů, reportů a prognóz, často s pomocí nástrojů BI.
Datové sklady začaly nedávno podporovat strojové učení pro zlepšení kvality modelů a prognóz. Např. Google BigQuery má nyní SQL příkazy podporující modely lineární regrese pro prognózy a modely binární logistické regrese pro klasifikaci.
Některé datové sklady dokonce integrovaly knihovny pro hluboké učení a nástroje pro automatizované strojové učení (AutoML).
Datové sklady v cloudu vs. ve vlastní infrastruktuře
Datový sklad může být implementován ve vlastní infrastruktuře, v cloudu, nebo jako hybridní. Dříve byly datové sklady vždy ve vlastní infrastruktuře, ale investiční náklady a limity škálovatelnosti serverů ve vlastní infrastruktuře datových center byly někdy problémem.
EDW instalace vzrostly, když dodavatelé začali nabízet appliance datových skladů. Nyní je však trendem přesunout vše nebo část datového skladu do cloudu, aby se využila inherentní škálovatelnost cloudu a snadnost připojení k dalším cloudovým službám.
Nevýhodou přesunu petabajtů dat do cloudu jsou samozřejmě provozní náklady, a to jak za ukládání dat do cloudu, tak i za cloudové výpočty datového skladu a za paměťové prostředky.
Mohli byste si myslet, že by velkou bariérou mohla být doba potřebná k odeslání petabajtů dat do cloudu, ale dodavatelé hyperškálovatelného cloudu nabízejí služby přenosu s vysokou rychlostí využívající disky.
Návrh datového skladu shora dolů vs. zdola nahoru
Existují dva hlavní přístupy, jak navrhnout datový sklad. Rozdíl mezi nimi je dán směrem toku dat mezi datovým skladem a datovými tržišti.
Design shora dolů (známý jako přístup Inman) zachází s datovým skladem jako s centralizovaným úložištěm dat pro celý podnik. Datová tržiště jsou odvozována z datového skladu.
Design zdola nahoru (známý jako přístup Kimball) používá datová tržiště jako primární a kombinuje je do datového skladu. Podle definice Kimball je datový sklad „kopie transakčních dat specificky strukturovaná pro dotazy a analýzy.“
Aplikace EDW pojišťoven a výrobních provozů mají tendenci upřednostňovat metodiku návrhu Inman shora dolů. Marketing má naopak tendenci upřednostňovat přístup Kimball.
Datové jezero, data mart nebo datový sklad?
V konečném důsledku jsou všechna rozhodnutí spojená s podnikovými datovými sklady dána cíli společnosti, jejími prostředky a rozpočtem. První otázkou je, zda datový sklad vůbec potřebujete.
Pokud ano, tak je dalším úkolem identifikovat zdroje dat, jejich velikost, jejich současnou rychlost růstu, a to, co nyní děláte, abyste je využili a analyzovali.
Poté můžete začít experimentovat s datovými jezery, datovými tržišti (data mart) a datovými sklady (data warehouse), abyste zjistili, co je pro vás největším přínosem.
Doporučuje se, abyste si sami udělali ověření konceptu s pomocí malé podmnožiny dat hostované na existujícím hardwaru vlastní infrastruktury nebo na malé cloudové instalaci. Jakmile si ověříte vhodnost návrhu a vznik výhod pro organizaci, můžete směřovat k rozšíření na plnohodnotnou podobu s plnou podporou vedení firmy.
Jak začít s analýzou dat
Data se stávají středobodem firemního fungování – a práce s nimi postupně stala součástí většiny profesí. A zatímco proces, jak přistupovat k datům, je zvládnutý už spoustu let, jejich analytický rozbor býval donedávna výsadou nejvyšších manažerů nebo velmi specifických oborů.
Současná podoba analytických systémů však přístup k informacím zpřístupňuje mnohem širšímu publiku. Děje se tak nejen díky výkonnějším systémům, které samotnou analýzu dat provádějí, ale také díky novému pojetí zpracování, především zapojením okrajových (edge) či cloudových řešení nebo podpoře zařízení internetu věcí.
To, jak relevantní jsou data, jež z analytického řešení získáte, však závisí na dodržení několika parametrů. V první řadě jde o získávání dat a jejich následné zpracování.
Údaje do analytických systémů totiž přicházejí z různých zdrojů (strukturovaných i nestrukturovaných) a s odlišnou mírou přesnosti. Pro dosažení co nejlepších výsledků je tedy nutné tato data nejdříve tzv. vyčistit, aby se pracovalo jen s těmi, které dávají opravdu smysl.
Tento krok je důležitý zejména tehdy, pokud pracujete se systémy umělé inteligence. Ty by totiž v případně chybných či neúplných vstupních dat mohly přinášet nevhodné předpojatosti nebo falešné výsledky, a kvůli učícímu se scénáři i v případě zpracovávání v budoucnu.
Další fáze pak spočívá v integraci všech dostupných dat pro potřeby analýzy, protože právě různé korelace přinášejí ty nejlepší výsledky. K tomu namísto použití samostatných databází či datových sil mohou nejlépe posloužit datové platformy, které dokážou sloučit rozličné datové zdroje do jednoho místa.
A pak tu samozřejmě jsou samotné analytické platformy. Pro běžné uživatele bez hlubší znalosti datové vědy jsou určené především samoobslužné nástroje s podporou vizualizace nalezených informací – díky jednoduchému uživatelskému rozhraní dovolují využít analytiku skutečně kterémukoliv zaměstnanci. Kvůli zmíněné jednoduchosti to však vyžaduje předchozí pečlivou přípravu dat.
Pro pokročilejší analytické potřeby jsou určené analytické platformy, které nabízejí skutečně velmi širokou škálu funkcí – počínaje automatizací a konče podporou umělé inteligence či strojového učení. Nabízejí také podporu pro velice podrobné nastavení díky jazykům Python nebo R, které mohou mnoho analytických procesů výrazně zjednodušit.