- Data Hackers Newsletter
- Posts
- Porque o Airflow pode ser a escolha certa para gerenciar seus pipelines de dados
Porque o Airflow pode ser a escolha certa para gerenciar seus pipelines de dados
Veja como o Apache Airflow se destaca como uma plataforma open-source para a automação e monitoramento de workflows complexos.
O Apache Airflow é uma ferramenta open source revolucionária para gerenciar pipelines de dados, permitindo a automação e o monitoramento de workflows complexos com eficiência. Desde sua criação pelo Airbnb em 2015, o Airflow se consolidou como a escolha preferida de profissionais de engenharia de dados em busca de soluções flexíveis e escaláveis.
Neste post, vamos explorar as funcionalidades essenciais do Airflow, como sua interface gráfica que facilita a visualização de tarefas e sua capacidade de agendamento flexível, e ensinaremos ainda a configurar essa poderosa ferramenta em seu ambiente, permitindo a construção de DAGs que atendam a diferentes necessidades de projeto.
O que é o Apache Airflow?
O Apache Airflow é uma ferramenta de orquestração de fluxos de trabalho, desenvolvida inicialmente pelo Airbnb. Sua popularidade se deve à capacidade de automatizar processos complexos através do agendamento e monitoramento de tarefas.
A estrutura do Airflow baseia-se no conceito de DAGs (Grafos Acíclicos Diretos), que permite aos usuários estruturar fluxos de dados de forma organizada. Cada DAG pode conter várias tasks (tarefas) executadas através de operadores pré-definidos, como BashOperator, PythonOperator e EmailOperator.
Componentes principais do Apache Airflow
Os principais componentes do Apache Airflow incluem:
- airflow-scheduler: Monitora as tasks e DAGs, iniciando-as assim que suas dependências são concluídas. 
- airflow-worker: Executa as tasks, permitindo a distribuição de várias instâncias na rede e assegurando escalabilidade eficiente. 
- broker: Gerencia o envio de mensagens do scheduler para os workers. 
- airflow-webserver: Proporciona uma interface gráfica para interação com a ferramenta. 
- banco de dados: Armazena informações relacionadas ao Airflow e suas operações. 
O Airflow possibilita a implementação de abordagens de tratamento de dados como ETL (Extração, Transformação e Carga) e ELT (Extração, Carga e Transformação). No modelo ETL, a ferramenta facilita o processamento distribuído utilizando o mecanismo XCom para a comunicação entre as tasks. No modelo ELT, o Airflow manipula dados diretamente em sistemas de gerenciamento de bancos de dados (SGBD), aproveitando suas capacidades otimizadas.

O Apache Airflow foi desenvolvido pela turma do Airbnb para seu próprio uso, e desde então se tornou uma das ferramentas mais populares para gerenciar pipelines de dados
Funções do Apache Airflow
O Apache Airflow oferece diversas funções fundamentais para a gestão de pipelines de dados. A seguir, algumas das principais funções que destacam sua importância na orquestração de workflows:
- Definição de Fluxos de Trabalho: Permite a definição de fluxos de trabalho complexos em forma de DAGs, facilitando a visualização e organização das tarefas. 
- Automatização de Pipelines de Dados: Simplifica a construção e execução de pipelines complexos, automatizando tarefas repetitivas. 
- Agendamento Flexível: Possibilita especificar quando as tarefas devem ser executadas, gerenciando automaticamente as dependências. 
- Monitoramento e Notificação: Proporciona monitoramento em tempo real e notifica sobre o status das tarefas, incluindo logs detalhados e alertas configuráveis. 
- Gerenciamento de Dependências: Garante que cada tarefa seja executada apenas quando todas as suas dependências anteriores tiverem sido concluídas. 
- Execução Paralela de Tarefas: Permite a execução simultânea de múltiplas tarefas, melhorando a performance e eficiência no processamento de dados. 
- Integração com Diversos Sistemas: Integra-se com serviços como Google Cloud Platform, AWS e bancos de dados, ampliando sua flexibilidade. 
- Escalabilidade e Extensibilidade: Projetado para escalar conforme a necessidade, gerenciando grandes volumes de dados e permitindo a adição de plugins e ferramentas que incrementam suas funcionalidades. 
Essas funções tornam o Apache Airflow uma ferramenta poderosa e indispensável para equipes de engenharia de dados que buscam automatizar e monitorar fluxos de trabalho de forma eficaz.
Como instalar o Apache Airflow
A instalação do Apache Airflow pode ser feita de diferentes maneiras, dependendo do ambiente que você está utilizando. A seguir, estão os passos comuns para realizar essa instalação.
Passo 1: Pré-requisitos
Certifique-se de que você possui o Python (versões 3.6 a 3.10 são recomendadas) e o pip instalados em seu sistema. Para Ubuntu, execute:
sudo apt-get update
sudo apt-get install python3 python3-pip
Para CentOS, utilize:
sudo yum update
sudo yum install python3 python3-pip
Passo 2: Criar um ambiente virtual
Crie um ambiente virtual para evitar conflitos de dependência:
python -m venv myenv
source myenv/bin/activate  # Para sistemas Unix
myenv\Scripts\activate  # Para Windows
Passo 3: Instalar o Apache Airflow
Com o ambiente correto, instale o Apache Airflow usando o pip. Por exemplo, para instalar a versão 2.10.5, use:
pip install "apache-airflow[celery]==2.10.5" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.8.txt"
 Substitua 3.8 pelo número da versão do Python que você está utilizando, se necessário. 
