Dataflow Prime è una piattaforma di elaborazione dati serverless per le pipeline Apache Beam. Basato su Dataflow, Dataflow Prime utilizza un'architettura separata per l'elaborazione e lo stato. Nei seguenti casi, Dataflow Prime potrebbe migliorare l'efficienza della pipeline:
- La tua pipeline trarrebbe vantaggio dalla scalabilità automatica verticale.
Dataflow Prime supporta sia le pipeline in batch che quelle in streaming. Per impostazione predefinita, Dataflow Prime utilizza Dataflow Shuffle e Dataflow Runner v2 per le pipeline batch.
Supporto delle versioni dell'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 sulle risorse). Supporta le pipeline batch in Python e Java.
- Job Visualizer. Supporta le pipeline batch in Python e Java.
- Consigli intelligenti. Supporta le pipeline sia in streaming che in batch in Python e Java.
- Data Pipelines. Supporta le pipeline sia in streaming che in batch in Python e Java.
Le funzionalità Visualizzatore job, Suggerimenti intelligenti e 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 di 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, consulta la sezione Scalabilità automatica verticale.
Adattabilità
Questa funzionalità utilizza suggerimenti sulle risorse, una funzionalità di Apache Beam. Utilizzando gli indizi sulle risorse, puoi specificare i requisiti delle risorse per l'intera pipeline o per passaggi specifici della pipeline. Questa funzionalità ti consente di creare worker personalizzati per diversi passaggi di una pipeline. La scelta giusta 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 i suggerimenti per le risorse di memoria e GPU.
Per il montaggio corretto è necessario Apache Beam 2.30.0 o versioni successive.
Per ulteriori informazioni, consulta la sezione Taglia giusta.
Visualizzatore job
Questa funzionalità ti consente di visualizzare il rendimento di un job Dataflow e di ottimizzarlo individuando il codice inefficiente, inclusi i colli di bottiglia della parallellizzazione. Nella console Google Cloud, puoi fare clic su qualsiasi job Dataflow nella pagina Job per visualizzarne i dettagli. Puoi anche visualizzare l'elenco dei passaggi associati a ogni fase della pipeline.
Per ulteriori informazioni, consulta Dettagli esecuzione.
Consigli intelligenti
Questa funzionalità ti consente di ottimizzare e risolvere i problemi della pipeline in base ai consigli 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 visualizzarne i dettagli.
Per ulteriori informazioni, consulta Consigli e 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 in streaming e ottimizzare le pipeline.
Per ulteriori informazioni, consulta Utilizzare le pipeline di dati.
Requisiti di quote e limiti
Le quote e i limiti sono gli stessi per Dataflow e Dataflow Prime. Per ulteriori informazioni, consulta Quote e limiti.
Se scegli Data Pipelines, ci sono implicazioni aggiuntive per quote e regioni.
Funzionalità non supportate
Dataflow Prime non supporta quanto segue:
Designazione di 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 di lavoro.
La classe
OrderedListState
per le pipeline Java.Utilizzo di Controlli di servizio VPC con il ridimensionamento automatico verticale. Se attivi Dataflow Prime e lanci un nuovo job all'interno di un perimetro di Controlli di servizio VPC, il job utilizzerà Dataflow Prime senza la scalabilità automatica verticale.
Le pipeline Java che soddisfano i seguenti requisiti possono utilizzare le classi
MapState
eSetState
.- utilizzare Streaming Engine
- Utilizza le versioni 2.58.0 e successive dell'SDK Apache Beam
- Non utilizzare Runner v2
Tutte le opzioni di 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 attivare l'opzione Dataflow Prime tramite Cloud Shell o tramite programmazione.
Dataflow Prime è compatibile con i job batch che utilizzano Dataflow Shuffle e i job in 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 in streaming è in produzione, per utilizzare Dataflow Prime, segui questi passaggi:
Interrompi la pipeline.
Attiva Dataflow Prime.
Esegui di nuovo la pipeline.
Abilita Dataflow Prime
Per attivare Dataflow Prime per una pipeline:
Abilita l'API Cloud Autoscaling.
Dataflow Prime utilizza l'API Cloud Autoscaling per regolare dinamicamente la memoria.
Attiva 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, 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:
Per i job avviati dalla pagina Crea job da modello:
Vai alla pagina Crea job da modello.
Nel campo Esperimento aggiuntivo, inserisci
enable_prime
.
Per i job avviati da un modello tramite l'interfaccia a riga di comando, passa il flag
--additional-experiments=enable_prime
.Per attivare Dataflow Prime quando crei un modello, imposta il flag
--experiments=enable_prime
.
Utilizzare Dataflow Prime nei notebook Apache Beam
Se utilizzi un
notebook Apache Beam,
puoi attivare Dataflow Prime
programmaticamente
utilizzando PipelineOptions
:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Per scoprire di più sull'impostazione delle opzioni di Dataflow in un notebook, consulta Avvia job Dataflow da una pipeline creata nel tuo notebook.
Confronto delle funzionalità tra Dataflow e Dataflow Prime
La tabella seguente mette a confronto 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 la disattivazione per i job batch e facoltativa per i job di streaming |
Dataflow Shuffle per i job batch | Funzionalità predefinita con un'opzione per la disattivazione | Funzionalità predefinita con un'opzione per la disattivazione |
Streaming Engine per i job in 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 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
- Scopri di più sulle quote di Dataflow.
- Scopri come impostare le opzioni della pipeline.
- Consulta le opzioni di pipeline disponibili per le pipeline Java e Python.
- Scopri di più sulle funzionalità di ottimizzazione automatica per Dataflow Prime.
- Scopri di più sulle GPU di Dataflow.