- Data Hackers Newsletter
- Posts
- Integrando Airflow com GitHub: saiba os passos para automatizar seus pipelines
Integrando Airflow com GitHub: saiba os passos para automatizar seus pipelines
Aprenda como conectar o Apache Airflow ao GitHub para gerenciar e monitorar seus fluxos de trabalho de forma dinâmica.
Integrar o Apache Airflow com o GitHub é uma estratégia poderosa que permite otimizar e monitorar seus pipelines de dados de forma dinâmica e eficiente. Neste post, você aprenderá como realizar essa integração, desde a instalação do Airflow até a configuração de conexões que automatizam seus fluxos de trabalho.
Descubra também como utilizar GitHub Actions para criar um fluxo de trabalho que ativa seus DAGs automaticamente, garantindo que todas as alterações de código estejam sob controle de versão. Se você busca aprimorar a orquestração de tarefas de dados, este guia é para você!
O que é Apache Airflow e qual a sua importância?
O Apache Airflow é uma ferramenta open-source projetada para a criação, agendamento e monitoramento de pipelines de dados de forma programática. Desenvolvido inicialmente no Airbnb em 2014 e integrado à Apache Software Foundation em 2019, o Airflow é popular por gerenciar processos de ETL complexos, especialmente quando há dependências entre tarefas.
A importância do Apache Airflow reside em sua capacidade de permitir que os usuários desenhem pipelines utilizando o conceito de DAG (Directed Acyclic Graph), onde cada tarefa e sua ordem de execução são claramente definidas. Isso facilita a orquestração de tarefas, melhora o monitoramento e proporciona uma abordagem robusta para a automação de processos de dados.
Com sua estrutura baseada em gráficos acíclicos direcionados, o Airflow permite gerenciar o fluxo da orquestração de forma eficiente, facilitando a implementação de abordagens distintas de tratamento de dados, como ETL (Extração, Transformação e Carga) e ELT (Extração, Carga e Transformação). A execução distribuída das tarefas em múltiplos workers torna o Airflow altamente escalável, adequado para grandes volumes de dados.
Além disso, sua flexibilidade e extensibilidade possibilitam que equipes de engenharia de dados desenvolvam pipelines complexos de forma simplificada, aproveitando as capacidades dos Sistemas de Gerenciamento de Bancos de Dados (SGBD). Essa capacidade de orquestração e integração de tarefas torna o Apache Airflow uma escolha valiosa para projetos de análise de dados e automação de workflows em contextos corporativos. Assim, a ferramenta é fundamental para equipes de Data Science que lidam com grandes volumes de dados.

O Apache Airflow está hoje entre as principais ferramentas para gerenciar pipelines de dados
Como instalar o Apache Airflow?
Para instalar o Apache Airflow, siga os métodos conforme suas necessidades e o ambiente que você deseja utilizar. Aqui estão as etapas gerais:
Passo 1: Install Python e Pip
Garanta que o Python e o Pip estejam instalados no seu sistema. Você pode verificar isso executando os seguintes comandos:
No Ubuntu:
sudo apt-get update sudo apt-get install python3 python3-pip
No CentOS:
sudo yum update sudo yum install python3 python3-pip
Verifique se a instalação foi bem-sucedida com:
python3 --version
Passo 2: Configurar o diretório home do Airflow
Defina a localização onde o Airflow armazenará seus arquivos de configuração e dados usando a variável de ambiente AIRFLOW_HOME
. Por exemplo:
export AIRFLOW_HOME=~/airflow
Substitua ~/airflow
pelo local desejado.
Passo 3: Instalar o Apache Airflow
Instale o Apache Airflow usando o seguinte comando:
pip3 install apache-airflow
Passo 4: Inicializar o backend
Após a instalação, inicialize o banco de dados backend com o comando:
airflow db init
Passo 5: Iniciar o servidor web
Inicie o servidor web do Airflow com:
airflow webserver -p 8080
O servidor será iniciado na porta 8080.
Passo 6: Executar o scheduler do Airflow
Inicie o scheduler do Airflow, que é responsável por agendar e executar as tarefas:
airflow scheduler
Acesso à interface web
Depois de seguir os passos acima, você pode acessar a interface web do Airflow navegando para http://localhost:8080
. Na primeira vez que acessar, você precisará criar um usuário com o comando:
airflow users create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin
Passos para integrar o Airflow com o GitHub
Integrar o Apache Airflow com o GitHub é uma ótima maneira de gerenciar e monitorar seus fluxos de trabalho. Aqui estão os passos detalhados para realizar essa integração.
Preparação
Antes de começar, exclua o diretório padrão de DAGs do Airflow e instale o Git. Além disso, clone o repositório onde seus arquivos DAGs estarão.
Configuração do Airflow
Navegue até a página de configurações de sua conta do Airflow e configure as Configurações de Controle de Versão, escolhendo o GitHub como repositório de implantação do DAG.
Passos para integração:
Acesse a seção "Home" e vá para "Cluster".
Selecione o cluster desejado e clique em "Editar" para modificar o repositório de implantação.
Na página de detalhes do cluster, acesse a aba de "Advanced Configuration".
No menu suspenso "Deployment Source", escolha "GIT Repository".
No campo "Repository URL", insira a URL do seu repositório Git, especificando a branch desejada.
Clique em "Create or Update" e, em seguida, "Push" para criar ou editar o cluster existente.
Após seguir esses passos, a integração entre Apache Airflow e GitHub estará completa, permitindo que o Airflow utilize os scripts diretamente do seu repositório.
Além disso, você pode usar GitHub Actions como uma alternativa leve para orquestrar seus DAGs do Airflow. Veja os passos para essa integração:
Defina seu DAG do Airflow: Certifique-se de que seu DAG esteja devidamente configurado no repositório do GitHub.
Crie um fluxo de trabalho do GitHub Actions: Configure um workflow que será acionado em situações como um push no repositório. Este workflow deve iniciar um ambiente Airflow temporário e executar o DAG. Um exemplo de arquivo de workflow seria:
name: Trigger Airflow DAG on: push: branches: - main jobs: trigger-airflow: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up Docker uses: docker/setup-buildx-action@v2 - name: Start Airflow with Docker run: | docker-compose up -d - name: Trigger Airflow DAG run: | docker exec -ti <airflow-webserver-container> airflow dags trigger example_dag - name: Clean up run: | docker-compose down
Configure o Docker Compose para o Airflow: Você precisará de um arquivo
docker-compose.yml
para definir como iniciar o Airflow em um ambiente contêinerizado.Automatize e monitore: Após ativar seu workflow, o GitHub Actions orquestrará o início do Airflow, execução do DAG e limpeza posterior. Você pode monitorar o status dos seus DAGs diretamente na interface do GitHub Actions.

