Modèles Dataflow

Les modèles Dataflow vous permettent d'organiser vos pipelines sur Google Cloud et de les exécuter à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou des appels d'API REST. Les modèles classiques sont organisés sous forme de graphiques d'exécution sur Cloud Storage, tandis que les modèles Flex empaquetent le pipeline sous la forme d'une image Docker et placent ces images dans le registre Container Registry de votre projet. 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 non modélisé, tels que les suivants :

  • 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 non modélisé. Cela s'avère utile pour planifier des tâches par lots récurrentes.
  • Les modèles séparent la construction du pipeline (effectuée par les développeurs) de son exécution. Par conséquent, il n'est pas nécessaire de recompiler le code à chaque exécution du pipeline.
  • 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.

Comparer les tâches non modélisées et modélisées

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 non modélisées. Le workflow des modèles sépare l'étape de développement de l'étape d'exécution.

Tâches Dataflow sans modèles

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

Workflow standard pour les tâches Dataflow non modélisées :

  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 classiques ou Flex, 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. Cette étape dépend du type de modèle que vous utilisez.
    • Modèles classiques. 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.
    • Modèles Flex. Les développeurs empaquettent le pipeline dans une image Docker, puis utilisent l'outil de ligne de commande gcloud pour créer et enregistrer le fichier de spécifications du 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 au service Dataflow.

En outre, vous pouvez cloner des tâches basées sur des modèles classiques via l'interface utilisateur de surveillance de Dataflow. Le formulaire d'envoi des tâches clonées contient des valeurs de paramètres préremplies. Cependant, elles peuvent être modifiées avant d'exécuter la tâche.

Pour cloner une tâche, procédez comme suit :

  1. Accédez à la page Informations sur la tâche pour la tâche que vous souhaitez cloner.
  2. Cliquez sur Cloner.
  3. Si nécessaire, mettez à jour les paramètres de la tâche.
  4. Cliquez sur Exécuter la tâche pour envoyer la nouvelle tâche.

Pour comprendre les différentes étapes de construction et d'exécution du pipeline, avec ou sans modèle classique ou Flex, consultez la page Convertir un pipeline Dataflow en modèle réutilisable.

Évaluer le type de modèle à utiliser

Les modèles Flex offrent davantage de flexibilité par rapport aux modèles classiques en permettant de lancer des variantes mineures des tâches Dataflow à partir d'un même modèle, et en permettant l'utilisation de toute E/S source ou récepteur. Pour les modèles classiques, le graphique d'exécution est créé pendant le processus de création de modèle. Le graphique d'exécution des modèles Flex est créé de manière dynamique en fonction des paramètres d'exécution fournis par l'utilisateur lors de l'exécution du modèle. En d'autres termes, lorsque vous utilisez des modèles Flex, vous pouvez effectuer des variantes mineures pour effectuer différentes tâches avec le même modèle sous-jacent, par exemple changer les formats de fichier source ou de récepteur.

Comparer les tâches modélisées

Le tableau suivant récapitule les similitudes et les différences entre les modèles classique et Flex :
Fonctionnalité Modèles classiques Modèles Flex
Étapes de préproduction et d'exécution distinctes Oui Oui
Exécute le modèle à l'aide de Google Cloud Console, de l'outil gcloud ou des appels d'API REST Oui Oui
Exécute le pipeline sans recompiler le code Oui Oui
Exécute le pipeline sans l'environnement de développement ni les dépendances associées Oui Oui
Personnalise l'exécution du pipeline avec les paramètres d'exécution Oui Oui
Peut mettre à jour des tâches de streaming1 Oui Oui
Compatible avec FlexRS1 Oui Oui
Exécute des validations lors de la construction du graphique de tâches pour réduire les erreurs d'exécution Non Oui
Peut modifier le graphique d'exécution d'une tâche après la création du modèle Non Oui
Compatible avec les paramètres SQL Non Oui
Compatible avec les interfaces d'E/S au-delà de ValueProvider Non Oui

Notes :

1. Pour utiliser la mise à jour en flux continu ou la fonctionnalité FlexRS, les utilisateurs doivent recréer leurs modèles FlexRS avec la version d'image de base 20210120_RC00.

Pour les tâches des modèles classiques et du modèle Flex, la préproduction et l'exécution sont réalisées à différentes étapes. Cependant, les deux types de tâches modélisées génèrent des artefacts de préproduction différents. Lorsque vous utilisez des modèles classiques, l'artefact de préproduction est le modèle avec le graphe d'exécution sérialisé au format JSON. Avec les modèles Flex, l'artefact de préproduction est une image Docker contenant le fichier JAR ou le code Python.

Exigences concernant la version du SDK

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

Pour créer des modèles avec le SDK Apache Beam 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 Apache Beam 2.x pour Python, vous devez disposer de la version 2.0.0 ou ultérieure.

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.

Étape suivante