Installa o aggiorna l'SDK Apache Beam

Questa pagina mostra come installare o aggiornare l'SDK Apache Beam per 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, ad esempio Dataflow, per eseguire la pipeline.

Java

L'ultima versione rilasciata dell'SDK Apache Beam per Java è 2.76.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio relativo alla release.

Per ottenere l'SDK Apache Beam per Java utilizzando Maven, utilizza uno degli artefatti rilasciati dal Repository Maven Central.

Aggiungi dipendenze e strumenti di gestione delle dipendenze al file pom.xml per l'artefatto SDK. Per maggiori dettagli, vedi Gestire le dipendenze della pipeline in Dataflow.

Per saperne di più sulle dipendenze dell'Apache Beam SDK per Java, consulta Dipendenze dell'Apache Beam SDK 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 è 2.76.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio relativo alla release.

Per ottenere l'SDK Apache Beam per Python, utilizza uno dei pacchetti rilasciati da Python Package Index.

Installa Python wheel eseguendo questo comando:

pip install wheel

Installa l'ultima versione dell'SDK Apache Beam per Python eseguendo il comando seguente da un ambiente virtuale:

pip install 'apache-beam[gcp]'

A seconda della connessione, l'installazione potrebbe richiedere del tempo.

Vai

L'ultima versione rilasciata dell'SDK Apache Beam per Go è 2.76.0. Per informazioni sulle modifiche incluse nella release, consulta l' annuncio relativo alla release.

Per installare l'ultima versione dell'SDK Apache Beam per Go, esegui questo comando:

go get -u github.com/apache/beam/sdks/v2/go/pkg/beam

Configurazione dell'ambiente di sviluppo

Per informazioni sulla configurazione del progetto e dell'ambiente di sviluppo Google Cloud per utilizzare Dataflow, segui uno dei tutorial:

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 Examples di Apache Beam su GitHub.

Python

Gli esempi di codice sono disponibili nella directory Examples di Apache Beam su GitHub.

Vai

Gli esempi di codice sono disponibili nella directory Examples di Apache Beam su GitHub.

Trovare la versione dell'SDK Dataflow

I dettagli dell'installazione dipendono dal tuo ambiente di sviluppo. Se utilizzi Maven, puoi avere più versioni dell'SDK Dataflow "installate" in uno o più repository Maven locali.

Java

Per scoprire quale versione dell'SDK Dataflow è in esecuzione in una determinata pipeline, puoi esaminare l'output della console quando viene eseguita con DataflowPipelineRunner o BlockingDataflowPipelineRunner. La console conterrà un messaggio simile al seguente, che contiene le informazioni sulla versione dell'SDK Dataflow:

Python

Per scoprire quale versione dell'SDK Dataflow è in esecuzione in una determinata pipeline, puoi esaminare l'output della console quando esegui l'operazione con DataflowRunner. La console conterrà un messaggio simile al seguente, che contiene le informazioni sulla versione dell'SDK Dataflow:

Vai

Per scoprire quale versione dell'SDK Dataflow è in esecuzione in una determinata pipeline, puoi esaminare l'output della console quando esegui l'operazione con DataflowRunner. La console conterrà un messaggio simile al seguente, 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 causano interruzioni 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 modifiche, correzioni di bug e potenziali modifiche che provocano un errore.

Se esegui l'upgrade su più versioni secondarie, consulta le note di rilascio di tutte le release intermedie. Ad esempio, se esegui l'upgrade dalla versione 2.50.0 alla 2.60.0, consulta le note di rilascio per le versioni da 2.51.0 a 2.60.0. Le modifiche che causano interruzioni, le deprecazioni e gli aggiornamenti della configurazione sono cumulativi nelle release.

Per problemi noti e 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 tuo progetto, aggiorna la configurazione di compilazione o l'ambiente 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'Apache Beam SDK per Java, aggiorna la versione dell'SDK nel 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 di dipendenza 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 della pipeline Java.

Python

Per eseguire l'upgrade dell'SDK Apache Beam per Python nel tuo 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'Apache Beam SDK per Go, utilizza go get per recuperare la versione di destinazione e aggiornare 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 della pipeline Go.

Esegui il deployment delle pipeline di cui è stato eseguito l'upgrade

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, l'esecuzione di pipeline parallele o l'arresto e il riavvio del job. Per istruzioni dettagliate, regole di compatibilità e strategie di deployment, vedi Aggiornare una pipeline esistente e 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. Lascia che il job esistente venga eseguito fino al completamento oppure annulla il job in esecuzione e poi avvia un nuovo job con la versione aggiornata dell'SDK.

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]==VERSION in Python o le stringhe di versione esatte in Maven e Gradle. Evita intervalli dinamici (ad esempio >= o latest) per impedire che si verifichino upgrade secondari non testati durante le build CI/CD automatizzate.
  • Esegui la convalida negli ambienti di staging: esegui il deployment e testa la pipeline aggiornata in un ambiente di staging o pre-produzione dedicato prima di promuovere le modifiche in produzione. Convalida il throughput della pipeline, la stabilità delle metriche e gli output downstream.
  • Utilizza pipeline di test o parallele: per le applicazioni di streaming mission-critical, esegui la pipeline aggiornata in parallelo con quella esistente. Verifica la parità dei dati e la correttezza dell'output tra i due job prima di svuotare la pipeline precedente.

Passaggi successivi