Mage.ai je jednou z nadějných alternativ k Apache Airflow. Jedná se o odlehčenější a z mého pohledu daleko přívětivější možnost jak pracovat s ETL datovými toky. Obsahuje celou řadu předdefinovaných konektorů (Python, SQL), takže kód nemusíme psát od začátku. Vývoj je tak časově efektivní. Mage toho ale umí daleko více

Mage.ai – Instalace (Anaconda, Windows)

  • Instalace Pythonu – https://www.python.org/
  • Instalace Anaconda – https://www.anaconda.com/download
  • Otevřeme cmd jako administrátor
    • conda create –name mage-ai python=3.8
    • conda activate mage-ai
    • conda install pyodbc
  • Nainstalujeme mage do nového environmentu
    • pip install mage-ai
  • Někde na disku si založime sloéku s projektem Mage
    • cd C:\mage\
  • Inicializace nebo spuštění mage se dělá přes příkaz níže v cmd kde poslední slovo je projekt mage (pokud neexistuje je založen, pokud existuje je spuštěn)
    • mage start mage-ai
  •  na adrese http://localhost:6789/ nám běží Mage instance

Návody:

Souborová struktura Mage.ai

  • Mage má logickou adresářovou strukturu (např jako dbt)
  • Veškeré konfigurace na datové zdroje/cíle se nacházejí v souboru io_config.yaml. Zde jsou také vzory nastavení pro různé databáze

Struktura (nejdůležitější komponmenty)

  • Složka pipelines – obsahuje datové pumpy, které se skládají z bloků
  • Bloky typy (v pipeline) – stejné bloky lze používat v různých pipelinách, je tam mnoho temnplates (python/SQL) – skripty se nemusí psát od 0
    • data loadery – blok který loaduje data (napojí se na nějaký systém a sosne data. Používá 1 z connections, které jsme nastavili v io_config (bod 1)
    • transformery – přeberou data z data loaderů a transformují je
    • data_exportery – exportery jsou bloky, které data nahrají do destinace, opět používají
    • dbt – speciální komponenta, kdy Mage umožňuje integraci s dbt – je možné pouze pokud běží mage přes Docker.
    • senzor – checkuje v pravidelnych intervalech jestli je splnena nejaka podminka a pokud ano tak udela neco – priklad check esi je v nejakem folderu file apod
  • Charts – obsahují grafickou reprezentaci dat – různé checky datové kvality a podobně
  • Dbt – složka dbt je by default prázdná. Inizializaovat si do ní dbt projekt můžete podle návodu – ETL | Mage.ai – Instalace Dbt (pip/conda) a inicializace projektu

Funkcionality a use cases Mage.ai

  • ETL procesy – datové pumpy. Spousta předdefinovaných konektorů + detailní logování, scheduling
    • Předdefinované bloky na různé systémy
    • Předdefinované grafy na různé scénáře – testování, datová kvalita
    • Podrobné logování
  • Souborový manager
  • Integrace s Dbt (spuštění n pipelines a v závilsosti na doběhnutí pustit dbt)
  • Tvorba ETL pomocí AI (napojení na Chat gpt api)
  • Správa secrets
  • Možnost authentikace (defaultně vypnuto – po instalace používáme lokálně, ale lze zapnout v případě, že běží na serveru)
  • Automatická integrace s gitem – clone/commit/pull/push/tracking changes
  • Integrovaný terminál
  • Předdefinované grafy a přehledy pro datasety – možnost testování a exploroingu dat
  • Možnost spustit pipelines přes api
  • Variables, lokální, globální
  • Ochotná a stále početnější komunita

Troubleshooting a oprava chybových stavů

Zatím jsem narazil při prozkoumávání nástroje na potíží na které jsem narazil