Airflow-Sensoren

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Sensoren

Was ist ein Sensor?

  • Ein Operator, der wartet, bis eine Bedingung erfüllt ist
    • Erstellung einer Datei
    • Eintrag in einer Datenbank
    • Bestimmte Antwort auf eine Webanfrage
  • Prüffrequenz kann festgelegt werden
  • Werden Aufgaben zugewiesen
Einführung in Apache Airflow mit Python

Sensor-Details

  • Abgeleitet von airflow.sensors.base_sensor_operator
  • Sensor-Argumente:
  • mode – Wie die Bedingung geprüft wird
    • mode='poke' – Standard, wiederholt ausführen
    • mode='reschedule' – Task-Slot freigeben, später erneut versuchen
  • poke_interval – Abstand zwischen Prüfungen
  • timeout – Wie lang warten, bevor der Task fehlschlägt
  • Enthält auch normale Operator-Attribute
Einführung in Apache Airflow mit Python

FileSensor

  • Teil der Bibliothek airflow.sensors
  • Prüft, ob eine Datei an einem Ort existiert
  • Kann auch prüfen, ob Dateien in einem Verzeichnis existieren
from airflow.sensors.filesystem import FileSensor

file_sensor_task = FileSensor(task_id='file_sense',
                              filepath='salesdata.csv',
                              poke_interval=300,
                              dag=sales_report_dag)

init_sales_cleanup >> file_sensor_task >> generate_report
Einführung in Apache Airflow mit Python

Weitere Sensoren

  • ExternalTaskSensor – wartet, bis ein Task in einem anderen DAG fertig ist
  • HttpSensor – ruft eine Web-URL ab und prüft auf Inhalt
  • SqlSensor – führt eine SQL-Abfrage aus und prüft auf Inhalt
  • Viele weitere in airflow.sensors und airflow.providers.*.sensors
Einführung in Apache Airflow mit Python

Warum Sensoren?

Nutze einen Sensor, wenn …

  • unklar ist, wann die Bedingung eintritt
  • ein sofortiger Fehler nicht gewünscht ist
  • du Wiederholungen ohne Schleifen brauchst
Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...