Sensores do Airflow

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

Sensores

O que é um sensor?

  • Um operador que espera uma condição ser verdadeira
    • Criação de um arquivo
    • Inserção de um registro no banco
    • Resposta específica de uma requisição web
  • Dá pra definir a frequência de checagem
  • É atribuído a tarefas
Introdução ao Apache Airflow em Python

Detalhes do sensor

  • Derivado de airflow.sensors.base_sensor_operator
  • Argumentos do sensor:
  • mode - Como checar a condição
    • mode='poke' - Padrão, roda repetidamente
    • mode='reschedule' - Libera o slot e tenta depois
  • poke_interval - Intervalo entre checagens
  • timeout - Tempo antes de falhar a tarefa
  • Inclui atributos normais de operador
Introdução ao Apache Airflow em Python

Sensor de arquivo

  • Faz parte da biblioteca airflow.sensors
  • Verifica se existe um arquivo em um local
  • Também pode checar se há arquivos em um diretório
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
Introdução ao Apache Airflow em Python

Outros sensores

  • ExternalTaskSensor - espera a conclusão de uma tarefa em outro DAG
  • HttpSensor - Faz uma requisição web e checa o conteúdo
  • SqlSensor - Roda uma query SQL para checar conteúdo
  • Muitos outros em airflow.sensors e airflow.providers.*.sensors
Introdução ao Apache Airflow em Python

Por que sensores?

Use um sensor quando...

  • O momento é incerto
  • Você não quer falhar imediatamente
  • Quer repetir tarefa sem loops
Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...