Co je to Datalake
Datalake je dnes moderní slovo, ale představy o tom, co vlastně znamená, mohou být diametrálně odlišné.
V posledních letech se setkáváme s různými názory co je to Datalake. Protože datalake je dnes moderní slovo, dokáží o něm diskutovat IT specialisté stejně tak jako management firmy. Představy o tom, co to znamená, ale mohou být diametrálně odlišné. Od názoru, že datalake je jen chytřejší úložiště, až po názor, že datalake je moderní náhrada datového skladu. O datalaku toho bylo napsáno mnoho, pojďme tedy shrnout fakta.
Tvůrce výrazu datalake je technický ředitel společnosti Pentaho James Dixon. Tento pojem prezentoval na svém blogu v říjnu 2010*, kdy při svém výzkumu okolo Hadoopu poukázal na nedostatky tradiční datové architektury okolo datových skladů a datamartů. Tyto nedostatky formuloval v několika bodech.
- V minulosti bylo standardním způsobem reportování a analýzy dat vybudování datového skladu a datamartů. Jako jedno z tradičních pravidel BI architektury bylo ukládání dat relevantních pro analýzy. Následně pak identifikace nejzajímavějších atributů a jejich agregace do datamartů. Nevýhodou tohoto řešení je, že se zkoumá pouze podmnožina atributů, takže lze odpovědět pouze na předem určené otázky. V datamartech jsou navíc data agregována, takže je ztracen detail z nejnižších úrovní. V budoucnosti vyvstane mnoho neznámých otázek na které tato architektura nebude shopna rychle odpovědět.
- Ve firmách je mnoho datových konzumentů z různých oddělení, oblastí a s různými technickými znalostmi. Pokrýt všechny potřeby tradičním způsobem, například vytvořením universálního datového modelu v dwh, je velmi časově a ekonomicky náročné. Navíc mnoho datových analýz se v budoucnu nebude opakovat nebo budou natolik odlišné, že nemá smysl pro ně dělat datový model.
- Dříve se firmy zabývaly z převážné většiny strukturovanými nebo semistrukturovanými daty a nestrukturovaná data byla opomíjena, přestože je to pro firmu důležitý zdroj informací.
- S přibývajícím časem mají data takový objem, že se technicky a/nebo ekonomicky nevejdou do tradičních relačních databází.
If you think of a datamart as a store of bottled water – cleansed and packaged and structured for easy consumption – the data lake is a large body of water in a more natural state. The contents of the data lake stream in from a source to fill the lake, and various users of the lake can come to examine, dive in, or take samples.
Pokud budete uvažovat o datamartu jako o skladu balené vody – vyčištěné, zabalené a přizpůsobené pro snadnou spotřebu – datatalake je velká vodní plocha v přirozenějším stavu. Obsah datového jezera proudí ze zdrojů, aby naplnil jezero, a různí uživatelé jezera se mohou přijít podívat, ponořit se nebo odebrat vzorky.* James Dixon, CTO, Pentaho (Blog, 2010)
Z původní myšlenky konceptu datalake tedy vyplývá, že filozofie datalake je odlišná od konceptu datového skladu. Do datalaku ukládáme data v originální formě a v nejnižším možném detailu. Datalake podporuje všechny formy dat – strukturovaná, semistrukturovaná i nestrukturovaná. Uložení dat je ekonomicky výhodné. Datalake je založen na Hadoop filozofii a nástrojích. Může sloužit jako zdroj dat pro tradiční datový sklad a vedle datového skladu umožňuje provádění nových typů analytických úloh. Tato definice jasně určovala co to je datalake a jak má být použit.
James Dixon přišel v roce 2015 na svém blogu s případovou studií pro datalake, kde staví datalake do úplně jiné pozice. Základní myšlenka je shromažďování dat ze všech podnikových systémů a všech změn provedených v průběhu času. Tím by vznikla možnost získat stav každého pole (potenciálně) každé obchodní aplikace v podniku napříč časem. Tento stav nazval “Union of the State”. Služba nebo stroj, který by zajišťovali výše zmíněné by se nazýval „Enterprise time machine“. Z toho samozřejmě vyplývají benefity, které můžeme zúročit při trendových, historických, případně prediktivních analýzách, protože máme k dispozici všechny atributy, i ty na první pohled nedůležité. Zároveň zmínil architektonický návrh, jak se tohoto cíle dá dosáhnout.
Návrh je volně přeložen asi takto:
- První krok je zápis aktuálního stavu aplikace do relační nebo No-SQL repository. Tedy snapshot aktuálního stavu. A to pokud možno bez ovlivnění funkce aplikace.
- Další krok je logování všech událostí, které se v aplikaci stanou. Ideálně v reálném čase. Tato data pak uložíme do datalaku.
- Paralelním processingem logů umožníme analytikům dostat se ke stavu všech atributů v určitém čase.
- Výše uvedenou metodu aplikujeme obecně pro všechna podniková data.
* James Dixon, CTO, Pentaho (Blog, 2015)
Touto myšlenkou tak vlastně řekl, že to co dnes běžně děláme v datových skladech, operačních databázích a datahubech by se dalo nahradit novým konceptem využívajícím datalake jako základ. Data bychom nehistorizovali v datových skladech v dimenzionálních modelech. Real time obraz zdrojových databází by nebyl replikován do datahubů a datalake by převzal i funkci operačních databází. Vše by bylo obslouženo masivním paralelním procesingem logů nad datalakem. Tato myšlenka je hodně revoluční, ale řeší jen získání informace pro všechny možné atributy napříč časem, nikoliv však mnoho praktických problémů, které jsou řešeny již řadu let v ověřených konceptech jako jsou ODS, DWH, DATAHUB. Naopak staví IT techniky před stejný, mnohdy vyřešený, problém, který budou muset řešit znovu pomocí nových technologií a nového konceptu. V průběhu času se ukázalo, že mnoho IT architektů dalo průchod své fantazii a začalo datalake implementovat do svých řešení velmi rozdílnými způsoby a začali datalakem nazývat i to, co je spíše „koncept postavený nad datalakem“. Kdybychom se totiž do detailu zaměřili na slova Jamese Dixona, tak do roku 2015 je datalake výkonné analytické úložiště postavené na hadoopu, do kterého ukládáme všechny možné formáty dat. Od 2015 je to navíc úložiště, které je součástí konceptu „Enterprise time machine“, kam ukládáme logy změn ERP systémů. Dokonce do datalaku neukládáme ani iniciální snímek ERP systému, ten by podle jeho návrhu měl být uložen v klasické relační databázi. Je to tedy pořád jen staré známé úložiště postavené na hadoopu, nebo je to už něco víc, co je součástí nových inovativních konceptů? V úvodu článku jsem se zmiňoval, že datalake je někdy chápán jako moderní náhrada datového skladu.
V roce 2020 firma Databricks představila nový koncept architektury postavený na jejích produktech a současně na datalaku. Tento koncept je nazván datalakehouse. Vychází ze spojení konceptu datového skladu, datalaku a částečně i operační databáze. Celá architektura je postavena na techologiích jako jsou Spark, Hadoop a kobinaci dalších cloudových nástrojů. Všecha data jsou uložena a zprocesována na jednom místě v datalaku. Takto postavený koncept trochu připomíná dříve zmíňený „Enterprise time machine“, tedy možností analýz napříč časem a v reálném čase a zároveň přidává vrstvy podobné klasickému datovému skladu a datamartům. Pojem datalakehouse je dnes napříč firmami marketingově prezentován jako moderní náhrada za datový sklad.
Datalake dnes
Definice datalaku stále není přesně specifikována. Různé konzultační firmy a různé společnosti mají na svých stránkách různé definice. Datalake je také velmi často spojen s interním marketingem a je prezentován jako příležitost začít tam, kde například selhal projekt DWH. Přesto budou mít koncepty jako je DWH či ODS stále místo vedle datalaku a budou plnit svou funkci. Občas je také pojem datalake používán mylně ve smyslu „pojďme zmigrovat na cloud“. To může být spojeno s tím, že dnes máme více možností implementace. Technicky můžeme postavit datalake buď na Apachee Hadoop nebo můžeme zvolit jednu z dostupných cloudových služeb jako jsou například Microsof Azure Data Lake, AWS S3 nebo Google Cloud Storage.
Uvěďme tedy nejběžnější použití datalaku v praxi:
- Samostatné analytické úložiště, kde si datoví vědci hrají s daty. Toto použití je nejvíce podobné původnímu záměru ukládat do datalaku různá data v různých formátech a poskytnout datovým vědcům prostor pro big data analýzy.
- Podpora dat IoT. Zpracování a analýza datových streamů. Opět zcela splňuje původní záměr. Data z IoT zařízení jsou omezeně strukturovaná, někdy vůbec. V závisloti na charakteru IoT zařízení může být zpracováno a uloženo obří množství dat s velmi vysokou granularitou. Datalake například v kombinaci se Spark pak umožňuje tato data efektivně analyzovat.
- „Archivace dat z DWH nebo Datamartů (Hadumping“). Je to velice jednoduchá a efektivní metoda archivace dat, kdy ukládáme archivní data z ERP systému nebo z datového skladu do datalaku jako alternativu k zálohování dat na pásky.
- Předzpracování dat pro DWH. Funkcionalita je podobná ETL procesu v DWH konceptu. Data jsou nejprve uložena v datalaku a následně nad těmito daty dochází k jejich čištění, agregaci a tranformaci. Výsledek je uložen opět v datalaku a data pak slouží jako zdroj pro plnění DWH, případně jiných systémů.
- Doplnění funkce relačních databází. Kombinace historických dat a dat v reálném čase nebo kombinace strukturovaných a nestrukturovaných dat.
Možná se během budoucích let dočkáme nějaké přesnější specifikace, aby hned všem bylo jasné co je to datalake a jaký je rozdíl mezi datalakem a konceptem postaveným nad datalakem. Možná se tento pojem specifikuje sám, právě nejběžnějším užitím datalaku v praxi. Do doby, než to nastane, bude vždy nutné si ujasnit, jak je v konkrétním projektu datalake použit a jakou hraje roli, aby zúčastněné osoby měly na konkrétní datalake stejný náhled. Ať už je to jen hloupé úložiště, nebo datový sklad postavený nad datalakem.
Zdroje:
- https://jamesdixon.wordpress.com/2010/10/14/pentaho-hadoop-and-data-lakes
- https://jamesdixon.wordpress.com/2015/01/22/union-of-the-state-a-data-lake-use-case/
- https://www.forbes.com/sites/danwoods/2015/01/26/james-dixon-imagines-a-data-lake-that-matters/?sh=3c0db154fdbe
- TDWI Munchen 2021 konference – Is there life beyond hadoop – should data lakes be drained? by Barry Devlin 23.6.2021
- https://databricks.com https://databricks.com/p/webinar/lakehouse-architecture-from-vision-to-reality
- youtube: Making Apache Spark™ Better with Delta Lake – https://www.youtube.com/watch?v=LJtShrQqYZY
Autor: Michal Machata