O Dataflow Prime é uma plataforma de processamento de dados sem servidor para pipelines do Apache Beam. Baseado no Dataflow, o Dataflow Prime usa uma arquitetura de computação e separada por estado. Nos casos a seguir, o Dataflow Prime pode melhorar a eficiência do pipeline:
- Seu pipeline se beneficiaria do escalonamento automático vertical.
O Dataflow Prime é compatível com pipelines em lote e de streaming. Por padrão, o Dataflow Prime usa o Dataflow Shuffle e o Dataflow Runner V2 para pipelines em lote.
Suporte à versão do SDK
O Dataflow Prime é compatível com os seguintes SDKs do Apache Beam:
SDK do Apache Beam para Python versão 2.21.0 ou posterior
SDK do Apache Beam para Java versão 2.30.0 ou posterior
SDK do Apache Beam para Go versão 2.44.0 ou posterior
Para fazer o download do pacote do SDK ou ler as notas da versão, consulte Downloads do Apache Beam.
Recursos do Dataflow Prime
Esta é a lista de recursos compatíveis com o Dataflow Prime para diferentes tipos de pipelines:
- Escalonamento automático vertical (memória). É compatível com pipelines de streaming em Python, Java e Go.
- Ajuste direito (dicas de recursos). Compatível com pipelines em lote em Python e Java.
- Visualizador de jobs. Compatível com pipelines em lote em Python e Java.
- Recomendações inteligentes. Compatível com pipelines de streaming e em lote no Python e Java.
- Pipelines de dados. Compatível com pipelines de streaming e em lote no Python e Java.
Os recursos Job Visualizer, Smart Recommendations e Data Pipelines também são compatíveis com jobs que não são do Dataflow Prime.
Escalonamento automático vertical
Esse recurso ajusta automaticamente a memória disponível para as VMs de worker do Dataflow para atender às necessidades do pipeline e ajudar a evitar erros de falta de memória. No Dataflow Prime, o escalonamento automático vertical funciona com o escalonamento automático horizontal para escalonar recursos dinamicamente.
Para mais informações, consulte Escalonamento automático vertical.
Ajuste direito
Esse recurso usa dicas de recursos (em inglês), um recurso do Apache Beam. Com as dicas de recursos, é possível especificar requisitos de recursos para todo o pipeline ou para etapas específicas dele. Este recurso permite criar workers personalizados para diferentes etapas de um pipeline. O ajuste correto permite especificar recursos de pipeline para maximizar a eficiência, reduzir os custos operacionais e evitar erros de falta de memória e outros recursos. Ele suporta dicas de recursos de memória e GPU.
O ajuste correto requer o Apache Beam 2.30.0 ou mais recente.
Para mais informações, consulte Ajuste direito.
Visualização de job
Esse recurso permite ver o desempenho de um job do Dataflow e otimizar o desempenho dele, encontrando código ineficiente, incluindo gargalos de carregamento em paralelo. No Console do Google Cloud, clique em qualquer job do Dataflow na página Jobs para visualizar os detalhes. Também é possível ver a lista de etapas associadas a cada estágio do pipeline.
Para mais informações, consulte Detalhes da execução.
Recomendações inteligentes
Esse recurso permite otimizar e solucionar problemas do pipeline com base nas recomendações fornecidas na guia Diagnóstico da página de detalhes do job. No Console do Google Cloud, clique em qualquer job do Dataflow na página Jobs para visualizar os detalhes.
Para mais informações, consulte Recomendações e diagnósticos.
Pipelines de dados
Esse recurso permite programar jobs, observar utilizações de recursos, rastrear objetivos de atualização de dados para dados de streaming e otimizar pipelines.
Para mais informações, consulte Como trabalhar com pipelines de dados.
Requisitos de cota e limite
As cotas e os limites são os mesmos para o Dataflow e o Dataflow Prime. Para mais informações, consulte Cotas e limites.
Se você optar por Data Pipelines, haverá outras implicações para cotas e regiões.
Recursos não compatíveis
O Dataflow Prime não é compatível com o seguinte:
Designação de tipos de VM específicos usando a sinalização
--worker_machine_type
ou--machine_type
para pipelines Python e--workerMachineType
para pipelines Java.Visualizar ou usar o SSH para fazer login em VMs de worker.
As classes
MapState
eOrderedListState
para pipelines Java.Como usar o VPC Service Controls com escalonamento automático vertical. Se você ativar o Dataflow Prime e lançar um novo job em um perímetro do VPC Service Controls, o job usará o Dataflow Prime sem o escalonamento automático vertical.
Todas as opções de pipeline não mencionadas explicitamente antes ou na tabela de comparação de recursos funcionam da mesma forma no Dataflow e no Dataflow Prime.
Antes de usar o Dataflow Prime
Para usar o Dataflow Prime, é possível reutilizar o código do pipeline atual e ativar a opção experimental do Dataflow Prime com o Cloud Shell ou programaticamente.
O Dataflow Prime é compatível com versões anteriores de jobs em lote que usam o Dataflow Shuffle e jobs de streaming que usam o Streaming Engine. No entanto, recomendamos testar os pipelines com o Dataflow Prime antes de usá-los em um ambiente de produção.
Se o pipeline de streaming estiver em execução na produção, para usar o Dataflow Prime, execute as seguintes etapas:
Pare o pipeline:
Ative o Dataflow Prime.
Execute novamente o pipeline.
Ativar o Dataflow Prime
Para ativar o Dataflow Prime para um pipeline:
Ative a API Cloud Scaling.
O Dataflow Prime usa a API de escalonamento automático do Cloud para ajustar a memória dinamicamente.
Ative o Prime nas opções do pipeline.
É possível definir as opções de pipeline de maneira programática ou usando a linha de comando. Para as versões compatíveis do SDK do Apache Beam, ative a seguinte sinalização:
Java
--dataflowServiceOptions=enable_prime
Python
SDK do Apache Beam para Python versão 2.29.0 ou posterior
--dataflow_service_options=enable_prime
SDK do Apache Beam para Python versão 2.21.0 para 2.28.0:
--experiments=enable_prime
Go
--dataflow_service_options=enable_prime
Use o Dataflow Prime com modelos
Se você estiver usando modelos do Dataflow, poderá optar por ativar o Dataflow Prime de uma das seguintes maneiras:
Para jobs iniciados na página Criar job usando um modelo:
Acesse a página Criar job usando uma página de modelo.
No campo Experimento adicional, insira
enable_prime
.
Para jobs iniciados usando um modelo por meio da interface de linha de comando, transmita a sinalização
--additional-experiments=enable_prime
.Para ativar o Dataflow Prime ao criar um modelo, defina a sinalização
--experiments=enable_prime
.
Use o Dataflow Prime em notebooks do Apache Beam
Se você estiver usando um
notebook do Apache Beam,
poderá ativar o Dataflow Prime
de maneira programática
usando PipelineOptions
:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Para saber mais sobre como configurar as opções do Dataflow em um notebook, consulte Iniciar jobs do Dataflow em um pipeline criado no notebook.
Comparação de recursos entre o Dataflow e o Dataflow Prime
A tabela a seguir compara os recursos disponíveis para as duas variantes do Dataflow.
Recurso | Dataflow Prime | Dataflow |
---|---|---|
Executor V2 | Recurso padrão sem opção de desativação para jobs em lote e opcional para jobs de streaming | Recurso padrão com opção de desativação para jobs em lote e opcional para jobs de streaming |
Dataflow Shuffle para jobs em lote | Recurso padrão com a opção de desativar | Recurso padrão com a opção de desativar |
Streaming Engine para jobs de streaming | Recurso opcional para pipelines Java e sempre ativado para pipelines Python | Recurso opcional para pipelines Java e sempre ativado para pipelines do Python desde a versão 2.45.0 |
Escalonamento automático horizontal | Recurso padrão sem opção para desativar | Recurso padrão sem opção para desativar |
Escalonamento automático vertical | Recurso padrão sem opção para desativar | Não aplicável |
Ajuste direito | Recurso opcional | Recurso opcional |
Faturamento | Faturamento sem servidor | Faturamento padrão |
A seguir
- Leia sobre as cotas do Dataflow.
- Saiba como definir opções de pipeline.
- Veja as opções de pipeline disponíveis para pipelines do Java e do Python.
- Saiba mais sobre os recursos de ajuste automático do Dataflow Prime.
- Saiba mais sobre as GPUs do Dataflow.