Airflow Dags

Úvod do Apache Airflow v Pythonu

Mike Metzger

Data Engineer

Co je to Dag?

Dag neboli Directed Acyclic Graph (orientovaný acyklický graf):

  • Directed (orientovaný) – tok mezi komponentami vyjadřuje závislosti
  • Acyclic (acyklický) – neopakuje se ani neobsahuje smyčky
  • Graph (graf) – soubor komponent

Orientovaný acyklický graf s uzly spojenými jednosměrnými šipkami bez smyček

Úvod do Apache Airflow v Pythonu

Dag v Airflow

  • Psán v Pythonu (komponenty mohou být i v jiných jazycích)
  • Skládá se z úloh (operátory, senzory apod.)
  • Obsahuje explicitně nebo implicitně definované závislosti
    • Např. zkopírování souboru na server před jeho importem do databáze.

  Airflow Dag propojených úloh znázorňující pořadí závislostí

Úvod do Apache Airflow v Pythonu

Definice Dagu

Příklad Dagu (Taskflow API):

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Úvod do Apache Airflow v Pythonu

Dagy na příkazovém řádku

 

  • Příkaz airflow obsahuje mnoho dílčích příkazů
  • airflow -h – nápověda a popis dílčích příkazů

 

  • Dílčí příkazy pro Dagy

    • airflow dags list – zobrazí všechny rozpoznané Dagy
    • airflow dags reserialize – vynutí znovunačtení souborů Dagů
    • airflow tasks test – spustí konkrétní úlohu
Úvod do Apache Airflow v Pythonu

Příkazový řádek vs. Python

Příkazový řádek slouží k:

  • Spuštění procesů Airflow
  • Ručnímu spuštění Dagů / úloh
  • Získání protokolů z Airflow

Terminál se spuštěným nástrojem příkazového řádku Airflow

Python slouží k:

  • Vytvoření Dagu
  • Úpravě vlastností Dagu

Ilustrace znázorňující kód v Pythonu

Úvod do Apache Airflow v Pythonu

Pojďme procvičovat!

Úvod do Apache Airflow v Pythonu

Preparing Video For Download...