Sensori Airflow

Introduzione ad Apache Airflow in Python

Mike Metzger

Data Engineer

Sensori

  • Un operatore che aspetta che una condizione diventi vera
    • Creazione di un file
    • Caricamento di un record nel database
    • Risposta da una richiesta web
  • Puoi definire ogni quanto controllare la condizione
  • Assegnato ai task

Illustrazione di un sensore Airflow che aspetta che una condizione diventi vera

Introduzione ad Apache Airflow in Python

Dettagli dei sensori

  • Derivano da airflow.sdk.BaseSensorOperator
  • Argomenti del sensore:
  • mode - Come controllare la condizione
    • mode='poke' - Predefinito, esegue controlli ripetuti
    • mode='reschedule' - Libera lo slot del task e riprova dopo
  • poke_interval - Intervallo tra i controlli
  • timeout - Tempo massimo prima di fallire il task
  • Include anche gli attributi normali degli operatori
Introduzione ad Apache Airflow in Python

File sensor

  • Fa parte della libreria airflow.providers.standard.sensors
  • Verifica l'esistenza di un file in una certa posizione
  • Può anche controllare se esistono file in una directory
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()
Introduzione ad Apache Airflow in Python

Altri sensori

  • Molti altri in airflow.providers.*.sensors
  • ExternalTaskSensor - aspetta il completamento di un task in un altro DAG
  • HttpSensor - Richiede un URL e verifica il contenuto
  • SqlSensor - Esegue una query SQL per verificare il contenuto
Introduzione ad Apache Airflow in Python

Quando usare i sensori?

  • Quando non sai quando la condizione sarà vera
  • Quando non vuoi fallire subito
  • Per ripetere un task senza cicli

 

 

Illustrazione di un sensore Airflow che aspetta che una condizione diventi vera

Introduzione ad Apache Airflow in Python

Passiamo alla pratica!

Introduzione ad Apache Airflow in Python

Preparing Video For Download...