Utilizza Dataflow Prime

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

Dataflow Prime supporta le pipeline in modalità batch e flusso. Per impostazione predefinita, Dataflow Prime utilizza Dataflow shuffling e Dataflow Runner V2 per le pipeline in modalità batch.

Supporto della versione dell'SDK

Dataflow Prime supporta i seguenti SDK Apache Beam:

  • SDK Apache Beam Python 2.21.0 o versioni successive

  • SDK Java Apache Beam versione 2.30.0 o successive

  • SDK Apache Beam Go versione 2.44.0 o successive

Per scaricare il pacchetto SDK o per leggere le note di rilascio, consulta la pagina relativa ai 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 in modalità flusso in Python, Java e Go.
  • La soluzione giusta per te (suggerimenti sulle risorse). Supporta pipeline batch in Python e Java.
  • Job Visualizer. Supporta pipeline batch in Python e Java.
  • Consigli intelligenti. Supporta le pipeline in modalità flusso e batch in Python e Java.
  • Pipeline di dati. Supporta le pipeline in modalità flusso e batch in Python e Java.

Le funzionalità di Job Visualizer, dei suggerimenti intelligenti e delle pipeline di dati sono supportate anche per i job non Dataflow Prime.

Scalabilità automatica verticale

Questa funzionalità regola automaticamente la memoria disponibile per le VM worker Dataflow per soddisfare le esigenze della pipeline e prevenire 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, consulta Scalabilità automatica verticale.

Adattabilità

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

Il adattamento destro richiede Apache Beam 2.30.0 o versioni successive.

Per ulteriori informazioni, consulta la sezione Adattamento corretto.

Visualizzatore job

Questa funzionalità consente di visualizzare le prestazioni di un job Dataflow e di ottimizzarle individuando un codice inefficiente, inclusi i colli di bottiglia del parallelismo. Nella console Google Cloud, 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 ciascuna fase della pipeline.

Per ulteriori informazioni, consulta Dettagli di esecuzione.

Consigli intelligenti

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

Per ulteriori informazioni, consulta la sezione Consigli e diagnostica.

Pipeline di dati

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

Per ulteriori informazioni, consulta la sezione Utilizzo delle pipeline di dati.

Requisiti di quota e limite

Le quote e i limiti sono gli stessi per Dataflow e Dataflow Prime. Per saperne di più, consulta Quote e limiti.

Se scegli le pipeline di dati, ci sono ulteriori implicazioni per quote e regioni.

Funzionalità non supportate

Dataflow Prime non supporta quanto segue:

  • Suggerimenti delle risorse per le trasformazioni multilingue. Per ulteriori informazioni su questa limitazione, consulta la documentazione di Apache Beam.

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

  • Le classi MapState e OrderedListState per le pipeline Java.

  • Tipi di finestre personalizzate.

  • Pianificazione flessibile delle risorse (FlexRS).

  • Utilizzo dei Controlli di servizio VPC con la scalabilità automatica verticale. Se abiliti Dataflow Prime e avvii un nuovo job all'interno di un perimetro dei Controlli di servizio VPC, il job utilizza Dataflow Prime senza scalabilità automatica verticale.

  • Servizio multi-processo NVIDIA (MPS).

Tutte le opzioni pipeline non esplicitamente menzionate 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 abilitare l'opzione Dataflow Prime tramite Cloud Shell o in modo programmatico.

Dataflow Prime è compatibile con le versioni precedenti dei job batch che utilizzano Dataflow Shuffle e dei job di inserimento di flussi 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 inserimento flussi è in esecuzione in produzione, per utilizzare Dataflow Prime, esegui questi 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 in modo dinamico la memoria.

  2. Abilita Prime nelle opzioni della pipeline.

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

Java

--dataflowServiceOptions=enable_prime

Python

SDK Apache Beam Python 2.29.0 o versioni successive:

--dataflow_service_options=enable_prime

SDK Apache Beam Python da 2.21.0 a 2.28.0:

--experiments=enable_prime

Go

--dataflow_service_options=enable_prime

Utilizza Dataflow Prime con i modelli

Se utilizzi i modelli Dataflow, puoi scegliere di abilitare 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 attivare Dataflow Prime quando crei un modello, imposta il flag --experiments=enable_prime.

Utilizza Dataflow Prime nei blocchi note Apache Beam

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

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

Per saperne di più sull'impostazione delle opzioni Dataflow in un blocco note, vedi Avviare job Dataflow da una pipeline creata nel blocco note.

Confronto delle funzionalità tra Dataflow e Dataflow Prime

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

Selezione delle Dataflow Prime Dataflow
Corsa V2 Funzionalità predefinita senza opzione di disattivazione per i job batch e facoltativa per i job di elaborazione in modalità flusso Funzionalità facoltativa
Dataflow shuffling per job batch Funzionalità predefinita senza opzione di disattivazione Funzionalità predefinita con un'opzione per disattivarla
Streaming Engine per i job di elaborazione in modalità flusso Funzionalità facoltativa per le pipeline Java e sempre attiva per le pipeline Python Funzionalità facoltativa per le pipeline Java e opzione di disattivazione per le pipeline Python
Scalabilità automatica orizzontale Funzionalità predefinita con opzione per disattivare Funzionalità predefinita con opzione per disattivare
Scalabilità automatica verticale Funzionalità predefinita con opzione per disattivare Non applicabile
Vestibilità perfetta Funzionalità facoltativa Funzionalità facoltativa
Fatturazione Fatturazione serverless Fatturazione standard

Passaggi successivi