- Data Hackers Newsletter
- Posts
- Airflow em Docker: como rodar sua própria instância facilmente
Airflow em Docker: como rodar sua própria instância facilmente
Descubra como configurar o Apache Airflow utilizando Docker e simplifique a gestão dos seus dados
Você sabia que pode simplificar a gestão dos seus dados utilizando o Apache Airflow dentro de um ambiente Docker? Neste post, você vai aprender a configurar sua própria instância do Airflow facilmente, aproveitando sua robustez na orquestração de pipelines complexos com Python.
Veremos um passo a passo detalhado para rodar o Apache Airflow em Docker, desde a instalação até o monitoramento das DAGs, permitindo que você transforme rapidamente seus fluxos de trabalho de dados em processos automáticos e eficientes.
O que é Apache Airflow?
O Apache Airflow é uma ferramenta de orquestração de fluxo de trabalho open-source, originalmente desenvolvida pelo Airbnb, amplamente utilizada na área de engenharia de dados. Ele permite a construção de pipelines complexos que podem ser definidos programaticamente utilizando Python. O conceito central do Airflow é a utilização de gráficos acíclicos direcionados (DAGs), onde os nós representam tarefas específicas a serem executadas em uma determinada ordem.
Como funciona o Apache Airflow?
No funcionamento do Airflow, as tarefas e suas dependências são definidas por scripts em Python, oferecendo flexibilidade e acessibilidade para desenvolvedores organizarem e implementarem fluxos de trabalho complexos. Cada tarefa é gerenciada pelo airflow-scheduler, que monitora as DAGs e garante a execução das tarefas após a conclusão de suas dependências.
Componentes principais do Airflow
airflow-scheduler: Monitora as DAGs e orquestra a execução das tarefas.
airflow-worker: Realiza a execução das tarefas, permitindo a distribuição da carga de trabalho.
airflow-webserver: Fornece uma interface gráfica para interagir e visualizar os workflows.
O Airflow também permite gerenciar as dependências entre as tarefas, notificar em casos de falhas e realizar tentativas automáticas em caso de erro. Funcionalidades como a execução manual de tarefas e a depuração de problemas pela interface baseada na web facilitam ainda mais a utilização da ferramenta.
Essa ferramenta é especialmente eficaz para implementar abordagens de ETL (Extração, Transformação e Carga) e ELT (Extração, Carga e Transformação), onde o processamento distribuído das DAGs facilita a comunicação entre as tarefas.

