Use o Dataflow Prime

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:

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.

  • A classe OrderedListState para pipelines Java.

  • Programação flexível de recursos (FlexRS).

  • 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.

  • NVIDIA Multi-Process Service (MPS).

  • Os pipelines Java que atendem aos requisitos a seguir 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 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:

  1. Pare o pipeline:

  2. Ative o Dataflow Prime.

  3. Execute novamente o pipeline.

Ativar o Dataflow Prime

Para ativar o Dataflow Prime para um pipeline:

  1. Ative a API Cloud Scaling.

    Ativar a API

    O Dataflow Prime usa a API de escalonamento automático do Cloud para ajustar a memória dinamicamente.

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

  1. Para jobs iniciados na página Criar job usando um modelo:

    1. Acesse a página Criar job usando uma página de modelo.

      Acesse Criar job usando um modelo

    2. No campo Experimento adicional, insira enable_prime.

  2. Para jobs iniciados usando um modelo por meio da interface de linha de comando, transmita a sinalização --additional-experiments=enable_prime.

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