Por favor, deixe os seus contactos, enviar-lhe-emos o nosso whitepaper por e-mail
Autorizo o tratamento dos meus dados pessoais para o envio de materiais de marketing personalizados em conformidade com a Política de privacidade. Ao confirmar a submissão, o utilizador aceita receber materiais de marketing
Obrigado!

O formulário foi enviado com sucesso.
Encontrará mais informações na sua caixa de correio.

O Innowise é uma empresa internacional de desenvolvimento de software de ciclo completo fundada em 2007. Somos uma equipa de mais de 1600+ profissionais de TI que desenvolvem software para outros profissionais em todo o mundo.
Sobre nós
O Innowise é uma empresa internacional de desenvolvimento de software de ciclo completo fundada em 2007. Somos uma equipa de mais de 1600+ profissionais de TI que desenvolvem software para outros profissionais em todo o mundo.

O guia definitivo para o Apache Airflow

O que é o Apache Airflow?

O Apache Airflow é uma ferramenta para criar, organizar e monitorizar visualmente fluxos de trabalho e lançar cadeias de tarefas (pipelines) para processar, armazenar e visualizar dados. A Apache Software Foundation é proprietária da plataforma que ainda se encontra em fase de incubação, com 1000 colaboradores no GitHub e 13 000 estrelas.

Introdução ao Apache Airflow

O Apache Airflow é um serviço robusto, de código aberto, escrito em Python, usado por Engenheiros de dados para orquestrar fluxos de trabalho e pipelines, destacando as dependências, o código, os logs, as tarefas de acionamento, o progresso e o status de sucesso dos pipelines para solucionar problemas quando necessário.

Se a tarefa for concluída ou falhar, esta solução flexível, escalável e compatível com dados externos é capaz de enviar alertas e mensagens através do Slack ou do correio eletrónico. O Apache não impõe restrições quanto ao aspeto do fluxo de trabalho e possui uma interface fácil de utilizar para acompanhar e executar novamente as tarefas.

Como é que o Apache Airflow funciona?

Os pipelines são descritos com a utilização dos elementos principais do Apache:

DAG

A pedra angular da tecnologia é descrita por grafos acíclicos direccionados (DAGs). Este modelo é um grafo que não tem ciclos, mas tem caminhos paralelos provenientes do mesmo lote. Por outras palavras, o DAG é uma entidade que combina tarefas em função do pipeline de dados, onde a dependência entre aplicações se manifesta claramente.
Gráfico Acíclico Dirigido (DAG)
Gráfico Acíclico Dirigido (DAG)
A tarefa E é a tarefa final no DAG que depende da realização bem sucedida das tarefas anteriores à esquerda.

Operador

Um operador é um elemento separado na cadeia de tarefas (pipeline). Utilizando estes elementos, os programadores descrevem a tarefa que tem de ser executada. Apache Airflow tem uma lista de operadores predefinidos que incluem:
  • PythonOperator executa código Python
  • BashOperator executa scripts/comandos bash
  • PostgresOperator chama consultas SQL no PostgreSQL
  • RedshiftToS3Transfer executa comandos UNLOAD do Redshift para o S3
  • EmailOperator envia mensagens de correio eletrónico
As tarefas e os operadores são por vezes utilizados indistintamente, mas presumimos que se trata de conceitos diferentes, em que os operadores servem de padrões para gerar tarefas.

Sensor

O sensor é uma variação de um operador que encontra implementação em pipelines orientados por eventos. Exemplos:
  • PythonSensor aguarda que a função devolva True
  • O S3Sensor verifica a disponibilidade do objeto através da chave no contentor S3

Gancho

Os hooks são serviços de terceiros que interagem com plataformas externas (bases de dados e recursos API). Os hooks não devem possuir informações vulneráveis para evitar a fuga de dados.

Programador

Monitoriza todos os DAGs, trata dos fluxos de trabalho e submete as tarefas ao Executor.

Servidor Web

O servidor Web desempenha o papel de interface de utilizador do Apache Airflow. Ajuda a acompanhar o estado e o progresso das tarefas e a registar dados de depositários remotos.

Base de dados

Toda a informação pertinente é aí armazenada (tarefas, períodos de programação, estatísticas de cada sprint, etc.).

Executor

O executor executa tarefas e envia-as para os trabalhadores.

Finalmente, vamos demonstrar como o Apache funciona num exemplo simples. Em primeiro lugar, o Apache revê todos os DAGs em segundo plano. As tarefas urgentes que precisam de ser concluídas recebem a marca SCHEDULED na base de dados. O Agendador recupera as tarefas da base de dados e distribui-as pelos Executores. Depois disso, as tarefas recebem o estado QUEUED e, quando os trabalhadores começam a executá-las, é atribuído o estado RUNNING à tarefa. Quando a tarefa é concluída, o trabalhador indica-a como concluída/fracassada, dependendo do sucesso do resultado final, e o Programador de tarefas actualiza o estado na base de dados.

Arquitetura do Apache Airflow
Arquitetura do Apache Airflow

Características do Apache Airflow

Abaixo, listamos as características mais interessantes do Apache Airflow.

Fácil de utilizar

O conhecimento básico de Python é o único requisito para construir soluções na plataforma.

Código aberto

O serviço é gratuito, com muitos utilizadores activos em todo o mundo.

Integração fácil

É possível trabalhar sem problemas com produtos complementares de Microsoft Azure, Google Cloud Platform, Amazon AWS, etc.

Interface de utilizador amigável

Pode acompanhar o estado das tarefas agendadas e em curso em tempo real.

