Modèles Dataflow

Les modèles Dataflow vous permettent de préproduire vos pipelines sur Cloud Storage et de les exécuter à partir de divers environnements. Vous pouvez utiliser l'un des modèles fournis par Google ou créer le vôtre.

Les modèles offrent des avantages supplémentaires par rapport au déploiement Dataflow traditionnel. Exemples :

  • Vous n'avez pas à recompiler systématiquement votre code lorsque vous exécutez votre pipeline.
  • Vous pouvez exécuter vos pipelines sans l'environnement de développement ni les dépendances associées qui sont couramment utilisés avec le déploiement traditionnel. Cela s'avère utile pour planifier des tâches par lots récurrentes.
  • Les paramètres d'exécution vous permettent de personnaliser l'exécution du pipeline.
  • Les utilisateurs non spécialistes peuvent exécuter des modèles avec Google Cloud Console, l'outil de ligne de commande gcloud ou l'API REST.

Différences entre l'exécution traditionnelle et l'exécution modélisée des tâches

Les modèles Dataflow introduisent un nouveau workflow de développement et d'exécution qui diffère du processus d'exécution de tâches traditionnel. Le workflow des modèles sépare l'étape de développement des étapes de préproduction et d'exécution.

Tâches Dataflow traditionnelles

Le développement du pipeline Apache Beam et l'exécution des tâches se déroulent au sein d'un environnement de développement.

Workflow standard pour les tâches Dataflow classiques :

  1. Les développeurs créent un environnement de développement et développent leur pipeline. L'environnement comprend le SDK Apache Beam ainsi que d'autres dépendances.
  2. Les utilisateurs exécutent le pipeline à partir de l'environnement de développement. Le SDK Apache Beam préproduit les fichiers dans Cloud Storage, crée un fichier de requête de tâche et envoie le fichier au service Dataflow.

Tâches Dataflow modélisées

Si vous utilisez des modèles Dataflow, la préproduction et l'exécution sont des étapes distinctes. Cette séparation vous permet de choisir qui peut exécuter des tâches et où.

Workflow standard pour les tâches Dataflow avec modèles :

  1. Les développeurs créent un environnement de développement et développent leur pipeline. L'environnement comprend le SDK Apache Beam ainsi que d'autres dépendances.
  2. Les développeurs exécutent le pipeline et créent un modèle. Le SDK Apache Beam préproduit les fichiers dans Cloud Storage, crée un fichier de modèle (comparable à une requête de tâche), puis l'enregistre dans Cloud Storage.
  3. D'autres utilisateurs peuvent facilement exécuter des tâches avec Cloud Console, l'outil de ligne de commande gcloud ou l'API REST pour envoyer des requêtes d'exécution de fichiers de modèle au service Dataflow.

Tâches de modèle Flex Dataflow

Si vous utilisez des modèles Flex Dataflow, la préproduction et l'exécution sont des étapes distinctes. Cette séparation vous permet de choisir qui peut exécuter des tâches, l'emplacement à partir duquel les tâches sont exécutées et les étapes d'exécution des tâches en fonction des paramètres d'entrée et de sortie.

Voici le workflow standard associé aux tâches de modèle Flex Dataflow :

  1. Les développeurs créent un environnement de développement et développent leur pipeline. L'environnement comprend le SDK Apache Beam ainsi que d'autres dépendances.
  2. Les développeurs empaquettent le pipeline dans un conteneur Docker, puis utilisent l'outil de ligne de commande gcloud pour créer et enregistrer le fichier de modèle Flex dans Cloud Storage.
  3. D'autres utilisateurs peuvent facilement exécuter des tâches avec Cloud Console, l'outil de ligne de commande gcloud ou l'API REST pour envoyer des requêtes d'exécution de fichiers de modèle Flex au service Dataflow.

Avant de commencer

Avant de créer vos propres modèles, vérifiez que votre version du SDK Apache Beam est compatible avec la création de modèles.

Java : SDK 2.x

Pour créer des modèles avec le SDK Dataflow 2.x pour Java, vous devez disposer de la version 2.0.0-beta3 ou ultérieure.

Python

Pour créer des modèles avec le SDK Dataflow 2.x pour Python, vous devez disposer de la version 2.0.0 ou ultérieure.

Java : SDK 1.x

Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Étapes suivantes