A integração do Airflow com o GitHub permite imprimir um grande dinamismo a seus fluxos de trabalho
Como gerenciar conexões entre Airflow e GitHub?
Gerenciar conexões entre o Apache Airflow e o GitHub é crucial para otimizar seus fluxos de trabalho. Aqui estão os passos necessários para configurar e manter essas conexões.
1. Criação do Token de Acesso Pessoal
Crie um Token de Acesso Pessoal no GitHub com as permissões adequadas para que o Airflow acesse os repositórios necessários.
2. Configuração da Conexão no Airflow
No painel do Apache Airflow, vá para a seção de Conexões.
Insira o token de acesso pessoal criado anteriormente.
Para o GitHub Enterprise, especifique a URL correspondente do ambiente, seguindo o formato:
https://{hostname}/api/v3
3. Testar a Conexão
Após inserir todas as informações necessárias, teste se a conexão está funcionando corretamente. O painel do Airflow geralmente possui uma opção para testar conexões.
4. Gerenciamento de Permissões
Assegure-se de que as permissões do token de acesso estão configuradas corretamente, decidindo quais repositórios e operações o Airflow poderá realizar ao interagir com o GitHub.
5. Monitoramento e Manutenção
Após a configuração da conexão, monitore regularmente para verificar se as credenciais ainda são válidas e se as integrações estão funcionando como esperado. Mudanças no GitHub podem exigir atualizações na configuração.
6. Documentação das Conexões
Mantenha uma documentação clara sobre suas conexões. Registre quais tokens estão em uso, suas permissões e quando foram criados ou alterados.
Dicas para automatizar pipelines com Airflow e GitHub
Automatizar seus pipelines de dados utilizando o Apache Airflow em conjunto com o GitHub pode trazer eficiência, mantendo o seu código organizado. Aqui estão algumas dicas que podem ajudar nesse processo:
Use GitHub para controle de versão: Armazene seus DAGs em um repositório no GitHub para gerir versões do código e acompanhar alterações.
Implemente CI/CD: Utilize o GitHub Actions para configurar pipelines de Integração Contínua e Entrega Contínua (CI/CD), automatizando testes e implantações.
Organize o código por módulos: Mantenha seu código organizado, facilitando clareza e acesso.
Utilize a containerização: Aproveite o Docker para criar um ambiente consistente para sua instalação do Airflow.
Hooks de pré-compromisso: Integre uma configuração de pré-compromisso para garantir conformidade com as melhores práticas.
Teste e validação automática: Implementar testes para a qualidade dos dados ajuda a garantir que atendam critérios após cada etapa do ETL.
Monitoramento e alertas: Configure capacidades de monitoramento do Airflow para rastrear o status dos DAGs e prepare alertas para falhas.
Documentação: Mantenha documentação clara e concisa, com arquivos README para cada módulo.
Implementando essas dicas, você poderá automatizar seus pipelines de dados de maneira eficaz, gerenciando-os com o poder do Airflow e a colaboração do GitHub.
Concluindo
Integrando o Apache Airflow ao GitHub, você potencializa a automação e o controle de versões dos seus fluxos de trabalho, facilitando a gestão de DAGs e melhorando a colaboração entre as equipes. Ao seguir os passos descritos, você poderá não apenas otimizar seus pipelines de dados, mas também garantir um ambiente de trabalho mais organizado e eficiente.
Além disso, a implementação de GitHub Actions para automatizar a execução de DAGs proporciona uma camada adicional de controle sobre suas operações, permitindo uma resposta mais ágil a mudanças no código e contribuindo para a robustez dos seus processos de ETL/ELT. Com essa integração, você está bem equipado para enfrentar os desafios da orquestração de dados de maneira eficiente.