- 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 dehttp://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.