Usar o Docker para configurar o Apache Airflow pode simplificar muito a gestão dos seus dados
Como utilizar o Apache Airflow em sua pipeline de dados?
Para utilizar o Apache Airflow em sua pipeline de dados, siga os passos abaixo:
1. Configuração do ambiente de desenvolvimento:
Instale o Docker: Certifique-se de que o Docker está instalado na sua máquina.
Baixar a imagem do Airflow: Execute o seguinte comando no terminal:
2. Configurar o Docker Compose:
Crie um arquivo
docker-compose.ymlcom as configurações necessárias para o Airflow.Inicie os serviços do Airflow com:
3. Adicionar seu código Python:
Copie o código Python que define suas DAGs para dentro do container do Airflow:
4. Criar sua primeira DAG:
Crie um arquivo Python (por exemplo,
my_first_dag.py) no diretóriodags, definindo sua DAG e as tarefas a serem executadas. Utilize operadores, como o BashOperator, para executar scripts ou outros comandos.
5. Implementação das tarefas:
Extração: Implemente uma tarefa para extrair dados de uma fonte, como uma API.
Transformação: Crie uma tarefa para transformar os dados, utilizando bibliotecas como o pandas.
Carga: Desenvolva uma tarefa para carregar os dados em um banco de dados.
6. Monitoramento:
Após ativar a DAG na interface do Airflow, o scheduler começará a executar as tarefas segundo o agendamento definido. Utilize a interface gráfica para monitorar a execução e analisar a performance das tarefas.
7. Teste e otimização:
Teste suas DAGs para garantir seu funcionamento. Utilize o comando
airflow initdbpara inicializar o banco de dados e ajuste as configurações se necessário.
Passo a passo: Como rodar Apache Airflow em Docker?
Para rodar o Apache Airflow em Docker, siga os passos abaixo:
1. Preparação do ambiente:
Instale a edição comunitária do Docker (Docker Community Edition) em sua máquina.
Instale o Docker Compose (v2.14.0 ou mais recente).
Certifique-se de que a configuração do Docker tenha pelo menos 4 GB de memória disponível.
2. Obtenção do arquivo docker-compose.yaml:
Baixe o arquivo
docker-compose.yamlutilizando:
3. Inicialização do ambiente:
Crie os diretórios necessários:
Defina a variável de usuário do Airflow no arquivo
.env:Para sistemas que não suportam
AIRFLOW_UID, crie manualmente um.envcom:
4. Inicialização do banco de dados:
Execute o seguinte comando para migrações do banco de dados:
5. Execução do Airflow:
Inicie todos os serviços com:
6. Acesso ao ambiente:
Interaja com o Airflow de três maneiras:
Terminal: Execute comandos CLI nos serviços definidos (ex:
docker compose run airflow-worker airflow info).Navegador: Acesse a interface web em
http://localhost:8080. O login padrão éairflowe a senha éairflow.API REST: Envie requisições para o servidor web.
7. Limpeza do ambiente:
Para parar e remover contêineres e volumes de dados, execute:
Esses passos fornecerão um guia básico para iniciar e operar o Apache Airflow dentro de um ambiente Docker.
Como acessar a interface do Apache Airflow?
Para acessar a interface do Apache Airflow, siga estas etapas:
Acesse sua conta AWS com as permissões adequadas.
Permissões Necessárias: Verifique se sua conta tem as permissões da política
AmazonMWAAWebServerAccess.Abra o Console do Amazon MWAA:
Navegue até a página Ambientes no console do Amazon MWAA e escolha um ambiente criado.
Abrir a IU do Airflow: Clique na opção Abrir a IU do Airflow.
Lembre-se de que o Javascript deve estar ativado no seu navegador para usar a documentação da AWS adequadamente.
Vantagens de usar o Apache Airflow na orquestração de workflows
O Apache Airflow oferece diversas vantagens na orquestração de workflows, tornando-o uma escolha popular entre engenheiros de dados e equipes de análise. Abaixo, destacamos alguns dos principais benefícios:
Escalabilidade: O Airflow é projetado para ser altamente escalável, gerenciando pipelines de dados de qualquer tamanho, suportando milhares de tarefas por dia.
Flexibilidade: Permite a criação de pipelines em qualquer linguagem de programação e possui uma variedade de operadores pré-construídos.
Agendamento inteligente: O modelo DAG agenda tarefas com base em suas dependências, garantindo execuções corretas.
Monitoramento em tempo real: Possibilita o monitoramento do status dos pipelines com um painel intuitivo.
Integração com outras ferramentas: Integra-se facilmente a bancos de dados, serviços de nuvem e ferramentas de análise.
Comunidade ativa: Uma grande comunidade de desenvolvedores disponibiliza recursos, documentação e suporte.
Essas características fazem do Apache Airflow uma opção valiosa para orquestrar workflows de dados de forma programática e eficiente.
Vale a pena usar o Apache Airflow em Docker?
Com a configuração do Apache Airflow dentro de um ambiente Docker, você garante maior flexibilidade e facilidade na orquestração dos seus pipelines de dados. Através dos passos detalhados, ficou claro como essa ferramenta não só permite a execução automatizada de tarefas complexas, mas também possibilita a monitorização efetiva de cada etapa do seu fluxo de trabalho.
Ao adotar o Airflow, você se une a uma comunidade engajada e a um ecossistema robusto, vital para a evolução e otimização da engenharia de dados. Então, experimente essa abordagem e transforme a maneira como você gerencia suas operações de dados!