Installa o aggiorna l'SDK Apache Beam

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:

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]==VERSION in Python o le stringi 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 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