ETL vs. ELT

    Dva postupy, jak dostat data ze zdrojů (e-shop, účetnictví, reklama) do datového skladu. Liší se v tom, kdy se data transformují: u ETL (Extract, Transform, Load) se transformují ještě před uložením, v samostatné vrstvě mimo sklad. U ELT (Extract, Load, Transform) se do skladu nejdřív uloží syrová a transformují se až tam, přímo v cloudovém skladu jako BigQuery.

    Kdy se data transformují: před uložením, nebo až uvnitř skladu

    Rozdíl mezi ETL a ELT není v tom, jestli se data transformují, transformují se v obou případech. Rozdíl je v tom, kdy se to stane a kde k tomu dojde.

    ETL (Extract, Transform, Load): transformace před uložením

    Objednávky z e-shopu a faktury z účetnictví se nejdřív vyčistí, sjednotí a spojí v samostatné transformační vrstvě, mimo datový sklad. Do skladu pak putuje až hotový, upravený výsledek. Syrová podoba dat, tak jak přišla ze zdroje, se v tomto kroku typicky nikam neukládá.

    ELT (Extract, Load, Transform): transformace uvnitř skladu

    Stejné objednávky a faktury se nejdřív uloží do BigQuery beze změny, přesně tak, jak přišly ze zdroje. Teprve tam, uvnitř skladu, se spojí a přepočítají pomocí SQL transformací (typicky ve verzované podobě přes Dataform), které běží na výpočetním výkonu samotného BigQuery.

    Proč se dnes častěji volí ELT

    Dokud byl výpočet pro transformace drahý a omezený, dávalo smysl transformovat data předem, na samostatném serveru, a do skladu poslat jen výsledek. Cloudové sklady jako BigQuery mají výpočet lacinější a pružnější, takže se transformace vyplatí dělat rovnou v nich, a navíc zůstávají po ruce syrová data pro pozdější přepočet.

    Kde firmy pálí peníze

    Obě architektury mají svoje typické chyby, ne vždy je ELT automaticky lepší volba.

    • Samostatná transformační vrstva navíc k samotnému skladu

      U ETL přístupu firma platí za oddělený transformační server nebo službu navíc k datovému skladu, a je to další součást architektury, která se může rozbít, nezávisle na tom, jestli sklad samotný funguje v pořádku.

    • Chybná transformace bez možnosti přepočtu

      Pokud se u ETL ukáže, že transformační logika byla nastavená špatně, syrová vstupní data často už nejsou k dispozici na nový přepočet, protože se do skladu uložil jen hotový výsledek, ne to, z čeho vznikl.

    • ELT bez pořádku skončí jako datové jezero

      Uložit data syrová sama o sobě nic nevyřeší. Bez verzovaných a testovaných transformací (viz pojem Dataform) se sklad naplní syrovými daty, kterým čím dál míň lidí rozumí, a nikdo z nich nic nepostaví, tomu se říká datové jezero, sklad plný dat bez použitelné struktury nad nimi.

    Proč Datimo staví na ELT

    U nových datových skladů Datimo staví na ELT: data z e-shopu, účetnictví i reklamních účtů se nejdřív uloží syrová přímo do BigQuery, a teprve tam se transformují pomocí verzovaných SQL transformací (viz pojem Dataform). Souvisí to se stejným důvodem, proč je BigQuery výchozí volba skladu, viz pojem BigQuery.

    Sklad i výpočet na jednom místě

    Pokud transformace běží přímo v BigQuery, e-shop nepotřebuje samostatný transformační server navíc ke skladu. To je stejný princip, který u pojmu BigQuery popisujeme jako důvod, proč sklad a výpočet zůstávají v jednom cloudu.

    Syrová data zůstávají po ruce

    Protože se nejdřív ukládá syrová podoba dat, jde se k ní kdykoli vrátit a přepočítat ji jinak, i kdyby se později ukázalo, že některá transformace byla nastavená chybně.

    Jiný přístup než managed platformy typu Keboola

    Platformy jako Keboola typicky kombinují sběr, transformaci i přesun dat v rámci jedné spravované platformy, viz pojem Keboola, což je pro rychlý start legitimní volba. Datimo místo toho staví na modelu, kde syrová data přistanou přímo v BigQuery a verzované transformace běží tam, ne v samostatné platformě mimo sklad.