Utilizzare Dataflow Prime

Dataflow Prime è una piattaforma di elaborazione dei dati serverless per le pipeline Apache Beam. Basato su Dataflow, Dataflow Prime utilizza un'architettura separata per il calcolo e lo stato. Nei seguenti casi, Dataflow Prime potrebbe migliorare l'efficienza della pipeline:

Dataflow Prime supporta le pipeline sia in batch che in streaming. Per impostazione predefinita, Dataflow Prime utilizza Dataflow Shuffle e Dataflow Runner v2 per le pipeline batch.

Supporto delle versioni SDK

Dataflow Prime supporta i seguenti SDK Apache Beam:

  • SDK Apache Beam per Python versione 2.21.0 o successive

  • Apache Beam Java SDK versione 2.30.0 o successive

  • SDK Apache Beam Go versione 2.44.0 o successive

Per scaricare il pacchetto SDK o leggere le note di rilascio, consulta Download di Apache Beam.

Funzionalità di Dataflow Prime

Di seguito è riportato l'elenco delle funzionalità di Dataflow Prime supportate per diversi tipi di pipeline:

  • Scalabilità automatica verticale (memoria). Supporta le pipeline di streaming in Python, Java e Go.
  • Adattabilità (suggerimenti relativi alle risorse). Supporta le pipeline batch in Python e Java.
  • Visualizzatore di lavori. Supporta le pipeline batch in Python e Java.
  • Consigli intelligenti. Supporta le pipeline di streaming e batch in Python e Java.
  • Data Pipelines. Supporta le pipeline di streaming e batch in Python e Java.

Le funzionalità Visualizzatore job, Suggerimenti intelligenti e Data Pipelines sono supportate anche per i job non Dataflow Prime.

Scalabilità automatica verticale

Questa funzionalità regola automaticamente la memoria disponibile per le VM worker Dataflow in base alle esigenze della pipeline e contribuisce a evitare errori di esaurimento della memoria. In Dataflow Prime, la scalabilità automatica verticale funziona insieme alla scalabilità automatica orizzontale per scalare le risorse in modo dinamico.

Per ulteriori informazioni, vedi Scalabilità automatica verticale.

Adattabilità

Questa funzionalità utilizza suggerimenti per le risorse, una funzionalità di Apache Beam. Utilizzando i suggerimenti per le risorse, puoi specificare i requisiti delle risorse per l'intera pipeline o per passaggi specifici della pipeline. Questa funzionalità consente di creare worker personalizzati per i diversi passaggi di una pipeline. Il dimensionamento corretto ti consente di specificare le risorse della pipeline per massimizzare l'efficienza, ridurre i costi operativi ed evitare errori di esaurimento della memoria e di altre risorse. Supporta suggerimenti sulle risorse di memoria e GPU.

L'adattamento corretto richiede Apache Beam 2.30.0 o versioni successive.

Per ulteriori informazioni, vedi Montaggio corretto.

Visualizzatore job

Questa funzionalità consente di visualizzare le prestazioni di un job Dataflow e ottimizzare le prestazioni del job trovando codice inefficiente, inclusi colli di bottiglia di parallelizzazione. Nella Google Cloud console, puoi fare clic su qualsiasi job Dataflow nella pagina Job per visualizzare i dettagli del job. Puoi anche visualizzare l'elenco dei passaggi associati a ogni fase della pipeline.

Per saperne di più, consulta Dettagli di esecuzione.

Consigli intelligenti

Questa funzionalità ti consente di ottimizzare e risolvere i problemi della pipeline in base ai suggerimenti forniti nella scheda Diagnostica della pagina dei dettagli del job. Nella Google Cloud console, puoi fare clic su qualsiasi job Dataflow nella pagina Job per visualizzare i dettagli del job.

Per ulteriori informazioni, consulta Diagnostica.

Pipeline di dati

Questa funzionalità ti consente di pianificare i job, osservare l'utilizzo delle risorse, monitorare gli obiettivi di aggiornamento dei dati per i dati di streaming e ottimizzare le pipeline.

Per saperne di più, consulta Utilizzo delle pipeline di dati.

Requisiti di quote e limiti

Quote e limiti sono gli stessi per Dataflow e Dataflow Prime. Per ulteriori informazioni, consulta Quote e limiti.

Se scegli Data Pipelines, ci sono ulteriori implicazioni per quote e regioni.

Funzionalità non supportate

