Budování datového skladu a Data Lake v AWS
Datový sklad. Datové jezero. Dům u jezera. Pokud s vámi žádné z těchto slov alespoň trochu nerezonuje, pak vaše práce zjevně s daty nesouvisí.
To by však byl dost nereálný předpoklad, protože dnes se zdá, že vše souvisí s daty. Nebo jak to lídři korporací rádi popisují:
- Data-centric a Data-driven business.
- Data kdekoli, kdykoli a jakkoli.
Nejdůležitější aktivum
Zdá se, že data se stala nejcennějším aktivem stále více společností. Pamatuji si, že velké korporace vždy generovaly spoustu dat, každý měsíc myslím terabajty nových dat. To bylo ještě před 10-15 lety. Nyní však můžete snadno vygenerovat takové množství dat během několika dní. Člověk by se zeptal, jestli je to opravdu nutné, i když je to nějaký obsah, který kdokoli použije. A ano, to rozhodně není 😃.
Ne veškerý obsah bude k ničemu a některé části ani jednou. Často jsem byl v první linii svědkem toho, jak společnosti generovaly obrovské množství dat, která se po úspěšném načtení stala nepoužitelnou.
Ale to už není aktuální. Úložiště dat – nyní v cloudu – je levné, zdroje dat exponenciálně rostou a dnes nikdo nedokáže předpovědět, co bude potřebovat o rok později, jakmile budou do systému integrovány nové služby. V tomto okamžiku mohou být i stará data cenná.
Strategií je proto ukládat co nejvíce dat. Ale také v co nejefektivnější formě. Aby bylo možné data nejen efektivně ukládat, ale také je vyhledávat, znovu používat nebo dále transformovat a distribuovat.
Pojďme se podívat na tři nativní způsoby, jak toho v AWS dosáhnout:
- Databáze Athena – levný a efektivní, i když jednoduchý způsob, jak vytvořit datové jezero v cloudu.
- Redshift Database – seriózní cloudová verze datového skladu, která má potenciál nahradit většinu současných on-premise řešení a nedokáže dohnat exponenciální nárůst dat.
- Databricks – kombinace datového jezera a datového skladu do jediného řešení s nějakým bonusem navíc.
Data Lake od AWS Athena
Zdroj: aws.amazon.com
Datové jezero je místo, kde můžete rychle ukládat příchozí data v nestrukturované, polostrukturované nebo strukturované podobě. Zároveň neočekáváte, že se tato data po uložení změní. Místo toho chcete, aby byly co nejvíce atomické a neměnné. Jen tak bude zajištěn největší potenciál pro opětovné použití v pozdějších fázích. Pokud byste o tuto atomickou vlastnost dat přišli hned po prvním načtení do datového jezera, neexistuje způsob, jak tyto ztracené informace získat zpět.
AWS Athena je databáze s úložištěm přímo na S3 buckety a bez serverových clusterů běžících na pozadí. To znamená, že jde o opravdu levnou službu datového jezera. Organizaci dat udržují formáty strukturovaných souborů, jako jsou parkety nebo soubory CSV (comma-separated value). Kbelík S3 uchovává soubory a Athena na ně odkazuje, kdykoli procesy vyberou data z databáze.
Athena nepodporuje různé funkce, které jsou jinak považovány za standardní, jako jsou aktualizační příkazy. To je důvod, proč se na Athenu musíte dívat jako na velmi jednoduchou možnost. Na druhou stranu vám to pomůže zabránit úpravám vašeho atomového datového jezera jednoduše proto, že nemůžete😐.
Podporuje indexování a dělení, díky čemuž je použitelný pro efektivní provádění výběrových příkazů a vytváření logicky oddělených částí dat (například oddělených sloupci data nebo klíče). Může také velmi snadno horizontálně škálovat, protože je to stejně složité jako přidávání nových bucketů do infrastruktury.
Výhody a nevýhody
Výhody, které je třeba zvážit:
- Nejvýznamnější výhodou je skutečnost, že Athena je levná (skládající se pouze z bucketů S3 a nákladů na použití SQL podle použití). Pokud chcete v AWS vybudovat cenově dostupné datové jezero, je to ono.
- Jako nativní služba se Athena může snadno integrovat s dalšími užitečnými službami AWS, jako je Amazon QuickSight pro vizualizaci dat nebo AWS Glue Data Catalog, a vytvořit tak trvalá strukturovaná metadata.
- Nejlepší pro spouštění ad hoc dotazů na velké množství strukturovaných nebo nestrukturovaných dat bez udržování celé infrastruktury kolem.
Nevýhody, které je třeba zvážit:
- Athena není zvláště účinná při rychlém vracení složitých výběrových dotazů, zejména pokud dotazy neodpovídají předpokladům datového modelu, jak jste navrhli požadovat data z datového jezera.
- Díky tomu je také méně flexibilní s ohledem na potenciální budoucí změny v datovém modelu.
- Athena po vybalení nepodporuje žádné další pokročilé funkce, a pokud chcete, aby součástí služby bylo něco konkrétního, musíte to implementovat.
- Pokud očekáváte využití datového jezera v nějaké pokročilejší prezentační vrstvě, často je jedinou možností zkombinovat to s jinou databázovou službou, která je pro tento účel vhodnější, jako je AWS Aurora nebo AWS Dynamo DB.
Účel a případ použití v reálném světě
Zvolte Athenu, pokud je cílem vytvoření jednoduchého datového jezera bez jakýchkoli pokročilých funkcí typu datového skladu. Pokud tedy například neočekáváte, že se nad datovým jezerem budou pravidelně spouštět seriózní analytické dotazy s vysokým výkonem. Místo toho je prioritou mít fond neměnných dat se snadným rozšířením úložiště dat.
Už se nemusíte příliš obávat nedostatku místa. Dokonce i náklady na úložiště bucket S3 lze dále snížit implementací politiky životního cyklu dat. To v zásadě znamená přesouvání dat přes různé typy bucketů S3, zaměřené spíše na archivační účely s pomalejšími dobami návratu, ale nižšími náklady.
Skvělá funkce Atheny je, že automaticky vytváří soubor skládající se z dat, která jsou součástí výsledku vašeho SQL dotazu. Tento soubor pak můžete vzít a použít pro jakýkoli účel. Je to tedy dobrá volba, pokud máte mnoho služeb lambda, které dále zpracovávají data ve více krocích. Každý výsledek lambda bude automaticky výsledkem ve strukturovaném formátu souboru jako vstup připravený pro následné zpracování.
Athena je dobrou volbou v situacích, kdy do vaší cloudové infrastruktury přichází velké množství nezpracovaných dat a vy je nemusíte zpracovávat v době načítání. To znamená, že vše, co potřebujete, je rychlé úložiště v cloudu ve snadno pochopitelné struktuře.
Dalším případem použití by bylo vytvoření vyhrazeného prostoru pro účely archivace dat pro jinou službu. V takovém případě by se Athena DB stala levným zálohovacím místem pro všechna data, která právě nepotřebujete, ale v budoucnu se to může změnit. V tuto chvíli data pouze zpracujete a odešlete dále.
Datový sklad od AWS Redshift
Zdroj: aws.amazon.com
Datový sklad je místo, kde jsou data uložena velmi strukturovaným způsobem. Snadné nakládání a vyjímání. Záměrem je spouštět velké množství velmi složitých dotazů, spojujících mnoho tabulek pomocí složitých spojení. K výpočtu různých statistik nad existujícími daty jsou k dispozici různé analytické funkce. Konečným cílem je extrahovat budoucí předpovědi a fakta, které budou využity v budoucím podnikání, pomocí existujících dat.
Redshift je plnohodnotný systém datového skladu. S clusterovými servery, které lze vyladit a škálovat – horizontálně i vertikálně, a databázovým úložným systémem optimalizovaným pro rychlou návratnost komplexních dotazů. Ačkoli dnes můžete Redshift spustit i v režimu bez serveru. Na S3 ani nic podobného nejsou žádné soubory. Jedná se o standardní databázový klastrový server s vlastním formátem úložiště.
Má nástroje pro monitorování výkonu hned po vybalení a vedle přizpůsobitelných metrik řídicího panelu, které můžete použít a sledovat, abyste doladili výkon pro svůj případ použití. Administrace je také přístupná přes samostatné dashboardy. Pochopení všech možných funkcí a nastavení a toho, jak ovlivňují cluster, vyžaduje určité úsilí. Přesto to není nikde tak složité, jako bývala administrace serverů Oracle v případě on-premise řešení.
Přestože v Redshift existují různé limity AWS, které stanovují určité hranice toho, jak jej používat každý den (například pevné limity na množství souběžných aktivních uživatelů nebo relací v jednom databázovém clusteru), skutečnost, že operace jsou provedený opravdu rychle pomáhá tyto limity do určité míry obejít.
Výhody a nevýhody
Výhody, které je třeba zvážit:
- Nativní služba cloudového datového skladu AWS, kterou lze snadno integrovat s dalšími službami.
- Centrální místo pro ukládání, monitorování a přijímání různých typů zdrojů dat z velmi odlišných zdrojových systémů.
- Pokud jste někdy chtěli mít datový sklad bez serveru bez infrastruktury pro jeho údržbu, nyní můžete.
- Optimalizováno pro vysoce výkonnou analýzu a vytváření sestav. Na rozdíl od řešení datového jezera existuje silný relační datový model pro ukládání všech příchozích dat.
- Databázový engine Redshift pochází z PostgreSQL, což zajišťuje vysokou kompatibilitu s ostatními databázovými systémy.
- Velmi užitečné příkazy COPY a UNLOAD pro načítání a vyjímání dat z a do bucketů S3.
Nevýhody, které je třeba zvážit:
- Redshift nepodporuje velké množství souběžných aktivních relací. Relace budou pozastaveny a zpracovány postupně. I když to ve většině případů nemusí být problém, protože operace jsou opravdu rychlé, je to limitující faktor v systémech s mnoha aktivními uživateli.
- Přestože Redshift podporuje mnoho funkcí dříve známých z vyspělých systémů Oracle, stále není na stejné úrovni. Některé z očekávaných funkcí tam prostě nemusí být (jako spouštěče DB). Nebo je Redshift podporuje v poměrně omezené formě (jako zhmotněné pohledy).
- Kdykoli potřebujete pokročilejší zakázku zpracování dat, musíte ji vytvořit od začátku. Většinu času používejte kódový jazyk Python nebo Javascript. Není to tak přirozené jako PL/SQL v případě systému Oracle, kde i funkce a procedury používají jazyk velmi podobný SQL dotazům.
Účel a případ použití v reálném světě
Redshift může být vaším centrálním úložištěm pro všechny různé zdroje dat, které dříve žily mimo cloud. Je platnou náhradou za předchozí řešení datových skladů Oracle. Vzhledem k tomu, že jde také o relační databázi, je migrace z Oracle dokonce docela jednoduchá operace.
Pokud máte na mnoha místech nějaká existující řešení datového skladu, která nejsou skutečně jednotná, pokud jde o přístup, strukturu nebo předdefinovanou sadu běžných procesů, které mají být spuštěny nad daty, Redshift je skvělá volba.
Jen vám poskytne příležitost sloučit všechny různé systémy datových skladů z různých míst a zemí pod jednu střechu. Stále je můžete oddělit podle zemí, aby data zůstala v bezpečí a přístupná pouze těm, kteří je potřebují. Zároveň vám ale umožní vybudovat jednotné skladové řešení pokrývající všechna firemní data.
Jiný případ může být, pokud je cílem vybudovat platformu datového skladu s rozsáhlou podporou samoobsluhy. Můžete to chápat jako soubor zpracování, který si mohou jednotliví uživatelé systému sestavit. Zároveň ale nikdy nejsou součástí řešení společné platformy. To znamená, že takové služby zůstanou přístupné pouze tvůrci nebo skupině lidí, kterou vytvořil. Žádným způsobem neovlivní zbytek uživatelů.
Podívejte se na naše srovnání mezi Datalake a Datawarehouse.
Lakehouse od Databricks na AWS
Zdroj: databricks.com
Lakehouse je termín, který je skutečně vázán na službu Databricks. I když se nejedná o nativní službu AWS, žije a funguje v rámci ekosystému AWS velmi pěkně a poskytuje různé možnosti, jak se propojit a integrovat s dalšími službami AWS.
Databricks mají za cíl propojit (dříve) velmi odlišné oblasti:
- Řešení pro ukládání datového jezera nestrukturovaných, polostrukturovaných a strukturovaných dat.
- Řešení pro strukturovaná a rychle přístupná data z datového skladu (také nazývaná Delta Lake).
- Řešení podporující analýzu a výpočetní strojové učení přes datové jezero.
- Správa dat pro všechny výše uvedené oblasti s centralizovanou správou a hotovými nástroji pro podporu produktivity pro různé typy vývojářů a uživatelů.
Je to běžná platforma, kterou mohou datoví inženýři, vývojáři SQL a datoví vědci strojového učení používat současně. Každá ze skupin má také sadu nástrojů, které může použít k plnění svých úkolů.
Databricks se tedy zaměřuje na univerzální řešení a snaží se spojit výhody datového jezera a datového skladu do jediného řešení. Kromě toho poskytuje nástroje pro testování a spouštění modelů strojového učení přímo nad již vytvořenými datovými úložišti.
Výhody a nevýhody
Výhody, které je třeba zvážit:
- Databricks je vysoce škálovatelná datová platforma. Škáluje se v závislosti na velikosti zátěže, a to dokonce automaticky.
- Je to prostředí pro spolupráci pro datové vědce, datové inženýry a obchodní analytiky. Možnost dělat toto vše ve stejném prostoru a společně je velkou výhodou. Nejen z organizačního hlediska, ale také pomáhá ušetřit další náklady, které jsou jinak nutné pro samostatná prostředí.
- AWS Databricks se hladce integruje s dalšími službami AWS, jako jsou Amazon S3, Amazon Redshift a Amazon EMR. Uživatelé tak mohou snadno přenášet data mezi službami a využívat celou škálu cloudových služeb AWS.
Nevýhody, které je třeba zvážit:
- Databricks může být složité nastavovat a spravovat, zejména pro uživatele, kteří jsou se zpracováním velkých dat noví. Vyžaduje to značnou úroveň technických znalostí, abyste z platformy dostali maximum.
- Zatímco Databricks je nákladově efektivní, pokud jde o jeho průběžný cenový model, může být stále drahý pro rozsáhlé projekty zpracování dat. Náklady na používání platformy se mohou rychle sčítat, zejména pokud uživatelé potřebují rozšířit své zdroje.
- Databricks poskytuje řadu předpřipravených nástrojů a šablon, ale to může být také omezení pro uživatele, kteří potřebují více možností přizpůsobení. Platforma nemusí být vhodná pro uživatele, kteří vyžadují větší flexibilitu a kontrolu nad svými pracovními postupy zpracování velkých dat.
Účel a případ použití v reálném světě
AWS Databricks se nejlépe hodí pro velké korporace s velmi velkým množstvím dat. Zde může pokrýt požadavek na načítání a kontextualizaci různých datových zdrojů z různých externích systémů.
Často je požadavkem poskytovat data v reálném čase. To znamená, že od okamžiku, kdy se data objeví ve zdrojovém systému, procesy okamžitě nebo s minimálním zpožděním vyzvednou a zpracují a uloží data do Databricks. Pokud je zpoždění něco nad minutu, považuje se to za zpracování téměř v reálném čase. V každém případě jsou oba scénáře často dosažitelné s platformou Databricks. To je způsobeno především velkým množstvím adaptérů a rozhraní v reálném čase, které se připojují k různým dalším nativním službám AWS.
Databricks se také snadno integruje se systémy Informatica ETL. Kdykoli systém organizace již intenzivně využívá ekosystém Informatica, vypadá Databricks jako dobrý kompatibilní doplněk platformy.
Závěrečná slova
Vzhledem k tomu, že objem dat stále exponenciálně roste, je dobré vědět, že existují řešení, která si s tím efektivně poradí. Správa a údržba toho, co bylo kdysi noční můrou, nyní vyžaduje velmi málo administrativní práce. Tým se může soustředit na vytváření hodnoty z dat.
Podle vašich potřeb si stačí vybrat službu, která to zvládne. Zatímco AWS Databricks je něco, čeho se budete muset po rozhodnutí pravděpodobně držet, ostatní alternativy jsou poměrně flexibilnější, i když méně schopné, zejména jejich režimy bez serveru. Později je docela snadné přejít na jiné řešení.