Senzori Airflow

Introducere în Apache Airflow în Python

Mike Metzger

Data Engineer

Senzori

  • Un operator care așteaptă îndeplinirea unei condiții
    • Crearea unui fișier
    • Încărcarea unei înregistrări în baza de date
    • Răspuns la o solicitare web
  • Poate defini frecvența de verificare a condiției
  • Se atribuie sarcinilor

Ilustrație a unui senzor Airflow care așteaptă îndeplinirea unei condiții

Introducere în Apache Airflow în Python

Detalii despre senzori

  • Derivat din airflow.sdk.BaseSensorOperator
  • Argumente pentru senzori:
  • mode - Modul de verificare a condiției
    • mode='poke' - Implicit, rulare repetată
    • mode='reschedule' - Eliberează slotul și reîncearcă mai târziu
  • poke_interval - Intervalul dintre verificări
  • timeout - Durata maximă înainte de eșec
  • Include și atributele obișnuite ale operatorilor
Introducere în Apache Airflow în Python

Senzor de fișiere

  • Face parte din biblioteca airflow.providers.standard.sensors
  • Verifică existența unui fișier la o anumită locație
  • Poate verifica și existența oricărui fișier dintr-un director
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()
Introducere în Apache Airflow în Python

Alți senzori

  • Mulți alții în airflow.providers.*.sensors
  • ExternalTaskSensor - Așteaptă finalizarea unei sarcini dintr-un alt DAG
  • HttpSensor - Solicită un URL web și verifică conținutul
  • SqlSensor - Execută o interogare SQL pentru a verifica conținutul
Introducere în Apache Airflow în Python

Când se utilizează senzorii?

  • Când nu se știe când va fi îndeplinită condiția
  • Dacă eșecul imediat nu este dorit
  • Adăugarea repetării sarcinilor fără bucle

 

 

Ilustrație a unui senzor Airflow care așteaptă îndeplinirea unei condiții

Introducere în Apache Airflow în Python

Să exersăm!

Introducere în Apache Airflow în Python

Preparing Video For Download...