Sobes.tech
Middle

O que é o Apache Airflow?

sobes.tech IA

Resposta da IA

O Airflow é uma plataforma de código aberto para a criação, agendamento e monitorização de workflows. Permite definir tarefas e suas dependências em código Python, visualizar o seu gráfico (DAG), executar tarefas de acordo com um horário ou gatilhos, e também monitorizar a sua execução através de uma interface web.

Componentes principais do Airflow:

  • Scheduler: Inicia os workflows agendados.
  • Webserver: Fornece a interface de utilizador para gestão e monitorização.
  • Worker(s): Executam tarefas (depende do Executor).
  • Database: Armazena o estado dos workflows, tarefas, configuração e histórico.

DAG (Directed Acyclic Graph) é o conceito principal do Airflow. Um DAG representa um conjunto de tarefas (operadores), conectadas por dependências na forma de um grafo dirigido sem ciclos.

Exemplos de operadores:

  • BashOperator: Executa comandos bash.
  • PythonOperator: Executa funções Python.
  • PostgresOperator: Executa consultas SQL no PostgreSQL.

A arquitetura distribuída permite escalar o Airflow usando diferentes executores:

  • SequentialExecutor: Para testes, executa tarefas sequencialmente.
  • LocalExecutor: Executa tarefas em paralelo numa única máquina.
  • CeleryExecutor: Usa Celery para execução distribuída em múltiplos workers.
  • KubernetesExecutor: Executa cada tarefa num pod separado do Kubernetes.

Vantagens do Airflow:

  • Criação programática: Os workflows são definidos em código Python.
  • Dinâmico: Os DAGs podem ser gerados dinamicamente.
  • Extensível: Fácil criar operadores e hooks próprios.
  • Escalável: A arquitetura permite escalar o sistema.
  • Interface de utilizador: Interface web amigável para monitorização e gestão.