2023-04-27 07:17 Doba čtení: 13 min

Uvolnění síly nástrojů ETL pro AWS

Extrahovat, transformovat a načíst: Co je ETL?

Zkratka ETL reprezentuje proces Extrahování, Transformování a Načítání dat. Jedná se o postup, při kterém se data získávají z různých zdrojů, upravují do podoby vhodné pro cílové systémy a následně ukládají do cílové databáze, datového skladu či datového jezera.

Dříve, zhruba před 15-20 lety, bylo ETL málo známým pojmem. Zakázkové dávkové úlohy běžely na lokálním hardwaru a málokdo plně rozuměl tomu, co ETL vlastně je.

Mnoho projektů nějakou formu ETL využívalo, i když to tak nenazývali. Pokud jsem tehdy vysvětloval návrh zahrnující ETL procesy, připadalo to jako popis něčeho z jiného světa, něčeho neobvyklého.

Situace se však změnila. Dnes je migrace do cloudu prioritou a ETL nástroje hrají strategickou roli v architektuře většiny projektů.

Migrace do cloudu vyžaduje přesun dat z lokálních systémů do cloudových databází v podobě kompatibilní s cloudovou architekturou. A právě toto je hlavním úkolem ETL nástrojů.

Historický vývoj ETL a jeho současný význam

Zdroj: aws.amazon.com

Hlavní funkce ETL zůstávají neměnné.

ETL nástroje získávají data z různých zdrojů, jako jsou databáze, soubory, webové služby nebo cloudové aplikace.

Dříve se často pracovalo se soubory v Unixových systémech, které se předzpracovávaly, zpracovávaly a následně se s nimi dále manipulovalo.

Bylo běžné používat strukturu složek:

  • Vstup
  • Výstup
  • Chyba
  • Archiv

Pod těmito složkami se nacházely další podstruktury, často organizované podle data.

Tento standardní způsob sloužil k přípravě dat pro načtení do databáze.

Dnes už se unixové souborové systémy (v tradičním pojetí) moc nepoužívají a často se pracuje bez souborů. Místo toho se používají API, neboli aplikační programovací rozhraní. Vstup může, ale nemusí být nutně soubor.

Data se často ukládají do mezipaměti. Stále se může jednat o soubor, ale musí mít strukturovaný formát, nejčastěji JSON nebo XML. V některých případech se stále používá i CSV.

Definice vstupního formátu je na vás. Je na vás i rozhodnutí, zda proces bude zahrnovat historii vstupních souborů. Už to není standardní krok.

Transformace dat

ETL nástroje transformují získaná data do formátu vhodného pro analýzu. To zahrnuje čištění, ověřování, obohacování a agregaci dat.

Dříve data procházela složitou logikou procedurálního zpracování v programech jako Pro-C nebo PL/SQL, kde se transformovala a ukládala do cílového schématu. Tento proces byl stejně standardní jako rozdělování souborů do podsložek podle fáze zpracování.

Ačkoli to bylo běžné, nebylo to ideální. Přímou transformací dat bez trvalého uložení docházelo ke ztrátě největší výhody nezpracovaných dat – neměnnosti. Projekty takto přišly o možnost data rekonstruovat.

Dnes platí, že čím méně transformací nezpracovaných dat provedete na začátku, tím lépe. Po prvním uložení dat do systému může dojít k jejich transformaci a úpravě datového modelu. Nejdůležitější je ale uchovat nezpracovaná data v co nejvíce nezměněné a atomární struktuře. To je velký rozdíl oproti on-premise řešením.

Načítání dat

Nástroje ETL načítají transformovaná data do cílové databáze nebo datového skladu. To zahrnuje vytváření tabulek, definování vztahů a vkládání dat do příslušných polí.

Krok načítání dat se v průběhu času příliš nezměnil. Změna nastala jen v cílových databázích. Dříve to byl většinou Oracle, dnes to může být cokoliv dostupného v cloudovém prostředí AWS.

ETL v současném cloudovém prostředí

