Zkratka proExtract, Transform, LoadTakéExtract Transform Load, Extract, Transform, LoadPokročilý
Definice
ETL je proces, při kterém se data získají ze zdrojových systémů, upraví do požadované podoby a uloží do cílového úložiště, typicky datového skladu. Používá se pro reporting, analytiku a integraci aplikací, protože odděluje sběr dat, jejich čištění a kontrolované načtení do jednotného modelu.
Proč ETL vzniklo v datových skladech
ETL řeší situaci, kdy firma potřebuje spojit data z mnoha provozních systémů a používat je pro analýzu bez toho, aby zatěžovala samotné aplikace. Objednávky mohou ležet v relační databázi, události v logovacím systému, kampaně v reklamní platformě a zákaznická data v CRM. Datový sklad potřebuje z těchto zdrojů vytvořit jednotný, historicky dohledatelný pohled.
Provozní systémy bývají navržené pro rychlý zápis a obsluhu uživatelů. Analytické dotazy naopak často čtou velké objemy dat a agregují je podle času, produktu nebo segmentu. ETL proto data přesune mimo produkční aplikace, sjednotí formát a uloží výsledek do struktury vhodné pro reporting, dashboardy nebo trénování modelů.
Tři kroky v ETL pipeline
Extract znamená získání dat ze zdrojů. Zdroj může být databázová tabulka, CSV export, API, message broker nebo soubor v objektovém úložišti. Důležitá je evidence, odkud data přišla, kdy byla načtena a zda jde o celý export nebo jen změny od posledního běhu.
Transform převádí syrová data do podoby, kterou cílový systém umí bezpečně používat. Transformace může čistit neplatné hodnoty, převádět časová pásma, sjednocovat měny, dopočítávat metriky, odstraňovat duplicity nebo spojovat záznamy přes klíče. V této fázi se často rozhoduje o kvalitě výsledné analytiky.
Load ukládá připravená data do cíle. Cílem může být datový sklad, datamart, analytická databáze nebo index pro vyhledávání. Načítání musí řešit opakované spuštění, částečné chyby a to, zda se záznamy vkládají, přepisují nebo slučují s existující historií.
Cena transformace před načtením
ETL transformuje data dříve, než se dostanou do cílového úložiště. Výhodou je čistý a kontrolovaný datový model: reporty pracují s připravenými tabulkami a uživatelé nemusí při každém dotazu znovu opravovat stejný nepořádek. Nevýhodou je menší pružnost, protože změna analytické logiky může vyžadovat úpravu pipeline a opětovné přepočítání historických dat.
Pipeline musí počítat s chybami stejně jako běžná aplikace. Špatně navržené ETL může potichu ztratit řádky, vytvořit duplicitní tržby nebo zamíchat data z různých časových období. Proto se používají validační kontroly, staging tabulky, auditní sloupce a idempotentní zápisy, které dávají stejný výsledek i po opakovaném spuštění.
ETL v moderním datovém stacku
Moderní týmy často kombinují ETL s přístupem ELT, kde se data nejprve nahrají do výkonného skladu a transformují až uvnitř něj. Rozdíl není náboženský, ale praktický: ETL se hodí tam, kde je potřeba silná kontrola před uložením, ochrana citlivých polí nebo drahé cílové úložiště. ELT bývá výhodné, když cílová platforma levně škáluje výpočty a tým chce uchovat více surových dat pro pozdější použití.
Příklady z praxe
Noční načtení objednávek do skladu
E-shop každou noc exportuje objednávky z provozní databáze do staging tabulky. ETL pipeline opraví formát měn, odstraní duplicitní řádky a pomocí slučovacího zápisu aktualizuje datový sklad. Ranní dashboard pak ukazuje tržby bez zatížení produkční databáze.
MERGE INTO warehouse.orders AS target USING staging.orders_daily AS source ON target.order_id = source.order_id WHEN MATCHED THEN UPDATE SET status = source.status, total = source.total WHEN NOT MATCHED THEN INSERT (order_id, customer_id, status, total) VALUES (source.order_id, source.customer_id, source.status, source.total);Sjednocení zákaznických dat pro reporting
SaaS firma stahuje události z aplikace, fakturačního systému a CRM. ETL pipeline sjednotí identifikátory zákazníků, vyřadí testovací účty a vytvoří tabulku pro výpočet měsíčního opakovaného výnosu. Finanční tým díky tomu nepočítá stejnou metriku ručně v několika tabulkách.
Časté omyly
- MýtusETL je jen kopírování dat z jedné databáze do druhé.
- Ve skutečnostiETL zahrnuje i čištění, validaci, spojování, odvozování metrik a kontrolované načtení. Prosté kopírování bez transformací je jen část možného datového toku.
- MýtusKdyž máme cloudový datový sklad, ETL už nepotřebujeme.
- Ve skutečnostiCloudový sklad může přesunout část práce do ELT, ale potřeba datové integrace nezmizí. Data stále musí mít definovaný původ, kvalitu, pravidla aktualizace a odpovědnost za chyby.
Časté dotazy
- Kdy zvolit ETL místo ELT?
- ETL dává smysl místo ELT tam, kde musí být data před uložením výrazně očištěná, anonymizovaná nebo převedená do pevného modelu. Typickým důvodem je compliance, omezený výkon cílového skladu nebo potřeba zabránit šíření nekvalitních dat. ELT je praktičtější, když cílová analytická platforma zvládá velké transformace levně a tým chce uchovat syrovější vrstvu pro budoucí dotazy.
- Má ETL běžet v dávkách, nebo průběžně?
- ETL může běžet dávkově i téměř průběžně. Dávkové zpracování se hodí pro denní finanční reporty, účetní uzávěrky nebo metriky, kde několik hodin zpoždění nevadí. Průběžné nebo mikro-dávkové ETL se používá tam, kde analytika potřebuje čerstvější data, například u monitoringu provozu, detekce podvodů nebo aktuálních skladových zásob.
- Jak ETL souvisí s datovou kvalitou?
- ETL výrazně ovlivňuje datovou kvalitu, protože právě transformace často rozhoduje o tom, které hodnoty jsou platné, jak se řeší duplicity a jak se sjednocují významy polí mezi systémy. Dobrá pipeline obsahuje kontroly počtu řádků, schématu, rozsahů hodnot a referenční integrity. Bez těchto kontrol může i technicky úspěšný běh vytvořit zavádějící report.
- Kdo má být odpovědný za ETL pipeline?
- ETL pipeline obvykle vlastní datový tým, data engineering tým nebo tým odpovědný za konkrétní doménu dat. V menších firmách může stejnou práci dělat backend vývojář nebo analytik. Důležité je jasné vlastnictví: někdo musí hlídat změny zdrojových schémat, selhání běhů, opravy historických dat a dokumentaci významu výsledných tabulek.
Zdroje
- What is ETL?(otevře se v novém okně)
- What is ETL?(otevře se v novém okně)
- What is ETL?(otevře se v novém okně)
- Extract, transform, and load (ETL)(otevře se v novém okně)