- Data Hackers Newsletter
- Posts
- Apache Airflow: o que é e como usar na sua pipeline de dados
Apache Airflow: o que é e como usar na sua pipeline de dados
Aprenda a instalar e configurar o Apache Airflow para orquestrar seus fluxos de trabalho de maneira eficiente.
Se você está buscando uma maneira eficaz de orquestrar seus fluxos de trabalho de dados, o Apache Airflow pode ser a solução que você precisa. Criado pelo Airbnb e depois convertido em um projeto de código aberto, o Airflow permite a automatização e o gerenciamento visual dos seus pipelines de dados através de DAGs (gráficos acíclicos direcionados). Neste post, você aprenderá a instalar e configurar essa poderosa ferramenta, além de descobrir suas funcionalidades e como implementá-la de forma eficaz em suas operações de ETL e ELT.
O que é o Apache Airflow?
O Apache Airflow é uma poderosa ferramenta de orquestração de pipelines de dados que permite gerenciar e executar fluxos de dados de maneira automatizada. Desenvolvido inicialmente pelo Airbnb em 2015 e transformado em um projeto de código aberto, o Airflow trouxe melhorias significativas em sua versão 2.0, incluindo segurança aprimorada e uma melhor experiência para o usuário.
Estrutura do Apache Airflow
A plataforma utiliza a linguagem Python para a criação de fluxos de trabalho, representados por DAGs. Cada DAG é composto por nós que correspondem a tarefas e arestas que definem as dependências entre elas. Os principais componentes do Airflow incluem:
Scheduler: monitora as tarefas e DAGs.
Worker: executa as tarefas.
Broker: atua como mensageiro entre o scheduler e o worker.
Webserver: fornece uma interface gráfica para interação.
O Apache Airflow é especialmente popular na engenharia de dados, sendo amplamente utilizado para a construção de pipelines nos paradigmas ETL (Extração, Transformação e Carga) e ELT (Extração, Carga e Transformação). A ferramenta oferece recursos como monitoramento contínuo e geração de logs para auditoria e resolução de erros.

