Airflow Sensors

Introduktion till Apache Airflow i Python

Mike Metzger

Data Engineer

Sensorer

  • En operator som väntar på att ett visst villkor uppfylls
    • Att en fil skapas
    • Att en databaspost laddas upp
    • Svar från en webbförfrågan
  • Kan ange hur ofta villkoret ska kontrolleras
  • Tilldelas uppgifter

Illustration av en Airflow-sensor som väntar på att ett villkor uppfylls

Introduktion till Apache Airflow i Python

Sensordetaljer

  • Härledd från airflow.sdk.BaseSensorOperator
  • Sensorargument:
  • mode – Hur villkoret kontrolleras
    • mode='poke' – Standard: körs upprepat
    • mode='reschedule' – Frisläpp uppgiftsplats och försök igen senare
  • poke_interval – Hur länge att vänta mellan kontroller
  • timeout – Hur länge innan uppgiften misslyckas
  • Inkluderar även vanliga operatorattribut
Introduktion till Apache Airflow i Python

Filsensor

  • Ingår i biblioteket airflow.providers.standard.sensors
  • Kontrollerar om en fil finns på en angiven plats
  • Kan även kontrollera om filer finns i en katalog
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()
Introduktion till Apache Airflow i Python

Andra sensorer

  • Många fler i airflow.providers.*.sensors
  • ExternalTaskSensor – Väntar på att en uppgift i en annan DAG slutförs
  • HttpSensor – Hämtar en webbadress och kontrollerar innehållet
  • SqlSensor – Kör en SQL-fråga för att kontrollera innehållet
Introduktion till Apache Airflow i Python

När ska sensorer användas?

  • Osäkert när ett villkor uppfylls
  • Om ett fel inte ska inträffa omedelbart
  • Lägg till uppgiftsupprepning utan loopar

 

 

Illustration av en Airflow-sensor som väntar på att ett villkor uppfylls

Introduktion till Apache Airflow i Python

Nu kör vi en övning!

Introduktion till Apache Airflow i Python

Preparing Video For Download...