O Dataflow Prime é uma plataforma de processamento de dados sem servidor para pipelines do Apache Beam. Com base no Dataflow, o Dataflow Prime usa uma arquitetura de computação e estado separados. Nos seguintes casos, o Dataflow Prime pode melhorar a eficiência do pipeline:
- O seu pipeline beneficiaria da escala automática vertical.
O Dataflow Prime suporta pipelines em lote e por streaming. Por predefinição, o Dataflow Prime usa o Dataflow Shuffle e o Dataflow Runner v2 para pipelines em lote.
Apoio técnico para versões do SDK
O Dataflow Prime suporta os seguintes SDKs do Apache Beam:
Versão 2.21.0 ou posterior do SDK Python do Apache Beam
Versão 2.30.0 ou posterior do SDK Java do Apache Beam
Versão 2.44.0 ou posterior do SDK Go do Apache Beam
Para transferir o pacote do SDK ou ler as notas de lançamento, consulte a página Transferências do Apache Beam.
Funcionalidades do Dataflow Prime
Segue-se a lista de funcionalidades do Dataflow Prime suportadas para diferentes tipos de pipelines:
- Escala automática vertical (memória). Suporta pipelines de streaming em Python, Java e Go.
- Encaixe correto (sugestões de recursos). Suporta pipelines em lote em Python e Java.
- Visualizador de empregos. Suporta pipelines em lote em Python e Java.
- Recomendações inteligentes. Suporta pipelines de streaming e em lote em Python e Java.
- Data pipelines. Suporta pipelines de streaming e em lote em Python e Java.
As funcionalidades Job Visualizer, recomendações inteligentes e pipelines de dados também são suportadas para tarefas Prime não pertencentes ao Dataflow.
Escala automática vertical
Esta funcionalidade ajusta automaticamente a memória disponível para as VMs do worker do Dataflow de acordo com as necessidades do pipeline e ajuda a evitar erros de falta de memória. No Dataflow Prime, a escala automática vertical funciona em conjunto com a escala automática horizontal para dimensionar os recursos dinamicamente.
Para mais informações, consulte o artigo Ajuste de escala automático vertical.
Encaixe à direita
Esta funcionalidade usa sugestões de recursos, uma funcionalidade do Apache Beam. Ao usar sugestões de recursos, pode especificar requisitos de recursos para todo o pipeline ou para passos específicos do pipeline. Esta funcionalidade permite-lhe criar trabalhadores personalizados para diferentes passos de um pipeline. O ajuste adequado permite especificar recursos de pipeline para maximizar a eficiência, reduzir o custo operacional e evitar erros de falta de memória e outros recursos. Suporta sugestões de memória e recursos da GPU.
O ajuste correto requer o Apache Beam 2.30.0 ou posterior.
Para mais informações, consulte Encaixe correto.
Visualizador de tarefas
Esta funcionalidade permite-lhe ver o desempenho de uma tarefa do Dataflow e otimizar o desempenho da tarefa encontrando código ineficiente, incluindo estrangulamentos de paralelização. Na Google Cloud consola, pode clicar em qualquer tarefa do Dataflow na página Tarefas para ver os detalhes da tarefa. Também pode ver a lista de passos associados a cada fase do pipeline.
Para mais informações, consulte os Detalhes da execução.
Recomendações inteligentes
Esta funcionalidade permite-lhe otimizar e resolver problemas do pipeline com base nas recomendações fornecidas no separador Diagnósticos da página de detalhes do trabalho. Na Google Cloud consola, pode clicar em qualquer tarefa do Dataflow na página Tarefas para ver os detalhes da tarefa.
Para mais informações, consulte Diagnósticos.
Data Pipelines
Esta funcionalidade permite-lhe agendar tarefas, observar as utilizações de recursos, acompanhar os objetivos de atualização de dados para dados de streaming e otimizar pipelines.
Para mais informações, consulte o artigo Trabalhar com pipelines de dados.
Requisitos de quota e limite
As quotas e os limites são os mesmos para o Dataflow e o Dataflow Prime. Para mais informações, consulte o artigo Quotas e limites.
Se optar por pipelines de dados, existem implicações adicionais para quotas e regiões.
Funcionalidades não suportadas
O Dataflow Prime não suporta o seguinte:
- Designar tipos de VMs específicos através da flag
--worker_machine_typeou--machine_typepara pipelines Python e--workerMachineTypepara pipelines Java. - Ver ou usar SSH para iniciar sessão em VMs de trabalho.
- Agendamento flexível de recursos (FlexRS).
- Usar os VPC Service Controls com o ajuste de escala automático vertical. Se ativar o Dataflow Prime e iniciar uma nova tarefa num perímetro dos VPC Service Controls, a tarefa usa o Dataflow Prime sem a escala automática vertical.
- NVIDIA Multi-Process Service (MPS).
- Os pipelines Java que cumprem os seguintes requisitos podem usar as classes
MapStateeSetState:- usar o Streaming Engine
- Use as versões 2.58.0 e posteriores do SDK do Apache Beam
- Não use o Runner v2
Todas as opções de pipeline não mencionadas explicitamente anteriormente ou na tabela de comparação de funcionalidades funcionam da mesma forma para o Dataflow e o Dataflow Prime.
Antes de usar o Dataflow Prime
Para usar o Dataflow Prime, pode reutilizar o código do pipeline existente e também ativar a opção do Dataflow Prime através do Cloud Shell ou por programação.
O Dataflow Prime é retrocompatível com tarefas em lote que usam o Dataflow Shuffle e tarefas de streaming que usam o Streaming Engine. No entanto, recomendamos que teste os seus pipelines com o Dataflow Prime antes de os usar num ambiente de produção.
Se o pipeline de streaming estiver em produção, para usar o Dataflow Prime, siga estes passos:
Parar a tubagem.
Ative o Dataflow Prime.
Volte a executar a pipeline.
Ative o Dataflow Prime
Para ativar o Dataflow Prime para um pipeline:
Ative a API Cloud Autoscaling.
O Dataflow Prime usa a API Cloud Autoscaling para ajustar dinamicamente a memória.
Ative o Prime nas opções da pipeline.
Pode definir as opções de pipeline de forma programática ou através da linha de comandos. Para versões do SDK do Apache Beam suportadas, ative a seguinte flag:
Java
--dataflowServiceOptions=enable_prime
Python
Versão 2.29.0 ou posterior do SDK do Apache Beam Python:
--dataflow_service_options=enable_prime
Versão 2.21.0 a 2.28.0 do SDK Python do Apache Beam:
--experiments=enable_prime
Ir
--dataflow_service_options=enable_prime
Desative o Dataflow Prime
Por vezes, como acontece com determinados modelos fornecidos pela Google, o Dataflow Prime
pode estar ativado por predefinição. Para desativar explicitamente o Dataflow Prime e usar o Dataflow padrão, defina a opção de pipeline como false.enable_prime
Java
--dataflowServiceOptions=enable_prime=false
Python
Versão 2.29.0 ou posterior do SDK do Apache Beam Python:
--dataflow_service_options=enable_prime=false
Versão 2.21.0 a 2.28.0 do SDK Python do Apache Beam:
--experiments=enable_prime=false
Ir
--dataflow_service_options=enable_prime=false
Use o Dataflow Prime com modelos
Se estiver a usar modelos do Dataflow, pode optar por ativar o Dataflow Prime de uma das seguintes formas:
Para tarefas iniciadas a partir da página Criar tarefa a partir de modelo:
Aceda à página Criar trabalho a partir de modelo.
No campo Experiência adicional, introduza
enable_prime.
Para tarefas iniciadas a partir de um modelo através da interface de linha de comandos, transmita a flag
--additional-experiments=enable_prime.Para ativar o Dataflow Prime quando cria um modelo, defina a flag
--experiments=enable_prime.
Use o Dataflow Prime em blocos de notas do Apache Beam
Se estiver a usar um
notebook do Apache Beam,
pode ativar o Dataflow Prime
por programação
usando PipelineOptions:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Para saber como definir opções do Dataflow num bloco de notas, consulte o artigo Inicie tarefas do Dataflow a partir de um pipeline criado no seu bloco de notas.
Comparação de funcionalidades entre o Dataflow e o Dataflow Prime
A tabela seguinte compara as funcionalidades disponíveis para ambas as variantes do Dataflow.
| Funcionalidade | Dataflow Prime | Dataflow |
|---|---|---|
| Runner v2 | Funcionalidade predefinida sem opção para desativar para trabalhos em lote e opcional para trabalhos de streaming | Funcionalidade predefinida com uma opção para desativar para trabalhos em lote e opcional para trabalhos de streaming |
| Dataflow Shuffle para tarefas em lote | Funcionalidade predefinida com uma opção para desativar | Funcionalidade predefinida com uma opção para desativar |
| Streaming Engine para tarefas de streaming | Funcionalidade opcional para pipelines Java e sempre ativada para pipelines Python | Funcionalidade opcional para pipelines Java e sempre ativada para pipelines Python desde a versão 2.45.0 |
| Redimensionamento automático horizontal | Funcionalidade predefinida com opção para desativar | Funcionalidade predefinida com opção para desativar |
| Escala automática vertical | Funcionalidade predefinida com opção para desativar | Não aplicável |
| Encaixe à direita | Funcionalidade opcional | Funcionalidade opcional |
| Faturação | Faturação sem servidor | Faturação padrão |
O que se segue?
- Leia acerca das quotas do Dataflow.
- Saiba como definir opções de pipeline.
- Veja as opções de pipeline disponíveis para pipelines Java e Python.
- Saiba mais sobre as funcionalidades de ajuste automático do Dataflow Prime.
- Saiba mais sobre as GPUs do Dataflow.