Área do cliente

Conheça o Apache Airflow: a solução perfeita para orquestrar fluxos de dados

Infraestrutura
Conheça as vantagens do apache airflow

[vc_row][vc_column][vc_column_text]A importância do Apache Airflow surgiu pois, um dos principais desafios para as empresas que trabalham com dados hoje em dia é garantir que a execução e manutenção dos fluxos de dados ocorra da forma mais harmônica possível. É essencial que se mantenha dentro dos horários previstos e que todos os usuários responsáveis sejam alertados e tenham visibilidade caso algum problema ocorra. E é exatamente isso que o Apache Airflow veio resolver.

O projeto do Apache Airflow se iniciou como um piloto dentro do Airbnb, em 2015, e desde então vem sendo adotado pelas maiores empresas do mundo todo, se tornando hoje a principal referência em ferramentas de orquestração no universo de dados. No final de 2020, a versão 2.0 foi oficialmente lançada, mostrando a maturidade do projeto e contínua evolução com apoio da comunidade, incluindo diversas melhorias tanto na experiência do usuário (melhorias na UI, Task Flow API, etc.), quanto em segurança e infraestrutura.

 

Onde utilizar o Airflow?

Uma das maiores dificuldades para os iniciantes do Airflow é definir qual será o ambiente e infraestrutura para rodar sua aplicação. Por se tratar de uma ferramenta open-source, com grande apoio da comunidade, existem muitas alternativas para rodá-la. 

É claro que essa escolha vai depender sempre dos requisitos técnicos e financeiros que você dispõe no momento. Porém, os casos mais comuns hoje são instâncias virtuais, Kubernetes e ambientes gerenciados. Para esse último, existem algumas opções oferecidas por players de cloud, como GCP Cloud Orchestrator, AWS Managed Workflows, e também SaaS, onde destacamos a empresa Astronomer, grande incentivadora da comunidade e uma importante responsável pela divulgação do Airflow no mercado.

Após definir a infraestrutura e rodar seu ambiente de Airflow, podemos iniciar a criação de nossos fluxos de dados. O projeto todo do Airflow foi desenvolvido em Python; logo, sua utilização pelos usuários também será feita dessa maneira. 

 

Quais as vantagens do Apache Airflow?

Embora existam outras opções concorrentes ao Airflow no mercado (como Luigi, Argo e Prefect), pode-se dizer que ela se tornou a solução mais querida e adotada para orquestração e agendamento de tarefas. Aqui estão algumas características pelas quais o Airflow se destaca:

  • Desenvolvimento todo em Python com baixo grau de complexidade
  • Integração com as ferramentas mais importantes do universo de dados
  • Documentação acessível e muito conteúdo produzido pela comunidade
  • Facilidade de criar e alterar fluxos simples e complexos de dados (DAGs, XCom)
  • Interface gráfica para acompanhamento dos jobs
  • Possibilidade de criação de componentes personalizados
  • Disponibilização de logs para auditoria de erros
  • Criar sistema de alertas com integração para Slack, E-mail, entre outros

 

Principais conceitos para entender o Apache Airflow

Para um entendimento rápido de como funciona a arquitetura dos fluxos no Airflow, podemos focar nos principais componentes:

  • DAGs: Abreviação de Direct Acyclic Graph, é a estrutura principal que representa um fluxo de dados. Poderia ser equivalente a um pipeline de dados. Geralmente, dentro de uma empresa, teremos várias DAGs, e cada uma terá uma função específica e geralmente independente (ex: Pipeline Dados A, Pipeline Dados B).
  • Tasks: Tarefas que serão executadas dentro da sua DAG. Uma DAG pode ter uma ou várias tasks atreladas. Alguns exemplos de tarefas são: execuções de scripts em Python, Bash, Spark, entre outras. Para que possamos escolher qual tipo de tarefa a Task irá executar e seus parâmetros, devemos atribuir um Operator para ela. As dependências entre uma task e outra são declaradas via script de maneira prática, formando a lógica do fluxo da DAG.
  • Operators: São os componentes pré-definidos (template) para executar as Tasks. Os componentes mais comuns são o BashOperator, PythonOperator, EmailOperator, entre outros. Existem de centenas a milhares de componentes das mais diversas tecnologias, prontos para serem utilizados. Porém, é possível desenvolver operadores personalizados caso necessário.
  • Executor: É o mecanismo que será responsável por executar as Tasks – o motor de execução. O Apache Airflow só poderá ter um executor definido para seu ambiente. Alguns exemplos são: KubernetesExecutor, SequentialExecutor e LocalExecutor
  • Scheduler: Um dos principais componentes do Airflow, é o responsável por monitorar as execuções das DAGs e iniciar novas tarefas quando elas estiverem disponíveis, nos horários estimados.

 

Conclusão

O Apache Airflow se tornou quase uma unanimidade no universo de dados hoje em dia, sendo utilizado por empresas como Airbnb, Walmart, Facebook, Adobe, entre outras. A Rox Partner é especializada na implementação de projetos de dados com Airflow, e tem vários clientes que já se beneficiam dessa ferramenta, além de contar com profissionais certificados. 

Se você está interessado em saber mais, entre em contato com nosso time ou consulte o site oficial do projeto aberto.[/vc_column_text][/vc_column][/vc_row]