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 :
- Créer un pipeline Dataflow à l'aide de Java
- Créer un pipeline Dataflow à l'aide de Python
- Créer un pipeline Dataflow à l'aide de Go
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]==VERSIONen Python, ou les chaînes de version exactes dans Maven et Gradle. Évitez les plages dynamiques (telles que>=oulatest) 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
- Dataflow s'intègre à Google Cloud CLI. Pour obtenir des instructions sur l'installation de l'interface de ligne de commande Dataflow, consultez la page Utiliser l'interface de ligne de commande Dataflow.
- Pour découvrir quelles sont les fonctionnalités Apache Beam compatibles avec Dataflow, consultez la matrice des fonctionnalités Apache Beam.
- Consultez l'état de la compatibilité des versions du SDK pour connaître les versions du SDK compatibles, obsolètes et abandonnées.