O Workflows e o Serviço Gerenciado para Apache Airflow podem ser usados na orquestração de serviços para combinar serviços e implementar a funcionalidade do aplicativo ou realizar o tratamento 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 compatível com cada produto.
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 do Workflows também são compatíveis com sequências simples de operações em Google Cloud serviços como o Cloud Storage e o BigQuery.
O Airflow Gerenciado foi projetado para orquestrar fluxos de trabalho baseados em dados (especialmente ETL/ELT). Ele é criado no projeto do Apache Airflow, mas o Airflow Gerenciado é totalmente gerenciado. O Airflow Gerenciado é compatível com seus pipelines onde quer que eles estejam, incluindo no local ou em várias plataformas em 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 processar alguns segundos de latência entre as execuções de tarefas. Use o Airflow Gerenciado para orquestrar serviços nos pipelines de dados, como acionar um job no BigQuery ou iniciar um pipeline do Dataflow. É possível usar operadores pré-existentes para se comunicar com vários serviços, e há mais de 150 operadores apenas para o Google Cloud 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 do 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 em 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. ↩