Pokud plánujete přesunout data z lokálních systémů do cloudu AWS, potřebujete ETL nástroj. Je to nezbytná součást cloudové architektury. Pokud je tento krok špatně proveden, ovlivní to negativně i další kroky.

Na trhu existuje mnoho ETL řešení, ale já se zaměřím na tři, se kterými mám nejvíce zkušeností:

  • Data Migration Service (DMS) – nativní služba od AWS.
  • Informatica ETL – komerční lídr v oblasti ETL, který se úspěšně transformuje z on-premise na cloudové řešení.
  • Matillion pro AWS – relativně nový hráč v cloudových prostředích. Není nativní pro AWS, ale je nativní pro cloud. Nemá tak bohatou historii jako Informatica.

AWS DMS jako ETL

Zdroj: aws.amazon.com

AWS Data Migration Service (DMS) je spravovaná služba pro migraci dat z různých zdrojů do AWS. Podporuje různé scénáře migrace.

  • Homogenní migrace (např. Oracle na Amazon RDS for Oracle).
  • Heterogenní migrace (např. Oracle na Amazon Aurora).

DMS migruje data z databází, datových skladů a SaaS aplikací do různých cílů, včetně Amazon S3, Amazon Redshift a Amazon RDS.

AWS považuje DMS za nástroj pro přenos dat z libovolných databázových zdrojů do nativních cloudových cílů. Ačkoli je hlavním úkolem DMS kopírování dat do cloudu, dokáže i transformovat data během přenosu.

Úlohy DMS lze definovat ve formátu JSON a automatizovat různé transformace dat při kopírování ze zdroje do cíle:

  • Sloučení více zdrojových tabulek nebo sloupců do jedné hodnoty.
  • Rozdělení zdrojové hodnoty do více cílových polí.
  • Nahrazení zdrojových dat jinou cílovou hodnotou.
  • Odstranění nepotřebných dat nebo vytvoření nových na základě vstupního kontextu.

DMS lze tedy použít jako ETL nástroj. Nemusí být sice tak sofistikovaný jako jiné možnosti, ale splní svůj účel, pokud je cíl projektu jasně definován.

Faktor vhodnosti

Přestože DMS poskytuje možnosti ETL, primárně se jedná o nástroj pro migraci dat. Existují situace, kdy je výhodnější použít DMS namísto specializovaných ETL nástrojů jako Informatica nebo Matillion:

  • DMS je vhodný pro homogenní migrace, kde jsou zdrojové a cílové databáze stejné (např. Oracle na Oracle nebo MySQL na MySQL).
  • DMS poskytuje základní možnosti transformace dat, které ale nemusí být vždy dostatečné. Hodí se, když nejsou potřeba rozsáhlé transformace.
  • Potřeby v oblasti kvality dat a správy jsou u DMS omezené, ale tyto oblasti lze řešit později s jinými nástroji. Pokud potřebujete co nejjednodušší ETL, je DMS ideální volbou.
  • DMS může být cenově výhodnější pro organizace s omezeným rozpočtem. Má jednodušší cenový model než nástroje jako Informatica nebo Matillion, což usnadňuje předvídání a řízení nákladů.

Matillion ETL

Zdroj: matillion.com

Matillion je cloudové nativní řešení pro integraci dat z různých zdrojů, včetně databází, SaaS aplikací a souborových systémů. Nabízí vizuální rozhraní pro vytváření ETL pipeline a podporuje různé služby AWS, jako Amazon S3, Amazon Redshift a Amazon RDS.

Matillion je snadno ovladatelný a vhodný pro organizace, které s ETL nástroji začínají nebo mají menší potřeby v integraci dat.

Nicméně, Matillion je do jisté míry "čistý list". Má některé předdefinované funkce, ale pro plné využití je nutné ho naprogramovat na míru. Nelze očekávat, že bude fungovat hned po vybalení, i když tu tato možnost existuje.

Matillion se často popisuje spíše jako ELT než ETL nástroj. To znamená, že preferuje načtení dat před jejich transformací.

Faktor vhodnosti

Matillion je efektivnější při transformaci dat až poté, co jsou uložena v databázi. Hlavním důvodem je povinnost vlastního skriptování. Efektivita závisí na kvalitě vlastního kódu.

