Airflow-Operator

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Operator

  • Repräsentieren eine einzelne Aufgabe im Workflow.
  • Laufen (meist) unabhängig.
  • Teilen i. d. R. keine Informationen.
  • Verschiedene Operatoren für unterschiedliche Aufgaben.
# Neuer Weg, Airflow 2.x+
EmptyOperator(task_id='example')

# Alter Weg, Airflow <2.0
EmptyOperator(task_id='example', dag=dag_name)
Einführung in Apache Airflow mit Python

BashOperator

BashOperator(
    task_id='bash_example',
    bash_command='echo "Example!"',
    # Nächste Zeile nur für Airflow vor Version 2
    dag=dag
)
BashOperator(
    task_id='bash_script_example',
    bash_command='runcleanup.sh',
)
  • Führt einen Bash-Befehl oder ein Skript aus.
  • Führt den Befehl in einem Temporärverzeichnis aus.
  • Umgebungsvariablen können gesetzt werden.
Einführung in Apache Airflow mit Python

Beispiele für BashOperator

from airflow.operators.bash import BashOperator

example_task = BashOperator(task_id='bash_ex', bash_command='echo 1', )
bash_task = BashOperator(task_id='clean_addresses',
  bash_command='cat addresses.txt | awk "NF==10" > cleaned.txt',
)
Einführung in Apache Airflow mit Python

Operator-Fallstricke

  • Läuft nicht garantiert am selben Ort/in derselben Umgebung.
  • Oft starker Einsatz von Umgebungsvariablen nötig.
  • Aufgaben mit erhöhten Rechten sind schwer auszuführen.
Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...