Estrutura de funcionamento do Apache Airflow
Orquestração de Fluxos de Trabalho com Apache Airflow
O Apache Airflow permite a orquestração de fluxos de trabalho através da criação de DAGs. A modularidade e escalabilidade proporcionadas pelo Airflow ajudam a programar tarefas para execução em intervalos regulares, facilitando a automação dos processos.
Monitoramento e Extensibilidade
A interface web do Airflow oferece visibilidade sobre o status das tarefas, enquanto a extensibilidade permite a integração com diversos sistemas e serviços. A programação declarativa simplifica a gestão e manutenção dos fluxos de trabalho.
Além disso, o Apache Airflow é projetado para ser distribuído, possibilitando a execução de tarefas em vários workers, aproveitando o paralelismo e a escalabilidade.
Como instalar o Apache Airflow no seu sistema?
Para instalar o Apache Airflow, considere os métodos abaixo, dependendo do seu nível de familiaridade com a tecnologia:
1. Instalação com pip
Pré-requisitos: Certifique-se de que o Python 3 esteja instalado.
Passos:
Execute o seguinte comando no terminal:
pip install apache-airflow
Configure os componentes de um projeto Airflow, definindo o diretório inicial e criando um arquivo
airflow.cfg
.
2. Instalando com a CLI do Astro
Pré-requisitos: Python 3 e Docker instalados.
Passos:
Instale a CLI do Astro conforme indicado na documentação do Astronomer.
Use o comando a seguir para configurar um novo projeto Airflow:
astro dev init
Para iniciar o projeto, execute:
astro dev start
Acesse a interface do usuário do Airflow em
http://localhost:8080/
.
3. Usando Docker
Para instalar o Apache Airflow no Windows usando Docker, siga estes passos:
Pré-requisitos:
Docker Desktop para Windows - Baixe e instale a partir do site oficial.
WSL (Windows Subsystem for Linux) - instalado.
Passos:
Criar um diretório para armazenar as configurações do Airflow.
No terminal, execute:
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.8.2/docker-compose.yaml'
Crie as pastas necessárias dentro do diretório:
config
dags
logs
plugins
Inicie o ambiente com o comando:
docker compose up airflow-init
Para iniciar o Airflow, execute:
docker compose up
Acesse o Airflow no navegador em
http://localhost:8080/
. O username e a senha padrão são ambos "airflow".
4. Usando serviços gerenciados
Se você prefere que alguém gerencie a instalação do Airflow por você, existem serviços gerenciados disponíveis que facilitam todo o processo.
5. Requisitos mínimos
Os requisitos mínimos para uma instalação em produção podem variar com base no ambiente e na complexidade do código. É sempre bom consultar a documentação oficial.
Depois de seguir essas instruções, você estará pronto para usar o Apache Airflow e orquestrar seus fluxos de trabalho de dados com eficiência.
Como configurar o Apache Airflow para sua pipeline de dados?
Configurar o Apache Airflow pode parecer desafiador, mas com os passos corretos, você conseguirá implementar uma solução eficiente:
1. Instalação das ferramentas necessárias
Instale o Docker e o Docker Compose.
Recomenda-se utilizar o VSCode como editor de código e ter o Git para controle de versões.
2. Criação do repositório
No terminal, crie um novo repositório Git:
git init airflow_project cd airflow_project
3. Configuração do Docker
Crie um diretório para o Airflow e clone seu repositório, se aplicável:
mkdir airflow_project && cd airflow_project git clone <seu-repositorio-git>
Crie um arquivo
docker-compose.yaml
no diretório: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
4. Inicie o ambiente
Execute o comando para criar e iniciar os contêineres:
docker-compose up -d
5. Acesso ao Airflow
Abra o VSCode no diretório do projeto:
code .
Acesse a interface do Airflow no navegador através de
http://localhost:8080
. O login padrão éairflow
e a senha também éairflow
.
6. Configuração do banco de dados SQLite
No seu pipeline, configure o caminho do banco de dados SQLite:
DB_PATH = "weather_data.db"
7. Criação do pipeline de dados
Dentro do diretório
dags/
, crie um arquivo chamadoweather_dag.py
e adicione seu código de ETL.
8. Registrar e executar o DAG
Reinicie o Airflow para garantir que a DAG foi carregada:
docker-compose restart
Para registrar as mudanças no Git:
git add . git commit -m "Implementação do pipeline de dados no Airflow" git push origin main
9. Monitoramento e execução
Utilize a interface do Airflow para monitorar logs e execuções. Você poderá ativar e executar sua DAG manualmente para testar.
Quais são os benefícios de usar o Apache Airflow?
O Apache Airflow oferece uma série de benefícios que o tornam uma escolha popular para a orquestração de fluxos de trabalho e gerenciamento de pipelines de dados:
Flexibilidade: O Airflow é altamente flexível e se integra a diversos sistemas de backend e ferramentas de processamento de dados.
Programação em Python: Os fluxos de trabalho são programados em Python, permitindo a criação de scripts complexos e automação de tarefas.
Escalabilidade: O Airflow pode gerenciar pipelines de dados de qualquer tamanho, lidando com milhares de tarefas por dia.
Agendamento inteligente: Utiliza o modelo DAG para definir os fluxos de trabalho, garantindo que as tarefas sejam executadas apenas quando todas as suas dependências forem atendidas.
Monitoramento em tempo real: O Apache Airflow fornece uma interface intuitiva para monitorar o status de cada tarefa em tempo real.
Integração com outras ferramentas: Integra facilmente a bancos de dados, serviços em nuvem e sistemas de armazenamento.
Comunidade ativa: O Airflow conta com uma extensa comunidade de desenvolvedores que continuamente melhora a plataforma, oferecendo suporte e recursos.
Vale a pena usar o Apache Airflow?
Se você está em busca de uma solução robusta para orquestrar seus fluxos de trabalho de dados, o Apache Airflow se destaca como uma excelente opção. Neste post, abordamos desde a instalação prática até a configuração, passando pelos benefícios que essa ferramenta oferece, como flexibilidade e escalabilidade. Com uma interface intuitiva e integração fácil com diversas tecnologias, o Airflow pode otimizar significativamente seus processos de ETL e ELT, tornando-o uma escolha popular entre os profissionais de dados.
Além disso, ao explorar as funcionalidades do Airflow, você se prepara para lidar com a complexidade crescente de dados nas organizações. A experiência de monitorar e gerenciar seus pipelines de forma eficiente não só melhora a produtividade, mas também proporciona uma visibilidade que é fundamental em um ambiente baseado em dados. Portanto, vale a pena considerar essa ferramenta na sua estratégia de engenharia de dados.