Je přirozené očekávat, že transformace proběhnou lépe v cílovém databázovém systému, a proto se Matillion soustředí na jednoduché načítání dat v poměru 1:1 – zde je menší riziko, že se něco pokazí s vlastním kódem.

Ačkoli Matillion nabízí řadu funkcí pro integraci dat, nemusí poskytovat stejnou úroveň kvality dat a funkcí správy jako některé jiné ETL nástroje.

Matillion se dokáže škálovat podle potřeb organizace, ale nemusí být tak efektivní při zpracování velkých objemů dat. Paralelní zpracování je omezené. V tomto ohledu je Informatica lepší volbou.

Pro mnoho organizací však může Matillion poskytnout dostatečnou škálovatelnost a možnosti paralelního zpracování.

Informatica ETL

Zdroj: informatica.com

Informatica pro AWS je cloudový ETL nástroj pro integraci a správu dat v prostředí AWS. Je to spravovaná služba s mnoha funkcemi, včetně profilování dat, kvality dat a správy dat.

Mezi hlavní charakteristiky Informatica pro AWS patří:

  • Informatica je navržena pro škálování podle potřeb. Dokáže zpracovat velké objemy dat z různých zdrojů, včetně databází, datových skladů a aplikací SaaS.
  • Informatica poskytuje bezpečnostní funkce, jako šifrování, řízení přístupu a auditní záznamy. Splňuje průmyslové standardy, jako HIPAA, PCI DSS a SOC 2.
  • Informatica má vizuální rozhraní pro vytváření ETL pipeline, což usnadňuje tvorbu a správu pracovních postupů. Nabízí předpřipravené konektory a šablony pro propojení systémů.
  • Informatica se integruje s různými službami AWS, jako Amazon S3, Amazon Redshift a Amazon RDS.

Faktor vhodnosti

Informatica je nejkomplexnější ETL nástroj. Jeho použití ale může být dražší a složitější než u jiných nástrojů v AWS.

Informatica může být drahá, zejména pro malé a střední organizace. Ceny se odvíjejí od využití, takže při vyšším využití se zvyšují náklady.

Nastavení a konfigurace můžou být složité, zejména pro začátečníky. Vyžaduje to čas a zdroje.

Informatica má i "komplexní křivku učení", což může být nevýhoda pro ty, kdo potřebují rychle integrovat data nebo nemají zdroje na školení.

Informatica nemusí být ideální pro integraci dat ze zdrojů mimo AWS. V takovém případě mohou být lepší volbou DMS nebo Matillion.

Informatica je v podstatě uzavřený systém. Existuje omezená možnost přizpůsobení specifickým potřebám projektu. Proto musíte využít to, co systém nabízí "z krabice".

Závěrem

Neexistuje univerzální řešení, ani pro ETL nástroje v AWS.

Nejkomplexnější, nejbohatší a nejdražší řešení je Informatica. Nejvhodnější je, pokud:

  • Projekt je rozsáhlý a jste si jisti, že budoucí řešení a zdroje dat budou také napojeny na Informatica.
  • Máte tým zkušených vývojářů a konfigurátorů Informatica.
  • Oceňujete a jste ochotni si zaplatit za robustní technickou podporu.

Pokud na tyto podmínky nemáte, můžete zkusit Matillion:

  • Potřeby projektu nejsou tak složité.
  • Potřebujete zahrnout do zpracování vlastní kroky, flexibilita je klíčová.
  • Jste ochotni vybudovat většinu funkcí sami s pomocí týmu.

Pro méně komplikované projekty je vhodný DMS pro AWS, nativní služba, která pravděpodobně splní vaše potřeby.

Pro lepší správu dat se podívejte i na nástroje pro transformaci dat.

Jan Novák
Autor
Czechia

Redaktor zaměřený na Windows, produktivitu a cloudové nástroje.

Předchozí článek
11 pluginů Illustratoru pro maximalizaci potenciálu vašeho designu
Další článek
7 nejlepších generátorů skriptů AI YouTube pro snadné vytváření zabijáckého obsahu