Sobes.tech
Middle

O que é o Apache Airflow?

sobes.tech IA

Resposta da IA

Apache Airflow é uma plataforma para criar, programar e monitorizar fluxos de trabalho (workflows) na forma de grafos acíclicos dirigidos (DAG). É utilizado para gerir processos ETL/ELT, iniciar tarefas de acordo com um horário e automatizar várias operações.

Componentes principais:

  • Scheduler: Responsável por disparar tarefas e enviá-las para execução.
  • Webserver: Fornece uma interface de utilizador para monitorizar DAGs, gerir tarefas e visualizar logs.
  • Worker: Executa as tarefas (Operators).
  • Database: Armazena o estado do Airflow, metadados dos DAGs, informações sobre tarefas e execuções.

Características e vantagens:

  • Python: Os fluxos de trabalho são escritos em Python.
  • Dinâmico: Os DAGs podem ser gerados dinamicamente.
  • Extensível: Facilita a criação de operadores e hooks personalizados.
  • Escalável: A arquitetura permite escalar horizontalmente os componentes.
  • GUI: Interface web informativa para monitorização e depuração.

Exemplo de um DAG simples:

from __future__ import annotations

import pendulum

from airflow.models.dag import DAG
from airflow.operators.bash import BashOperator

with DAG(
    dag_id="simple_bash_dag",
    start_date=pendulum.datetime(2023, 1, 1, tz="UTC"),
    schedule=None,
    catchup=False,
    tags=["example"],
) as dag:
    task1 = BashOperator(
        task_id="print_date",
        bash_command="date",
    )

    task2 = BashOperator(
        task_id="sleep_5",
        bash_command="sleep 5",
    )

    task3 = BashOperator(
        task_id="print_hello",
        bash_command="echo hello",
    )

    task1 >> task2 >> task3 # Определение порядка выполнения задач