Dataflow Prime è una piattaforma di elaborazione dei dati serverless per le pipeline Apache Beam. Basato su Dataflow, Dataflow Prime utilizza un'architettura di calcolo e stato separati. Nei seguenti casi, Dataflow Prime potrebbe migliorare l'efficienza della pipeline:
- La pipeline trarrebbe vantaggio dalla scalabilità automatica verticale.
Dataflow Prime supporta le pipeline in batch e in streaming. Per impostazione predefinita, Dataflow Prime utilizza Dataflow Shuffle e Dataflow Runner v2 per le pipeline in batch.
Supporto delle versioni dell'SDK
Dataflow Prime supporta i seguenti SDK Apache Beam:
SDK Apache Beam Python versione 2.21.0 o successive
SDK Apache Beam Java 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 i diversi tipi di pipeline:
- Scalabilità automatica verticale (memoria). Supporta le pipeline in streaming in Python, Java e Go.
- Visualizzatore job. Supporta le pipeline in batch in Python e Java.
- Consigli intelligenti. Supporta le pipeline in streaming e in batch in Python e Java.
- Pipeline di dati. Supporta le pipeline in streaming e in batch in Python e Java.
Le funzionalità Visualizzatore job, Consigli 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 Dataflow in base alle esigenze della pipeline e contribuisce a prevenire gli errori di memoria insufficiente. In Dataflow Prime, la scalabilità automatica verticale funziona insieme alla scalabilità automatica orizzontale per scalare le risorse in modo dinamico.
Per saperne di più, consulta Scalabilità automatica verticale.
Visualizzatore job
Questa funzionalità ti consente di visualizzare il rendimento di un job Dataflow e di ottimizzare il rendimento del job trovando codice inefficiente, inclusi i colli di bottiglia di parallelizzazione. Nella Google Cloud console, 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 saperne di più, consulta Dettagli di 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 Google Cloud console, puoi fare clic su qualsiasi job Dataflow nella pagina Job per visualizzarne i dettagli.
Per saperne di più, 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 in streaming e ottimizzare le pipeline.
Per saperne di più, consulta Utilizzo delle pipeline di dati.
Requisiti di quote e limiti
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:
- Designazione di tipi di VM specifici utilizzando il flag
--worker_machine_typeo--machine_typeper le pipeline Python e--workerMachineTypeper le pipeline Java. - Designazione di tipi di VM o piattaforme CPU specifici utilizzando parametri sperimentali, ad esempio
--additional-experiments=min_cpu_platform=...o--experiments=min_cpu_platform=.... Il tentativo di impostare una piattaforma CPU minima con Dataflow Prime potrebbe generare un errore come:Setting minimum CPU platform is not supported for the selected machine type e2-standard-2. - Visualizzazione o utilizzo di SSH per accedere alle VM worker.
- Pianificazione flessibile delle risorse (FlexRS).
- Selezione automatica delle VM. Quando utilizzi Dataflow Prime, la selezione automatica delle VM non è supportata.
- 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 la scalabilità automatica verticale.
- NVIDIA Multi-Process Service (MPS).
- Le pipeline Java che soddisfano i seguenti requisiti possono utilizzare le classi
MapStateeSetState:- utilizzare Streaming Engine
- utilizzare le versioni dell'SDK Apache Beam 2.58.0 e successive
- 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 abilitare l'opzione Dataflow Prime tramite Cloud Shell o a livello di programmazione.
Dataflow Prime è compatibile con i job in 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 esecuzione in produzione, per utilizzare Dataflow Prime:
Arresta la pipeline.
Abilita Dataflow Prime.
Esegui di nuovo la pipeline.
Abilita Dataflow Prime
Per abilitare Dataflow Prime per una pipeline:
Abilita l'API Cloud Autoscaling.
Dataflow Prime utilizza l'API Cloud Autoscaling per regolare dinamicamente la memoria.
Abilita Prime nelle opzioni della pipeline.
Puoi impostare le opzioni della pipeline a livello di programmazione 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 versione 2.29.0 o successive:
--dataflow_service_options=enable_prime
SDK Apache Beam Python versione da 2.21.0 a 2.28.0:
--experiments=enable_prime
Vai
--dataflow_service_options=enable_prime
Disabilita Dataflow Prime
A volte, ad esempio con alcuni modelli forniti da Google, Dataflow Prime potrebbe essere abilitato per impostazione predefinita. Per disabilitare esplicitamente Dataflow Prime e utilizzare Dataflow standard, imposta l'opzione della pipeline enable_prime su false.
Java
--dataflowServiceOptions=enable_prime=false
Python
SDK Apache Beam Python versione 2.29.0 o successive:
--dataflow_service_options=enable_prime=false
SDK Apache Beam Python versione da 2.21.0 a 2.28.0:
--experiments=enable_prime=false
Vai
--dataflow_service_options=enable_prime=false
Utilizza Dataflow Prime con i modelli
Se utilizzi i modelli Dataflow, puoi scegliere di abilitare 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 abilitare Dataflow Prime quando crei un modello, imposta il flag
--experiments=enable_prime.
Utilizza Dataflow Prime nei notebook Apache Beam
Se utilizzi un
notebook Apache Beam,
puoi abilitare Dataflow Prime
a livello di programmazione
utilizzando PipelineOptions:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Per saperne di più sull'impostazione delle opzioni Dataflow in un notebook, consulta Avviare job Dataflow da una pipeline creata nel notebook.
Confronto delle funzionalità tra Dataflow e Dataflow Prime
La tabella seguente confronta le funzionalità disponibili per entrambe le varianti di Dataflow.
| Funzionalità | Dataflow Prime | Dataflow |
|---|---|---|
| Runner v2 | Funzionalità predefinita senza opzione di disattivazione per i job in batch e facoltativa per i job in streaming | Funzionalità predefinita con un'opzione di disattivazione per i job in batch e facoltativa per i job in streaming |
| Dataflow Shuffle per i job in batch | Funzionalità predefinita con un'opzione di disattivazione | Funzionalità predefinita con un'opzione di 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 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
- Scopri di più sulle quote di Dataflow quotas.
- Scopri come impostare le opzioni della pipeline.
- Consulta le opzioni della pipeline disponibili per le pipeline Java e Python.
- Scopri di più sulle funzionalità di ottimizzazione automatica per Dataflow Prime.
- Scopri di più sulle GPU Dataflow.