Use o Dataflow Prime

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 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_type ou --machine_type para pipelines Python e --workerMachineType para 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 MapState e SetState:
    • 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:

  1. Parar a tubagem.

  2. Ative o Dataflow Prime.

  3. Volte a executar a pipeline.

Ative o Dataflow Prime

Para ativar o Dataflow Prime para um pipeline:

  1. Ative a API Cloud Autoscaling.

    Ative a API

    O Dataflow Prime usa a API Cloud Autoscaling para ajustar dinamicamente a memória.

  2. 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:

  1. Para tarefas iniciadas a partir da página Criar tarefa a partir de modelo:

    1. Aceda à página Criar trabalho a partir de modelo.

      Aceda a Criar tarefa a partir de modelo

    2. No campo Experiência adicional, introduza enable_prime.

  2. Para tarefas iniciadas a partir de um modelo através da interface de linha de comandos, transmita a flag --additional-experiments=enable_prime.

  3. 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?