Installer ou mettre à jour le SDK Apache Beam

Cette page explique comment installer ou mettre à jour le SDK Apache Beam afin de pouvoir exécuter vos pipelines sur le service Dataflow.

Installer le SDK Apache Beam

Le SDK Apache Beam est un modèle de programmation Open Source pour les pipelines de données. Vous définissez ces pipelines avec un programme Apache Beam et pouvez choisir un exécuteur, tel que Dataflow, pour les lancer.

Java

La dernière version du SDK Apache Beam pour Java est la version 2.76.0. Pour en savoir plus sur les modifications incluses dans la version, consultez l'annonce la concernant.

Pour obtenir le SDK Apache Beam pour Java à l'aide de Maven, utilisez l'un des artefacts disponibles dans le répertoire central Maven.

Ajoutez des dépendances et des outils de gestion des dépendances à votre fichier pom.xml pour l'artefact SDK. Pour en savoir plus, consultez la page Gérer les dépendances de pipeline dans Dataflow.

Pour en savoir plus sur le SDK Apache Beam pour les dépendances Java, consultez les pages SDK Apache Beam pour les dépendances Java et Gérer les dépendances Beam dans Java. dans la documentation d'Apache Beam.

Python

La dernière version du SDK Apache Beam pour Python est la version 2.76.0. Pour en savoir plus sur les modifications incluses dans la version, consultez l'annonce la concernant.

Pour obtenir le SDK Apache Beam pour Python, utilisez l'un des packages disponibles dans l'index de packages Python.

Installez la roue Python en exécutant la commande suivante :

pip install wheel

Pour installer la dernière version du SDK Apache Beam pour Python, exécutez la commande suivante depuis un environnement virtuel :

pip install 'apache-beam[gcp]'

En fonction de la connexion, l'installation peut prendre un certain temps.

Go

La dernière version du SDK Apache Beam pour Go est la version 2.76.0. Pour en savoir plus sur les modifications incluses dans la version, consultez l'annonce la concernant.

Pour installer la dernière version du SDK Apache Beam pour Go, exécutez la commande suivante :

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

Configurer l'environnement de développement

Pour en savoir plus sur la configuration de votre projet Google Cloud et de votre environnement de développement pour utiliser Dataflow, suivez l'un des tutoriels :

Code source et exemples

Le code source Apache Beam est disponible dans le dépôt Apache Beam sur GitHub.

Java

Des exemples de code sont disponibles dans le dépôt d'exemples Apache Beam sur GitHub.

Python

Des exemples de code sont disponibles dans le dépôt d'exemples Apache Beam sur GitHub.

Go

Des exemples de code sont disponibles dans le dépôt d'exemples Apache Beam sur GitHub.

Identifier la version du SDK Dataflow

Les détails d'installation dépendent de votre environnement de développement. Si vous utilisez Maven, plusieurs versions du SDK Dataflow peuvent être "installées" dans un ou plusieurs dépôts Maven locaux.

Java

Pour connaître la version du SDK Dataflow exécutée par un pipeline spécifique, vous pouvez consulter la sortie de la console lors de l'exécution avec DataflowPipelineRunner ou BlockingDataflowPipelineRunner. La console affiche un message semblable au suivant, qui contient les informations liées à la version du SDK Dataflow :

Python

Pour connaître la version du SDK Dataflow exécutée par un pipeline spécifique, vous pouvez consulter la sortie de la console lors de l'exécution avec DataflowRunner. La console affiche un message semblable au suivant, qui contient les informations liées à la version du SDK Dataflow :

Go

Pour connaître la version du SDK Dataflow exécutée par un pipeline spécifique, vous pouvez consulter la sortie de la console lors de l'exécution avec DataflowRunner. La console affiche un message semblable au suivant, qui contient les informations liées à la version du SDK Dataflow :

  INFO: Executing pipeline on the Dataflow Service, ...
  Dataflow SDK version: <version>

Mettre à jour le SDK Apache Beam

Lorsque vous mettez à niveau votre pipeline vers une version ultérieure du SDK Apache Beam, mettez à jour les configurations de dépendances de votre projet et vérifiez les éventuels changements incompatibles entre les versions.

Consulter les notes de version et les modifications destructives

Avant de procéder à la mise à niveau, consultez les notes de version d'Apache Beam pour connaître les modifications, les corrections de bugs et les éventuelles modifications destructives.

