Airflow Dags

Introduktion till Apache Airflow i Python

Mike Metzger

Data Engineer

Vad är en Dag?

Dag, eller Directed Acyclic Graph:

  • Directed – flödet mellan komponenter representerar beroenden
  • Acyclic – loopar eller upprepas inte
  • Graph – mängden av komponenter

Riktat acykliskt graf med noder förbundna av enkelriktade pilar utan loopar

Introduktion till Apache Airflow i Python

Dag i Airflow

  • Skrivs i Python (men kan använda komponenter skrivna i andra språk)
  • Består av uppgifter som ska köras, till exempel operatorer eller sensorer
  • Innehåller beroenden definierade explicit eller implicit
    • dvs. kopiera filen till servern innan den importeras till databastjänsten.

  Airflow Dag med kopplade uppgifter som visar beroendeordningen mellan dem

Introduktion till Apache Airflow i Python

Definiera en Dag

Exempel på Dag (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()
Introduktion till Apache Airflow i Python

Dagar via kommandoraden

 

  • Kommandot airflow innehåller många underkommandon
  • airflow -h – hjälp och beskrivningar av underkommandon

 

  • Dag-underkommandon

    • airflow dags list – visar alla igenkända Dagar
    • airflow dags reserialize – tvingar Airflow att läsa om Dag-filer
    • airflow tasks test – kör en specifik uppgift
Introduktion till Apache Airflow i Python

Kommandorad vs Python

Använd kommandoradsverktyget för att:

  • Starta Airflow-processer
  • Köra Dagar / uppgifter manuellt
  • Hämta logginformation från Airflow

Terminal som kör Airflow-kommandoradsverktyget

Använd Python för att:

  • Skapa en Dag
  • Redigera enskilda egenskaper för en Dag

Illustration som representerar Python-kod

Introduktion till Apache Airflow i Python

Nu kör vi en övning!

Introduktion till Apache Airflow i Python

Preparing Video For Download...