Extract, transform, load

Z Wikipedie, otevřené encyklopedie

Ve výpočetních technologiích reprezentuje zkratka ETL proces extrakce, transformace a nahrání dat z jednoho či více zdrojů do datového skladu, nebo do datového tržiště. Data mohou být extrahována z relačních databází, tabulkových procesorů a dalších strukturovaných i nestrukturovaných zdrojů dat. Po extrakci dat přichází na řadu transformace, během níž dochází k očištění dat a jejich transformaci do požadovaného stavu pro uložení do datových skladů. Takto upravená data se následně nahrají do datového skladu, který slouží jako primární zdroj dat pro BI aplikace. Data v datovém skladu jsou ukládaná v historizované podobě, což umožňuje reportovat vývoj metriky v čase.

Budování ETL systému je základním krokem tvorby datového skladu. Proces se skládá ze dvou paralelních pohledů: z pohledu plánování a projektování (angl. Planning and Design) a z pohledu toku dat (angl. Data Flow). Oba tyto pohledy jsou navzájem propojené a navzájem se ovlivňují.[1]

Extract[editovat | editovat zdroj]

Prvním krokem v procesu ETL je extrakce dat ze zdrojových systémů. V mnoha případech jsou extrahovaná data uložena v různých systémech či prostředích, tudíž bývají uložena v různých formátech. Mezi běžné formáty zdrojových dat patří například relační databáze, XML, JSON, ale mohou to být i nerelační databázové struktury jako například IMS.

Podstatnou součást extrakce představuje validace dat, jejímž cílem je určit, zda data extrahovaná ze zdrojů nabývají správných či očekávaných hodnot. V případě, že data neprojdou validací, bývají zamítnuta, přičemž někdy zároveň dochází k upozornění zdrojového systému ohledně těchto dat.

Transform[editovat | editovat zdroj]

Druhým krokem v procesu ETL je transformace. V této fázi dochází k aplikování různých funkcí a pravidel na extrahovaná data za účelem jejich přípravy pro nahrání do cílového systému.

Důležitou část tvoří mimo jiné čistění dat, které má za úkol do cílového systému postoupit pouze vhodná data. Problémem je, že data mohou pocházet z různých systémů a jejich destinace může mít jiné nastavení. Například sady znaků se mohou napříč systémy lišit a způsobovat problémy.

Mezi další typy transformací patří například:

  • Výběr pouze požadovaných sloupců pro nahrání.
  • Převod kódovaných hodnot: (např.: ve zdrojovém systému je muž označen jako „1“ a žena jako „2“, ale v cílovém systému je pohlaví označováno jako „M“ a „F“)
  • Sjednocení hodnot se stejným významem: (např.: údaj o pohlaví může být zapsán více způsoby „M“, „F“ nebo „Male“, „Female“)
  • Výpočet nových hodnot (např.: výpočet věku z data narození)
  • Agregace (agregační funkce)

Load[editovat | editovat zdroj]

Poslední fázi ETL představuje nahrání dat do cílového systému, kterým může být jednoduché datové úložiště nebo datový sklad. Dále zde poté může docházet k přepisování již existujících dat, nebo k zachování původních a přidání nových dat. Například v rámci nastavení, kdy se při nahrávání uchovávají data stará nejvíce jeden rok a veškerá starší data jsou přepisována daty novými. Proces načtení by měl být automatizovaný a naplánovaný, často se provádí v pravidelných intervalech – týdně či měsíčně.

Paralelní výpočet[editovat | editovat zdroj]

Nejnovějším vývojem v ETL softwaru je implementace paralelních výpočtů. Toto rozšíření umožňuje využít různé metody pro zlepšení celkové výkonnosti ETL, a to zejména při práci s velkým objemem dat.

ETL aplikace využívají tři základní typy paralelizace:

  • Data: Rozdělení jednoho sekvenčního souboru na více menších souborů a umožnění paralelního přístupu.
  • Pipeline: Umožnění současného běhu několika komponent na jednom datovém proudu.
  • Komponenta: Současný běh několika procesů na různých datových proudech v jedné úloze.

Tyto tři typy paralelizace jsou většinou zapojeny dohromady v jednom úkolu.

Složitost se zvyšuje se snahou udržet data konzistentní. Jednotlivé zdrojové systémy mohou totiž mít rozdílné intervaly aktualizace, tudíž je nutné od ETL systému vyžadovat zadržení některých dat, dokud nedojde k synchronizaci všech zdrojů.

Nástroje[editovat | editovat zdroj]

Využitím ETL nástrojů lze získat následující výhody:

  • Vyšší produktivita – Grafické uživatelské prostředí usnadňuje práci s transformačním procesem. Lze snadno identifikovat chyby.
  • Flexibilita – Jednoduchá modifikace, rozšíření a přizpůsobení procesů požadavkům a podmínkám.
  • Výkon – Výkon představuje jeden z klíčových požadavků a díky ETL nástrojům lze optimálně využít hardwarových a systémových prostředků.
  • Otevřenost – Nástroje jsou vybaveny technologiemi pro přístup do nejrůznějších systémů, uživatel se o to tedy nemusí starat.
  • Podpora metadat – ETL nástroje mají většinou kapacitu pracovat s metadaty.

Nástroje lze rozdělit do dvou skupin: první skupina na základě transformačního předpisu generuje kód, který se následně kompiluje a spouští na zdrojové platformě. Druhá skupina nástrojů, jejichž jádrem je transformační engine, který realizuje procesy dle objektově definovaného předpisu.[2]

ELT[editovat | editovat zdroj]

Extrakce, načítání a transformace (ELT), je variantou ETL, kdy se data nejdříve nahrají do cílového systému a k jejich transformaci dochází až posléze na cílovém úložišti dat. U této varianty se k transformaci dat používají možnosti zpracování cílového úložiště. To vede k zjednodušení architektury díky odebrání transformačního modulu. ELT je přitom závislé na dostatečném výkonu koncového systému a typicky se využívá v případech manipulace s velkými objemy dat. Klíčovým prvkem je fakt, že úložiště, kde probíhá transformace, je totožné s úložištěm, kde se data spotřebují.[3]

Každý z těchto dvou způsobů má své výhody a nevýhody. Většina nástrojů pro integraci dat se přiklání spíše k využití ETL, zatímco ELT je populární u datových a databázových zařízení.

Reference[editovat | editovat zdroj]

  1. BLŠTÁK, Michal. Aplikace procesu ETL na čištění dat v datových skladech [online]. Brno, 2016 [cit. 2018-11-28]. Dostupné z: https://is.muni.cz/th/o9b4k;. Diplomová práce. Masarykova univerzita, Fakulta informatiky. Vedoucí práce Vlastislav Dohnal.
  2. SCHILLER, Martin. Co se skrývá pod zkratkou ETL?. www.systemonline.cz [online]. [cit. 2021-01-22]. Dostupné online. 
  3. ZOINER, Tejada. Extrakce, transformace a načtení (ETL) - Azure Architecture Center. docs.microsoft.com [online]. [cit. 2021-01-22]. Dostupné online.