Dataflow Prime non supporta quanto segue:

  • Designando tipi di VM specifici utilizzando il flag --worker_machine_type o --machine_type per le pipeline Python e --workerMachineType per le pipeline Java.
  • Visualizzazione o utilizzo di SSH per accedere alle VM worker.
  • Pianificazione flessibile delle risorse (FlexRS).
  • Utilizzo dei controlli di servizio VPC con lo scalabilità automatica verticale. Se attivi Dataflow Prime e avvii un nuovo job all'interno di un perimetro Controlli di servizio VPC, il job utilizza Dataflow Prime senza la scalabilità automatica verticale.
  • NVIDIA Multi-Process Service (MPS).
  • Le pipeline Java che soddisfano i seguenti requisiti possono utilizzare le classi MapState e SetState:
    • utilizzare Streaming Engine
    • utilizzare le versioni 2.58.0 e successive dell'SDK Apache Beam
    • non utilizzare Runner v2

Tutte le opzioni della pipeline non menzionate esplicitamente in precedenza o nella tabella di confronto delle funzionalità funzionano allo stesso modo per Dataflow e Dataflow Prime.

Prima di utilizzare Dataflow Prime

Per utilizzare Dataflow Prime, puoi riutilizzare il codice della pipeline esistente e attivare l'opzione Dataflow Prime tramite Cloud Shell o a livello di programmazione.

Dataflow Prime è compatibile con i job batch che utilizzano Dataflow Shuffle e i job di streaming che utilizzano Streaming Engine. Tuttavia, ti consigliamo di testare le pipeline con Dataflow Prime prima di utilizzarle in un ambiente di produzione.

Se la pipeline di streaming è in esecuzione in produzione, per utilizzare Dataflow Prime, svolgi i seguenti passaggi:

  1. Arresta la pipeline.

  2. Attiva Dataflow Prime.

  3. Esegui di nuovo la pipeline.

Abilita Dataflow Prime

Per abilitare Dataflow Prime per una pipeline:

  1. Abilita l'API Cloud Autoscaling.

    Abilitare l'API

    Dataflow Prime utilizza l'API Cloud Autoscaling per regolare dinamicamente la memoria.

  2. Attiva Prime nelle opzioni pipeline.

    Puoi impostare le opzioni della pipeline in modo programmatico o utilizzando la riga di comando. Per le versioni dell'SDK Apache Beam supportate, attiva il seguente flag:

Java

--dataflowServiceOptions=enable_prime

Python

SDK Apache Beam per Python versione 2.29.0 o successive:

--dataflow_service_options=enable_prime

SDK Apache Beam per Python versione da 2.21.0 a 2.28.0:

--experiments=enable_prime

Vai

--dataflow_service_options=enable_prime

Utilizzare Dataflow Prime con i modelli

Se utilizzi i modelli Dataflow, puoi scegliere di attivare Dataflow Prime in uno dei seguenti modi:

  1. Per i job avviati dalla pagina Crea job da modello:

    1. Vai alla pagina Crea job da modello.

      Vai a Crea job da modello

    2. Nel campo Esperimento aggiuntivo, inserisci enable_prime.

  2. Per i job avviati da un modello tramite l'interfaccia a riga di comando, passa il flag --additional-experiments=enable_prime.

  3. Per abilitare Dataflow Prime quando crei un modello, imposta il flag --experiments=enable_prime.

Utilizzare Dataflow Prime nei blocchi note Apache Beam

Se utilizzi un notebook Apache Beam, puoi abilitare Dataflow Prime in modo programmatico utilizzando PipelineOptions:

options = pipeline_options.PipelineOptions(
    flags=[],
    dataflow_service_options=['enable_prime'],
)

Per scoprire di più sull'impostazione delle opzioni di Dataflow in un blocco note, consulta la sezione Avviare job Dataflow da una pipeline creata nel blocco note.

Confronto delle funzionalità tra Dataflow e Dataflow Prime

La seguente tabella confronta le funzionalità disponibili per entrambe le varianti di Dataflow.

Funzionalità Dataflow Prime Dataflow
Runner v2 Funzionalità predefinita senza possibilità di disattivazione per i job batch e facoltativa per i job di streaming Funzionalità predefinita con un'opzione per disattivarla per i job batch e facoltativa per i job di streaming
Dataflow Shuffle per i job batch Funzionalità predefinita con un'opzione per disattivarla Funzionalità predefinita con un'opzione per disattivarla
Streaming Engine per i job di streaming Funzionalità facoltativa per le pipeline Java e sempre attiva per le pipeline Python Funzionalità facoltativa per le pipeline Java e sempre attiva per le pipeline Python a partire dalla versione 2.45.0
Scalabilità automatica orizzontale Funzionalità predefinita con opzione di disattivazione Funzionalità predefinita con opzione di disattivazione
Scalabilità automatica verticale Funzionalità predefinita con opzione di disattivazione Non applicabile
Adattabilità Funzionalità facoltativa Funzionalità facoltativa
Fatturazione Fatturazione serverless Fatturazione standard

Passaggi successivi