Conheça o Apache Airflow: a solução perfeita para orquestrar fluxos de dados
- Por Rox Partner
[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]
Conheça a Rox School
Somos especialistas em cuidar dos seus dados, oferecendo soluções inovadoras e parcerias com os maiores nomes da tecnologia para manter você sempre à frente.