Os Workflows e o Serviço Gerenciado para Apache Airflow podem ser usados para orquestração de serviços, combinando serviços para implementar funcionalidades de aplicativos ou realizar processamento de dados. Embora semelhantes, eles foram projetados para diferentes grupos de casos de uso. Nesta página, você encontra informações úteis para escolher o produto certo para seu caso de uso.
principais diferenças
A principal diferença entre o Workflows e o Airflow Gerenciado é o tipo de arquitetura que cada produto foi projetado para oferecer suporte.
O Workflows orquestra vários serviços baseados em HTTP em um fluxo de trabalho durável e com estado. Ele tem baixa latência e pode processar um grande número de execuções. Ele também não tem servidor.
O Workflows é ótimo para encadear microsserviços, automatizar tarefas de infraestrutura, como iniciar ou interromper uma VM e integrar com sistemas externos. Os conectores Workflows também oferecem suporte a sequências simples de operações em serviços do Google Cloud , como Cloud Storage e BigQuery.
O Airflow gerenciado foi projetado para orquestrar fluxos de trabalho orientados a dados (principalmente ETL/ELT). Ele é criado com base no projeto Apache Airflow, mas o Airflow gerenciado é totalmente gerenciado. O Airflow Gerenciado oferece suporte aos seus pipelines onde quer que estejam, incluindo no local ou em várias plataformas de nuvem. Toda a lógica no Airflow Gerenciado, incluindo tarefas e programação, é expressa em Python como arquivos de definição de gráfico acíclico dirigido (DAG).
O Airflow gerenciado é ideal para cargas de trabalho em lote que podem lidar com alguns segundos de latência entre as execuções de tarefas. É possível usar o Airflow gerenciado para orquestrar serviços nos seus pipelines de dados, como acionar um job no BigQuery ou iniciar um pipeline do Dataflow. É possível usar operadores preexistentes para se comunicar com vários serviços, e há mais de 150 operadores apenas para o Google Cloud .
Comparação detalhada dos recursos
| Recurso | Workflows | Airflow gerenciado |
|---|---|---|
| Sintaxe | Sintaxe dos fluxos de trabalho no formato YAML ou JSON | Python |
| Modelo de estado | Controle de fluxo imperativo | DAG declarativo com resolução de dependência automática |
| Integrações | Solicitações HTTP e conectores | Operadores e sensores do Airflow |
| Como transmitir dados entre etapas | 512 KB para variáveis | 48 KB1 para XCom |
| Gatilhos e programação de execução | CLI gcloud, Google Cloud console, API Workflows, bibliotecas de cliente do Workflows, Cloud Scheduler | Programações em estilo Cron no arquivo de definição do DAG, sensores do Airflow |
| Padrões assíncronos |
|
Enquetes |
| Faça execuções paralelas | Execuções simultâneas do mesmo fluxo de trabalho ou dentro de um fluxo de trabalho usando etapas paralelas | Automático com base em dependências |
| Latência de execução | Milissegundos | Segundos |
| Baseado em código aberto | Não | Sim (Apache Airflow) |
| Modelo de escalonamento | Sem servidor (escalonamento vertical para demanda e até zero) | Aprovisionado |
| Modelo de faturamento | Baseado no uso (por etapa executada) | Baseado na capacidade provisionada |
| Recursos de processamento de dados | Não | Preenchimentos, capacidade de executar DAGs novamente |
-
Código-fonte de airflow.models.xcom. Documentação do Apache Airflow (em inglês). 2 de agosto de 2021. ↩