Questa pagina spiega come installare o aggiornare l'SDK Apache Beam in modo da poter eseguire le pipeline nel servizio Dataflow.
Installa l'SDK Apache Beam
L'SDK Apache Beam è un modello di programmazione open source per pipeline di dati. Definisci queste pipeline con un programma Apache Beam e puoi scegliere un runner, come Dataflow, per eseguire la pipeline.
Java
L'ultima versione di release dell'SDK Apache Beam per Java è la 2.77.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio di rilascio.
Per ottenere l'SDK Apache Beam per Java utilizzando Maven, utilizza uno degli artefatti rilasciati dal repository centrale Maven.
Aggiungi dipendenze e strumenti di gestione delle dipendenze al file
pom.xml per l'artefatto dell'SDK. Per maggiori dettagli, consulta
Gestire le dipendenze delle pipeline in Dataflow.
Per ulteriori informazioni sulle dipendenze dell'SDK Apache Beam per Java, consulta Dipendenze dell'SDK Apache Beam per Java e Gestione delle dipendenze di Beam in Java nella documentazione di Apache Beam.
Python
L'ultima versione rilasciata dell'SDK Apache Beam per Python è la 2.77.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio di rilascio.
Per ottenere l'SDK Apache Beam per Python, utilizza uno dei pacchetti rilasciati dall' indice dei pacchetti Python.
Installa il wheel di Python eseguendo il seguente comando:
pip install wheel
Installa l'ultima versione dell'SDK Apache Beam per Python eseguendo questo comando da un ambiente virtuale:
pip install 'apache-beam[gcp]'
A seconda della connessione, l'installazione potrebbe richiedere un po' di tempo.
Vai
L'ultima versione rilasciata dell'SDK Apache Beam per Go è la 2.77.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio di rilascio.
Per installare l'ultima versione dell'SDK Apache Beam per Go, esegui il seguente comando:
go get -u github.com/apache/beam/sdks/v2/go/pkg/beam
Configurazione dell'ambiente di sviluppo
Per informazioni sulla configurazione del Google Cloud progetto e dell'ambiente di sviluppo per l'utilizzo di Dataflow, segui uno dei tutorial:
- Crea una pipeline Dataflow con Java
- Crea una pipeline Dataflow con Python
- Crea una pipeline Dataflow con Go
Codice sorgente ed esempi
Il codice sorgente di Apache Beam è disponibile nel repository Apache Beam su GitHub.
Java
Gli esempi di codice sono disponibili nella directory degli esempi di Apache Beam su GitHub.
Python
Gli esempi di codice sono disponibili nella directory degli esempi di Apache Beam su GitHub.
Vai
Gli esempi di codice sono disponibili nella directory degli esempi di Apache Beam su GitHub.
Trova la versione dell'SDK Dataflow
I dettagli dell'installazione dipendono dall'ambiente di sviluppo. Se utilizzi Maven, puoi avere più versioni dell'SDK Dataflow "installate" in uno o più repository Maven locali.
Java
Per scoprire la versione dell'SDK Dataflow in esecuzione su una determinata pipeline, puoi esaminare
l'output della console quando esegui con DataflowPipelineRunner o
BlockingDataflowPipelineRunner. La console conterrà un messaggio simile a
quanto segue, che contiene le informazioni sulla versione dell'SDK Dataflow:
Python
Per scoprire la versione dell'SDK Dataflow in esecuzione su una determinata pipeline, puoi esaminare
l'output della console quando esegui con DataflowRunner. La console conterrà un messaggio simile a
quanto segue, che contiene le informazioni sulla versione dell'SDK Dataflow:
Vai
Per scoprire la versione dell'SDK Dataflow in esecuzione su una determinata pipeline, puoi esaminare
l'output della console quando esegui con DataflowRunner. La console conterrà un messaggio simile a
quanto segue, che contiene le informazioni sulla versione dell'SDK Dataflow:
INFO: Executing pipeline on the Dataflow Service, ... Dataflow SDK version: <version>
Aggiorna l'SDK Apache Beam
Quando esegui l'upgrade della pipeline a una versione successiva dell'SDK Apache Beam, aggiorna le configurazioni delle dipendenze del progetto e verifica la presenza di potenziali modifiche che provocano un errore tra le versioni.
Controlla le note di rilascio e le modifiche che provocano un errore
Prima di eseguire l'upgrade, controlla le note di rilascio di Apache Beam per le modifiche, le correzioni di bug e le potenziali modifiche che provocano un errore.
Se esegui l'upgrade di più versioni secondarie, esamina le note di rilascio per tutte le release intermedie. Ad esempio, se esegui l'upgrade dalla versione 2.50.0 alla 2.60.0, esamina le note di rilascio per le versioni da 2.51.0 a 2.60.0. Le modifiche che provocano un errore, i ritiri e gli aggiornamenti della configurazione sono cumulativi tra le release.
Per i problemi noti e gli avvisi specifici del connettore che interessano Dataflow, consulta la colonna Dettagli nella tabella Stato del supporto della versione dell'SDK.
Aggiorna le dipendenze dell'SDK
Per eseguire l'upgrade della versione dell'SDK nel progetto, aggiorna la configurazione di compilazione o l'ambiente di build per il linguaggio utilizzato dalla pipeline. Sostituisci VERSION con la versione dell'SDK Apache Beam di destinazione (ad esempio, 2.76.0).
Java
Per eseguire l'upgrade dell'SDK Apache Beam per Java, aggiorna la versione dell'SDK nel tuo
file di configurazione della build, ad esempio pom.xml per Maven o
build.gradle per Gradle.
Maven
Nel file pom.xml, aggiorna la proprietà beam.version
o il tag <version> nelle dipendenze di
Apache Beam:
<properties> <beam.version>VERSION</beam.version> </properties> <dependencies> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-java-core</artifactId> <version>${beam.version}</version> </dependency> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-runners-google-cloud-dataflow-java</artifactId> <version>${beam.version}</version> </dependency> </dependencies>
Gradle
Nel file build.gradle, aggiorna le dichiarazioni delle dipendenze di Apache Beam:
dependencies { implementation 'org.apache.beam:beam-sdks-java-core:VERSION' implementation 'org.apache.beam:beam-runners-google-cloud-dataflow-java:VERSION' }
Per saperne di più, consulta Gestire le dipendenze delle pipeline Java.
Python
Per eseguire l'upgrade dell'SDK Apache Beam per Python nell'ambiente locale o virtuale, utilizza pip:
pip install --upgrade 'apache-beam[gcp]==VERSION'
Nel file requirements.txt o setup.py, aggiorna
la versione bloccata:
apache-beam[gcp]==VERSION
Vai
Per eseguire l'upgrade dell'SDK Apache Beam per Go, utilizza go get per
recuperare la versione di destinazione e aggiorna il file go.mod:
go get -u github.com/apache/beam/sdks/v2@vVERSION go mod tidy
Per saperne di più, consulta Gestire le dipendenze delle pipeline Go.
Esegui il deployment delle pipeline aggiornate
Dopo aver aggiornato la versione dell'SDK nel codice, scegli una strategia di deployment in base al tipo di pipeline:
- Pipeline di streaming: per le pipeline di streaming, puoi eseguire il deployment del codice aggiornato utilizzando la sostituzione del job in loco, eseguendo pipeline parallele o arrestando e riavviando il job. Per istruzioni dettagliate, regole di compatibilità e strategie di deployment, consulta Aggiornare una pipeline esistente ed Eseguire l'upgrade di una pipeline di streaming.
- Pipeline batch: le pipeline batch non supportano gli aggiornamenti in volo o i job di sostituzione in loco. Consenti l'esecuzione del job esistente fino al completamento oppure annulla il job in esecuzione, e poi avvia un nuovo job con la versione dell'SDK aggiornata.
Best practice per CI/CD e aggiornamento dei deployment
Per ridurre al minimo il rischio operativo durante l'implementazione degli upgrade dell'SDK nelle pipeline di build e deployment automatiche, segui queste best practice:
- Blocca le dipendenze: blocca sempre le versioni esatte dell'SDK, ad esempio
apache-beam[gcp]==VERSIONin Python o le stringi di versione esatte in Maven e Gradle. Evita intervalli dinamici (ad esempio>=olatest) per impedire che si verifichino upgrade secondari non testati durante le build CI/CD automatiche. - Convalida negli ambienti di staging: esegui il deployment e testa la pipeline aggiornata in un ambiente di staging o di pre-produzione dedicato prima di promuovere le modifiche nell'ambiente di produzione. Convalida la velocità effettiva della pipeline, la stabilità delle metriche e gli output downstream.
- Utilizza una pipeline di test o parallela: per le applicazioni di streaming mission-critical, esegui la pipeline aggiornata in parallelo con la pipeline esistente. Verifica la parità dei dati e la correttezza dell'output tra entrambi i job prima di svuotare la pipeline precedente.
Passaggi successivi
- Dataflow si integra con Google Cloud CLI. Per istruzioni sull'installazione dell'interfaccia a riga di comando di Dataflow, consulta Utilizzare l'interfaccia a riga di comando di Dataflow.
- Per scoprire quali funzionalità di Apache Beam sono supportate da Dataflow, consulta la matrice delle funzionalità di Apache Beam.
- Esamina lo stato del supporto della versione dell'SDK per visualizzare le release dell'SDK supportate, ritirate e dismesse.