Airflow-Aufgaben

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Aufgaben

Aufgaben sind:

  • Instanzen von Operatoren
  • Meist einer Python-Variable zugewiesen
    example_task = BashOperator(task_id='bash_example',
                              bash_command='echo "Example!"')
    
  • In Airflow-Tools per task_id referenziert
Einführung in Apache Airflow mit Python

Aufgabenabhängigkeiten

$$

  • Legen eine Ausführungsreihenfolge fest
  • Für Workflows nicht zwingend, aber meist vorhanden
  • Heißen upstream oder downstream Aufgaben
  • Ab Airflow 1.8 mit Bitshift-Operatoren definiert
    • >>, der Upstream-Operator
    • <<, der Downstream-Operator
Einführung in Apache Airflow mit Python

Upstream vs. Downstream

Upstream bedeutet davor

Downstream bedeutet danach

Einführung in Apache Airflow mit Python

Einfache Aufgabenabhängigkeit

# Define the tasks
task1 = BashOperator(task_id='first_task',
                     bash_command='echo 1'
                    )

task2 = BashOperator(task_id='second_task', bash_command='echo 2' )
# Set first_task to run before second_task task1 >> task2 # or task2 << task1
Einführung in Apache Airflow mit Python

Aufgabenabhängigkeiten in der Airflow-UI

einfache Abhängigkeit, DAG-Ansicht

Einführung in Apache Airflow mit Python

Aufgabenabhängigkeiten in der Airflow-UI

einfache Abhängigkeit, DAG-Ansicht, Aufgaben markiert

Einführung in Apache Airflow mit Python

Aufgabenabhängigkeiten in der Airflow-UI

einfache Abhängigkeit, DAG mit Bitshift

Einführung in Apache Airflow mit Python

Mehrere Abhängigkeiten

Verkettete Abhängigkeiten:

task1 >> task2 >> task3 >> task4

Gemischte Abhängigkeiten:

task1 >> task2 << task3

oder:

task1 >> task2
task3 >> task2

verkettete Abhängigkeiten

gemischte Abhängigkeiten

Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...