Passo 4: Configurar o diretório do Airflow
Defina o diretório onde o Airflow armazenará seus arquivos de configuração e dados:
export AIRFLOW_HOME=~/airflow
Passo 5: Inicializar o banco de dados
Inicialize o banco de dados executando:
airflow db init
Passo 6: Iniciar o servidor web
Para iniciar o servidor web do Airflow, utilize o comando:
airflow webserver -p 8080
 O servidor estará disponível em http://localhost:8080 por padrão. 
Passo 7: Executar o agendador do Airflow
Inicie o agendador com:
airflow scheduler
Esses passos proporcionarão uma instalação básica do Apache Airflow. Você estará pronto para criar seus DAGs e gerenciar seus fluxos de trabalho com eficiência.
Como configurar o Apache Airflow para sua pipeline de dados?
Configurar o Apache Airflow para sua pipeline de dados pode parecer desafiador, mas com passos certos, você pode facilitar este processo. Abaixo estão algumas indicações para uma configuração eficaz.
Passo 1: Instalação das Ferramentas
Certifique-se de que você tenha as seguintes ferramentas instaladas:
- Docker 
- Docker Compose 
- VSCode 
- Git 
Passo 2: Criar um Repositório Git
Inicie um repositório Git para o seu projeto:
git init airflow_project
cd airflow_project
Passo 3: Criar Diretório para o Projeto
Crie um diretório para o Airflow e, se necessário, clone um repositório remoto:
mkdir airflow_project && cd airflow_project
git clone <seu-repositorio-git>
Passo 4: Criar o arquivo docker-compose.yaml
 Adicione o seguinte conteúdo ao arquivo docker-compose.yaml para definir os serviços do Airflow: 
version: '3'
services:
  airflow:
    image: apache/airflow:2.5.0
    container_name: airflow_container
    ports:
      - "8080:8080"
    environment:
      - AIRFLOW__CORE__EXECUTOR=LocalExecutor
      - AIRFLOW__CORE__LOAD_EXAMPLES=False
Passo 5: Iniciar o Ambiente
Execute o comando abaixo para iniciar o Airflow:
docker-compose up -d
Passo 6: Acessar a Interface do Airflow
 Abra seu navegador e acesse http://localhost:8080. O login padrão é airflow / airflow. 
Passo 7: Configurar o Banco de Dados SQLite
 Na configuração do seu pipeline, defina o caminho do banco de dados usando o parâmetro DB_PATH: 
DB_PATH = "weather_data.db"
Passo 8: Criar um DAG para ETL
 Crie um arquivo chamado weather_dag.py dentro do diretório dags/ do Airflow e implemente as funções para extrair, transformar e carregar os dados. 
Passo 9: Reiniciar o Airflow
Após adicionar as DAGs, reinicie o Airflow:
docker-compose restart
Passo 10: Monitoramento e Execução
Utilize a interface do Airflow para acompanhar os logs e execuções. Ative e execute a DAG criada manualmente para testar.
Após seguir esses passos, você terá configurado o Apache Airflow corretamente para gerenciar sua pipeline de dados de forma eficiente.

O bom gerenciamento de um pipeline de dados pode fazer toda a diferença nos resultados
Como acessar a interface do Apache Airflow?
Para acessar a interface do Apache Airflow, siga os passos abaixo:
- Verifique suas permissões: Certifique-se de que possui as permissões necessárias. Na AWS, você precisará da política de acesso - AmazonMWAAWebServerAccess.
- Acesse o console do Airflow: Se estiver utilizando o Amazon Managed Workflows for Apache Airflow (MWAA), abra a página "Ambientes" no console da AWS. Selecione o ambiente desejado e clique na opção "Abrir a IU do Airflow". 
- Use o comando apropriado: Para aqueles que instalaram o Airflow localmente com o Astro, inicie o servidor executando - astro dev start. Após um minuto, acesse a interface no navegador através de- http://localhost:8080/.
- JavaScript ativado: Para que a interface funcione corretamente, é recomendado que o JavaScript esteja ativado no seu navegador. 
Seguindo essas instruções, você conseguirá acessar facilmente a interface do Apache Airflow e gerenciar suas pipelines de dados com eficiência.
Concluindo
Neste post, mostramos como o Apache Airflow se estabeleceu como uma solução robusta para gerenciar pipelines de dados, destacando suas funcionalidades essenciais, como a automação de tarefas, o agendamento flexível e a integração com diversos sistemas. Com uma instalação simples e um ambiente bem configurado, você pode aproveitar ao máximo essa ferramenta poderosa que facilita a orquestração de workflows complexos.
Ao adotar o Apache Airflow, suas equipes de engenharia de dados ganham eficiência e agilidade na execução de suas tarefas diárias, com um gerenciamento mais eficaz das dependências e uma visão clara dos processos em andamento. Portanto, ao considerar opções para otimizar suas pipelines de dados, o Airflow certamente merece uma avaliação mais aprofundada.
