Preskočiť na obsah
Dátový postup

ETL — Extract, Transform, Load

ETL (Extract, Transform, Load — extrahuj, transformuj, nahraj) je trojkrokový postup spracovania dát: vybrať dáta zo zdroja (databáza, Excel, API, feed), upraviť ich do tvaru, ktorý potrebuje cieľ (vyčistiť, premapovať, zlúčiť, prepočítať), a nahrať ich do cieľového systému (databáza, dátový sklad, iná aplikácia).

Ako to funguje

ETL je názov pre niečo, čo robí skoro každý projekt s dátami, aj keď to tak nevolá. Sťahujete objednávky z e-shopu, prerábate ich do tvaru pre účtovníctvo a posielate ďalej — to je ETL. Migrujete dáta zo starého systému do nového: vyexportujete ich (extract), vyčistíte a namapujete na nový dátový model (transform), naimportujete (load) — ETL. Beriete feedy od piatich dodávateľov a skladáte z nich jeden katalóg — ETL. Tri kroky sú vždy rovnaké; líši sa, čo je zdroj, ako náročná je transformácia a ako často to beží (jednorazovo pri migrácii, pravidelne pri synchronizácii, priebežne pri integrácii v reálnom čase).

Najviac práce — a najviac rizika — býva v kroku „transform“. Surové dáta zo zdroja takmer nikdy nesedia na cieľ: iné názvy polí, iné jednotky, iné kódovanie, duplicity, chýbajúce hodnoty, dátumy v piatich formátoch. Transformácia to musí ustáť deterministicky a overiteľne — nie „nejako to prejde“, ale s pravidlami, validáciou a kontrolou, že na výstupe sedí počet záznamov, súčty a vzťahy. Preto ETL píšeme ako kód s definovanými schémami (v našom prípade TypeScript + Zod), nie ako jednorazový skript, ktorému nikto druhý nerozumie — dá sa spustiť znova, otestovať a zopakovať pri ďalšej dávke.

ETL je teda spoločný menovateľ migrácií, synchronizácií a integrácií. Pri jednorazovom presune dát zo starého systému je to dátová migrácia (samostatná služba dátové migrácie a ETL). Keď to isté beží pravidelne medzi dvoma systémami, je to synchronizácia — typicky napojenie e-shopu či portálu na ERP (služba integrácia ERP a účtovných systémov). Keď zdrojom sú feedy od dodávateľov, prekrýva sa to so spracovaním produktových feedov. V každom prípade platí: dobrý ETL je nudný — beží, dá sa overiť, a keď niečo nesedí, povie to, namiesto aby ticho pokazil dáta.

Z našej praxe

Keď premýšľate o presune alebo prepojení dát, rozdeľte si to na tri otázky: odkiaľ (a v akej kvalite), do akého tvaru to treba dostať (a aké pravidlá pri tom platia) a kam. Najviac úsilia plánujte na strednú časť — transformáciu —, lebo tam býva neporiadok. A trvajte na overení: po behu musí sedieť počet záznamov, kontrolné súčty a kľúčové vzťahy. Jednorazový skript bez schém a kontroly je v poriadku na hračku, nie na firemné dáta.

Kedy to potrebujete

  • Migrácia dát zo starého systému do nového — export, vyčistenie a premapovanie na nový dátový model, import s overením integrity.
  • Pravidelná synchronizácia medzi e-shopom alebo portálom a ERP — produkty a sklad von, objednávky späť.
  • Skladanie jedného katalógu z feedov viacerých dodávateľov — zjednotenie kategórií, parametrov a kódov.
  • Príprava dát pre reporty alebo dátový sklad — výber z prevádzkových systémov, prepočet a nahranie do analytickej databázy.

Najčastejšie otázky

Je ETL to isté ako dátová migrácia?

Dátová migrácia je jeden druh ETL — jednorazový (alebo niekoľkokrokový) presun dát zo starého systému do nového. ETL je širší pojem: ten istý postup (extract → transform → load) sa používa aj na pravidelné synchronizácie medzi systémami a na priebežné integrácie. Migrácia je teda ETL, ktorý beží raz; synchronizácia je ETL, ktorý beží stále.

Prečo nestačí jednorazový skript?

Na malú, jednorazovú vec stačí. Pri firemných dátach nie: transformácia má neporiadok (iné formáty, duplicity, chýbajúce hodnoty), takže potrebujete pravidlá, validáciu a overenie výsledku — a často aj možnosť spustiť to znova s ďalšou dávkou. Skript, ktorý „raz prešiel“ a nikto nevie, čo presne robí, je riziko: ďalší beh alebo malá zmena v zdroji ho potichu rozbije. Preto ETL píšeme ako kód so schémami a kontrolami.

Ako overíte, že sa dáta preniesli správne?

Po behu sa kontroluje, či sedí počet záznamov (zdroj vs. cieľ), kontrolné súčty kľúčových polí, a či sa zachovali vzťahy (napríklad že každá objednávka má svojho zákazníka). Pri väčších migráciách sa pridávajú aj cielené smoke testy na vzorke. Cieľ je, aby ste nemali len pocit, že to prešlo, ale dôkaz — pred tým, než starý systém vypnete.

Potrebujete s tým pomôcť?

Ak riešite niečo z toho, čo tu opisujeme, ozvite sa. Povieme vám, či a ako vieme pomôcť.