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.77.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.77.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.77.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 savoir comment configurer votre projet Google Cloud et votre environnement de développement afin d'utiliser Dataflow, suivez l'un des tutoriels suivants :
- 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 répertoire d'exemples Apache Beam sur GitHub.
Python
Des exemples de code sont disponibles dans le répertoire d'exemples Apache Beam sur GitHub.
Go
Des exemples de code sont disponibles dans le répertoire 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 éventuelles modifications majeures entre les versions.
Consulter les notes de version et les modifications majeures
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 majeures.
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 effectuez une mise à niveau de la version 2.50.0 vers la version 2.60.0, consultez les notes de version des versions 2.51.0 à 2.60.0. Les modifications majeures, les abandons et les mises à jour de configuration sont cumulatifs entre les versions.
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 votre configuration de compilation ou votre environnement pour le 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 pom.xml fichier, mettez à jour la propriété beam.version
ou la balise <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épendances 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 la page 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 requirements.txt ou setup.py fichier, 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 go.mod fichier :
go get -u github.com/apache/beam/sdks/v2@vVERSION go mod tidy
Pour en savoir plus, consultez la page Gérer les dépendances de pipeline Go.
Déployer des pipelines mis à niveau
Une fois la version du SDK mise à jour dans votre code, choisissez une stratégie de déploiement en fonction du type de pipeline :
- Pipelines de traitement en flux continu : pour les pipelines de traitement en flux continu, vous pouvez déployer du code mis à niveau en remplaçant le job sur place, en exécutant des pipelines parallèles 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 les pages Mettre à jour un pipeline existant et Mettre à niveau un pipeline de traitement en flux continu.
- Pipelines de traitement par lot : les pipelines de traitement par lot ne sont pas compatibles avec les mises à jour en cours ni les jobs de remplacement sur place. Laissez le job existant s'exécuter jusqu'à la fin ou annulez le job en cours, puis lancez un nouveau job avec la version mise à niveau du SDK.
Bonnes pratiques pour l'intégration et la diffusion continues (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 :
- Épingler les dépendances : épinglez toujours les versions exactes du SDK, telles que
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 que des mises à niveau mineures non testées ne se produisent lors des compilations CI/CD automatisées. - Valider dans les environnements de préproduction : déployez et testez votre pipeline mis à niveau dans un environnement de préproduction 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.
- Utiliser un pipeline de test ou parallèle : pour les applications de traitement en flux continu 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 sorties entre les deux jobs avant de vider l'ancien pipeline.
Étape suivante
- 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 page Matrice des fonctionnalités Apache Beam.
- Consultez la page État de la compatibilité des versions du SDK status pour connaître les versions du SDK compatibles, abandonnées et mises hors service.