Airflow-sensors

Introductie tot Apache Airflow in Python

Mike Metzger

Data Engineer

Sensors

  • Een operator die wacht tot een voorwaarde waar is
    • Aanmaak van een bestand
    • Upload van een databaserecord
    • Antwoord op een webverzoek
  • Je kunt instellen hoe vaak er wordt gecheckt
  • Wordt aan taken gekoppeld

Illustratie van een Airflow-sensor die wacht tot een voorwaarde waar is

Introductie tot Apache Airflow in Python

Sensordetails

  • Afgeleid van airflow.sdk.BaseSensorOperator
  • Sensor-argumenten:
  • mode - Hoe te checken op de voorwaarde
    • mode='poke' - Standaard, herhaald uitvoeren
    • mode='reschedule' - Taakslot vrijgeven en later opnieuw proberen
  • poke_interval - Interval tussen checks
  • timeout - Hoe lang wachten voor taak faalt
  • Bevat ook normale operator-attributen
Introductie tot Apache Airflow in Python

Filesensor

  • Onderdeel van de bibliotheek airflow.providers.standard.sensors
  • Checkt of een bestand op een locatie bestaat
  • Kan ook checken of er bestanden in een map staan
from airflow.providers.standard.sensors.filesystem import FileSensor

file_sensor_task = FileSensor(task_id='file_sense',
                              filepath='salesdata.csv',
                              poke_interval=300,
                              timeout=3000
                              )

init_sales_cleanup() >> file_sensor_task >> generate_report()
Introductie tot Apache Airflow in Python

Andere sensors

  • Veel andere in airflow.providers.*.sensors
  • ExternalTaskSensor - wacht tot een taak in een andere DAG klaar is
  • HttpSensor - Vraagt een web-URL op en checkt op content
  • SqlSensor - Voert een SQL-query uit om op content te checken
Introductie tot Apache Airflow in Python

Wanneer sensors gebruiken?

  • Onzeker wanneer een voorwaarde waar wordt
  • Als je niet direct wilt falen
  • Herhaal taken zonder loops

 

 

Illustratie van een Airflow-sensor die wacht tot een voorwaarde waar is

Introductie tot Apache Airflow in Python

Laten we oefenen!

Introductie tot Apache Airflow in Python

Preparing Video For Download...