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:

  1. Docker Desktop para Windows - Baixe e instale a partir do site oficial.

  2. WSL (Windows Subsystem for Linux) - instalado.

Passos:

  1. Criar um diretório para armazenar as configurações do Airflow.

  2. No terminal, execute:

    curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.8.2/docker-compose.yaml'
    
  3. Crie as pastas necessárias dentro do diretório:

    • config

    • dags

    • logs

    • plugins

  4. Inicie o ambiente com o comando:

    docker compose up airflow-init
    
  5. Para iniciar o Airflow, execute:

    docker compose up
    
  6. 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 chamado weather_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:

  1. Flexibilidade: O Airflow é altamente flexível e se integra a diversos sistemas de backend e ferramentas de processamento de dados.

  2. 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.

  3. Escalabilidade: O Airflow pode gerenciar pipelines de dados de qualquer tamanho, lidando com milhares de tarefas por dia.

  4. 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.

  5. Monitoramento em tempo real: O Apache Airflow fornece uma interface intuitiva para monitorar o status de cada tarefa em tempo real.

  6. Integração com outras ferramentas: Integra facilmente a bancos de dados, serviços em nuvem e sistemas de armazenamento.

  7. 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.