Si vous effectuez une mise à niveau sur plusieurs versions mineures, consultez les notes de version de toutes les versions intermédiaires. Par exemple, si vous passez de la version 2.50.0 à la version 2.60.0, consultez les notes de version pour les versions 2.51.0 à 2.60.0. Les modifications majeures, les obsolescences et les mises à jour de configuration sont cumulatives d'une version à l'autre.

Pour connaître les problèmes connus et les avis spécifiques aux connecteurs qui affectent Dataflow, consultez la colonne Détails du tableau État de la compatibilité des versions du SDK.

Mettre à jour les dépendances du SDK

Pour mettre à niveau la version du SDK dans votre projet, mettez à jour la configuration de compilation ou l'environnement du langage utilisé par votre pipeline. Remplacez VERSION par la version cible du SDK Apache Beam (par exemple, 2.76.0).

Java

Pour mettre à niveau le SDK Apache Beam pour Java, mettez à jour la version du SDK dans votre fichier de configuration de compilation, tel que pom.xml pour Maven ou build.gradle pour Gradle.

Maven

Dans votre fichier pom.xml, mettez à jour la propriété beam.version ou le tag <version> dans vos dépendances 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

Dans votre fichier build.gradle, mettez à jour les déclarations de dépendance Apache Beam :

dependencies {
  implementation 'org.apache.beam:beam-sdks-java-core:VERSION'
  implementation 'org.apache.beam:beam-runners-google-cloud-dataflow-java:VERSION'
}

Pour en savoir plus, consultez Gérer les dépendances de pipeline Java.

Python

Pour mettre à niveau le SDK Apache Beam pour Python dans votre environnement local ou virtuel, utilisez pip :

pip install --upgrade 'apache-beam[gcp]==VERSION'

Dans votre fichier requirements.txt ou setup.py, mettez à jour la version épinglée :

apache-beam[gcp]==VERSION

Go

Pour mettre à niveau le SDK Apache Beam pour Go, utilisez go get pour récupérer la version cible et mettre à jour votre fichier go.mod :

go get -u github.com/apache/beam/sdks/v2@vVERSION
go mod tidy

Pour en savoir plus, consultez Gérer les dépendances de pipeline Go.

Déployer des pipelines mis à niveau

Après avoir mis à jour la version du SDK dans votre code, choisissez une stratégie de déploiement en fonction du type de pipeline :

  • Pipelines de streaming : pour les pipelines de streaming, vous pouvez déployer un code mis à niveau en remplaçant le job sur place, en exécutant des pipelines en parallèle ou en arrêtant et en redémarrant le job. Pour obtenir des instructions détaillées, des règles de compatibilité et des stratégies de déploiement, consultez Mettre à jour un pipeline existant et Mettre à niveau un pipeline de flux de données.
  • Pipelines par lot : les pipelines par lot ne sont pas compatibles avec les mises à jour en cours ni avec les jobs de remplacement sur place. Laissez le job existant s'exécuter jusqu'à la fin ou annulez le job en cours d'exécution, puis lancez un nouveau job avec la version mise à niveau du SDK.

Bonnes pratiques pour la CI/CD et la mise à jour des déploiements

Pour minimiser les risques opérationnels lors du déploiement des mises à niveau du SDK dans les pipelines de compilation et de déploiement automatisés, suivez ces bonnes pratiques :

  • Épinglez les dépendances : épinglez toujours les versions exactes du SDK, comme apache-beam[gcp]==VERSION en Python, ou les chaînes de version exactes dans Maven et Gradle. Évitez les plages dynamiques (telles que >= ou latest) pour éviter les mises à niveau mineures non testées lors des compilations CI/CD automatisées.
  • Validez dans les environnements de préproduction : déployez et testez votre pipeline mis à niveau dans un environnement de préproduction ou de staging dédié avant de promouvoir les modifications en production. Validez le débit du pipeline, la stabilité des métriques et les sorties en aval.
  • Utilisez un pipeline de test ou parallèle : pour les applications de streaming critiques, exécutez le pipeline mis à niveau en parallèle avec le pipeline existant. Vérifiez la parité des données et l'exactitude des résultats entre les deux jobs avant de vider l'ancien pipeline.

Étapes suivantes