Princípios do Apache Airflow

Saiba mais sobre os princípios básicos do Apache Airflow abaixo.

Dinâmico

As condutas de fluxo de ar são configuradas como Código Python para tornar dinâmica a geração de condutas.

Extensível

Os utilizadores podem criar operadores, executores e bibliotecas definidos, adequados ao seu ambiente empresarial específico.

Escalável

O serviço não falha, uma vez que tem uma arquitetura modular e pode ser escalado até ao infinito.

Quais são as vantagens do Apache Airflow?

Estas incluem a automatização, a comunidade, a visualização dos processos empresariais, bem como a monitorização e o controlo adequados. Iremos passar brevemente em revista todos eles.

Comunidade

O serviço de código aberto conta com mais de 1000 colaboradores. Estes participam regularmente na sua atualização.

Visualização dos processos empresariais

O Apache é uma ferramenta perfeita para gerar uma "visão global" do sistema de gestão do fluxo de trabalho.

Automatização

A automatização facilita o trabalho dos engenheiros de dados e melhora o desempenho global.

Acompanhamento e controlo

O sistema integrado de alertas e notificações permite definir responsabilidades e implementar correcções.

Apache Airflow

Casos de utilização do Apache Airflow

A eficácia prática do serviço pode ser demonstrada nos seguintes casos de utilização:
  • Trabalhos em lote;
  • Agendamento e orquestração de fluxos de trabalho de pipelines de dados com o Airflow para um intervalo de tempo específico;
  • Pipelines ETL/ELT que funcionam com dados em lote;
  • Pipelines que recebem dados de fontes externas ou efectuam a transformação de dados;
  • Apache Airflow para modelos de treinamento de aprendizado de máquina e tarefas de acionamento no SageMaker;
  • Geração de relatórios;
  • Cópias de segurança de trabalhos DevOps e gravação dos resultados num cluster Hadoop após a execução de um trabalho Spark.

Apache Airflow como um serviço

Muitas plataformas de engenharia de dados com o Airflow utilizam a lógica básica e os benefícios do serviço e adicionam novos recursos para resolver desafios específicos. Podem ser designadas por alternativas ao Airflow da Apache, uma vez que têm funcionalidades bastante semelhantes:

  • Astro - uma plataforma de orquestração de dados para criar, executar e observar pipelines.
  • Google Cloud Composer - uma plataforma de orquestração de dados para criar, agendar e controlar pipelines.
  • Qubole - uma plataforma de lago de dados aberta para aprendizagem automática, streaming e análise ad-hoc.

Amazon Managed Workflows for Apache Airflow - um serviço de orquestração de fluxo de trabalho Airflow gerido para configurar e operar pipelines de dados no Amazon Web Services (AWS).

Conclusão

O Apache é uma poderosa ferramenta de engenharia de dados compatível com serviços e plataformas de terceiros. A migração para o Airflow é simples e sem problemas, independentemente da dimensão e das especificações da empresa.

O Grupo Innowise oferece uma profunda experiência em Apache de qualquer complexidade e âmbito. O Apache Airflow é a escolha perfeita para trazer ordem se um cliente sofre de má comunicação entre departamentos e procura mais transparência nos fluxos de trabalho.

Os nossos programadores especializados irão implementar um sistema modular altamente personalizado que melhora a operação com grandes volumes de dados e torna os processos Airflow totalmente geridos e adaptável às particularidades do seu ambiente empresarial.

Obrigado pela avaliação!
Obrigado pelo seu comentário!

Índice

Avaliar este artigo:

4/5

4.8/5 (45 comentários)

Conteúdo relacionado

Blogue
Agricultura inteligente
Blogue
ciclo de vida do desenvolvimento de software
Blogue
Subir a pirâmide: como estruturar uma equipa de desenvolvimento de software de elevado desempenho
Blogue
Abordagens para uma melhor migração para a nuvem
Blogue
Inteligência de decisão
Blogue
Inteligência artificial nos cuidados de saúde
Blogue
Blogue
Blogue

Trouxe-nos um desafio?

    Inclua os detalhes do projeto, a duração, o conjunto de tecnologias, os profissionais de TI necessários e outras informações relevantes
    Gravar uma mensagem de voz sobre o seu
    projeto para nos ajudar a compreendê-lo melhor
    Anexar documentos adicionais, se necessário
    Enviar ficheiro

    Pode anexar até 1 ficheiro de 2MB no total. Ficheiros válidos: pdf, jpg, jpeg, png

    Informamos que, ao clicar no botão Enviar, o Innowise's processará os seus dados pessoais de acordo com a nossa Política de Privacidade com o objectivo de lhe fornecer informações adequadas.

    O que é que acontece a seguir?

    1

    Após termos recebido e processado o seu pedido, entraremos em contacto consigo para detalhar as necessidades do seu projecto e assinar um NDA para garantir a confidencialidade das informações.

    2

    Após a análise dos requisitos, os nossos analistas e programadores elaboram uma proposta de projecto com o âmbito dos trabalhos, tamanho da equipa, tempo e custos e custos.

    3

    Marcamos uma reunião consigo para discutir a oferta e chegar a um acordo.

    4

    Assinamos um contrato e começamos a trabalhar no seu projecto o mais rapidamente possível.

    Obrigado!

    A sua mensagem foi enviada.
    Processaremos o seu pedido e contactá-lo-emos o mais rapidamente possível.

    Obrigado!

    A sua mensagem foi enviada.
    Processaremos o seu pedido e contactá-lo-emos o mais rapidamente possível.

    seta