Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les modèles Dataflow vous permettent d'empaqueter un pipeline Dataflow pour le déploiement.
Toute personne disposant des autorisations appropriées peut ensuite utiliser le modèle pour déployer le pipeline empaqueté.
Vous pouvez créer vos propres modèles Dataflow personnalisés, et Google vous fournit des modèles prédéfinis pour les scénarios courants.
Avantages
Les modèles présentent plusieurs avantages par rapport au déploiement direct d'un pipeline sur Dataflow :
Les modèles séparent la conception du pipeline de son déploiement. Par exemple, un développeur peut créer un modèle et un data scientist peut le déployer ultérieurement.
Les modèles peuvent comporter des paramètres permettant de personnaliser le pipeline lorsque vous déployez le modèle.
Vous pouvez déployer un modèle à l'aide de la console Google Cloud , de Google Cloud CLI ou des appels d'API REST. Vous n'avez pas besoin d'un environnement de développement ou d'une dépendance de pipeline installée sur votre ordinateur local.
Un modèle est un artefact de code qui peut être stocké dans un dépôt de contrôle source et utilisé dans les pipelines d'intégration continue (CI/CD).
Modèles fournis par Google
Google propose divers modèles Dataflow Open Source prédéfinis que vous pouvez utiliser pour les scénarios courants. Pour en savoir plus sur les modèles disponibles, consultez la page Modèles fournis par Google.
Comparer les modèles Flex et les modèles classiques
Dataflow accepte deux types de modèles : les modèles Flex, plus récents, et les modèles classiques. Si vous créez un modèle Dataflow, nous vous recommandons de le créer en tant que modèle Flex.
Avec un modèle Flex, le pipeline est empaqueté sous la forme d'une image Docker dans Artifact Registry, avec un fichier de spécification de modèle dans Cloud Storage. La spécification de modèle contient un pointeur vers l'image Docker. Lorsque vous exécutez le modèle, le service Dataflow démarre une VM de lanceur, extrait l'image Docker et exécute le pipeline. Le graphique d'exécution est créé de manière dynamique en fonction des paramètres d'exécution fournis par l'utilisateur. Pour lancer un job qui utilise un modèle Flex à l'aide de l'API, utilisez la méthode projects.locations.flexTemplates.launch.
Un modèle classique contient la sérialisation JSON d'un graphique de job Dataflow. Le code du pipeline doit encapsuler tous les paramètres d'exécution dans l'interface ValueProvider. Cette interface permet aux utilisateurs de spécifier des valeurs de paramètres lorsqu'ils déploient le modèle. Pour utiliser l'API avec des modèles classiques, consultez la documentation de référence de l'API projects.locations.templates.
Les modèles Flex présentent les avantages suivants par rapport aux modèles classiques :
Contrairement aux modèles classiques, les modèles Flex ne nécessitent pas l'interface ValueProvider pour les paramètres d'entrée. Les sources et les récepteurs Dataflow ne sont pas tous compatibles avec ValueProvider.
Alors que les modèles classiques comportent un graphique de job statique, les modèles Flex peuvent créer le graphique de job de manière dynamique. Par exemple, le modèle peut sélectionner un autre connecteur d'E/S en fonction des paramètres d'entrée.
Un modèle Flex peut effectuer un prétraitement sur une machine virtuelle (VM) lors de la construction du pipeline. Par exemple, il peut valider les valeurs des paramètres d'entrée.
Workflow de modèle
Voici les grandes étapes à suivre pour utiliser des modèles Dataflow:
Les développeurs configurent un environnement de développement et développent leur pipeline. L'environnement comprend le SDK Apache Beam ainsi que d'autres dépendances.
Selon le type de modèle (Flex ou classique) :
Pour les modèles Flex, les développeurs empaquettent le pipeline dans une image Docker, transfèrent l'image dans Artifact Registry, puis importent un fichier de spécification de modèle dans Cloud Storage.
Pour les modèles classiques, les développeurs exécutent le pipeline, créent un fichier de modèle et préproduisent le modèle dans Cloud Storage.
D'autres utilisateurs envoient une requête au service Dataflow pour exécuter le modèle.
Dataflow crée un pipeline à partir du modèle. Le démarrage du pipeline peut prendre jusqu'à cinq à sept minutes.
Définir les autorisations IAM
Les tâches Dataflow, y compris les tâches exécutées à partir de modèles, utilisent deux comptes de service IAM :
Le service Dataflow utilise un compte de service Dataflow pour manipuler les ressources Google Cloud , comme la création de VM.
Les VM de nœud de calcul Dataflow utilisent un compte de service de nœud de calcul pour accéder aux fichiers de votre pipeline et à d'autres ressources. Ce compte de service doit avoir accès à toutes les ressources auxquelles la tâche de pipeline fait référence, y compris la source et le récepteur utilisés par le modèle. Pour en savoir plus, consultez Accéder aux ressources Google Cloud .
Exigences concernant la version du SDK Apache Beam
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 avec Google Cloud CLI, vous devez disposer de la version 138.0.0 ou ultérieure de Google Cloud CLI.
Étendre les modèles
Vous pouvez créer vos propres pipelines en étendant les modèles Dataflow Open Source. Par exemple, pour un modèle qui utilise une durée de fenêtre fixe, les données qui arrivent en dehors de la fenêtre peuvent être supprimées. Pour éviter ce problème, utilisez le code du modèle comme base et modifiez le code pour appeler l'opération .withAllowedLateness.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eDataflow templates allow you to package a Dataflow pipeline for deployment, enabling users with permissions to deploy the packaged pipeline.\u003c/p\u003e\n"],["\u003cp\u003eFlex templates are recommended over classic templates for new Dataflow template creation due to their advantages, such as not requiring the \u003ccode\u003eValueProvider\u003c/code\u003e interface and allowing for dynamic job graph construction.\u003c/p\u003e\n"],["\u003cp\u003eDataflow templates separate pipeline design from deployment, allowing customization through parameters and offering deployment via the Google Cloud console, CLI, or REST API without a development environment.\u003c/p\u003e\n"],["\u003cp\u003eUsing Dataflow templates involves developers packaging the pipeline and other users submitting a request to run it, with Dataflow then creating a pipeline from the template, which can take several minutes to start.\u003c/p\u003e\n"],["\u003cp\u003eDataflow jobs run from templates use two IAM service accounts, a Dataflow service account for manipulating resources and a worker service account for accessing pipeline files and resources.\u003c/p\u003e\n"]]],[],null,["# Dataflow templates allow you to package a Dataflow pipeline for deployment.\nAnyone with the correct permissions can then use the template to deploy the packaged pipeline.\nYou can create your own custom Dataflow templates, and Google provides\n[pre-built templates](/dataflow/docs/templates/provided-templates) for common\nscenarios.\n\nBenefits\n--------\n\nTemplates have several advantages over directly deploying a pipeline to Dataflow:\n\n- Templates separate pipeline design from deployment. For example, a developer can create a template, and a data scientist can deploy the template at a later time.\n- Templates can have parameters that let you customize the pipeline when you deploy the template.\n- You can deploy a template by using the Google Cloud console, the Google Cloud CLI, or REST API calls. You don't need a development environment or any pipeline dependencies installed on your local machine.\n- A template is a code artifact that can be stored in a source control repository and used in continuous integration (CI/CD) pipelines.\n\nGoogle-provided templates\n-------------------------\n\nGoogle provides a variety of pre-built, open source Dataflow templates that you\ncan use for common scenarios. For more information about the available templates, see\n[Google-provided templates](/dataflow/docs/templates/provided-templates).\n\nCompare Flex templates and classic templates\n--------------------------------------------\n\nDataflow supports two types of template: Flex templates, which are newer, and\nclassic templates. If you are creating a new Dataflow template, we recommend\ncreating it as a Flex template.\n\nWith a Flex template, the pipeline is packaged as a Docker image in\nArtifact Registry, along with a template specification file in Cloud Storage. The template\nspecification contains a pointer to the Docker image. When you run the template, the\nDataflow service starts a launcher VM, pulls the Docker image, and runs the\npipeline. The execution graph is dynamically built based on runtime parameters provided by the\nuser. To use the API to launch a job that uses a Flex template, use the\n[`projects.locations.flexTemplates.launch`](/dataflow/docs/reference/rest/v1b3/projects.locations.flexTemplates/launch) method.\n\nA classic template contains the JSON serialization of a Dataflow job graph. The\ncode for the pipeline must wrap any runtime parameters in the `ValueProvider`\ninterface. This interface allows users to specify parameter values when they deploy the\ntemplate. To use the API to work with classic templates, see the\n[`projects.locations.templates`](/dataflow/docs/reference/rest/v1b3/projects.locations.templates)\nAPI reference documentation.\n\nFlex templates have the following advantages over classic templates:\n\n- Unlike classic templates, Flex templates don't require the `ValueProvider` interface for input parameters. Not all Dataflow sources and sinks support `ValueProvider`.\n- While classic templates have a static job graph, Flex templates can dynamically construct the job graph. For example, the template might select a different I/O connector based on input parameters.\n- A Flex template can perform preprocessing on a virtual machine (VM) during pipeline construction. For example, it might validate input parameter values.\n\nTemplate workflow\n-----------------\n\nUsing Dataflow templates involves the following high-level steps:\n\n1. Developers set up a development environment and develop their pipeline. The environment includes the Apache Beam SDK and other dependencies.\n2. Depending on the template type (Flex or classic):\n - For Flex templates, the developers package the pipeline into a Docker image, push the image to Artifact Registry, and upload a template specification file to Cloud Storage.\n - For classic templates, developers run the pipeline, create a template file, and stage the template to Cloud Storage.\n3. Other users submit a request to the Dataflow service to run the template.\n4. Dataflow creates a pipeline from the template. The pipeline can take as much as five to seven minutes to start running.\n\nSet IAM permissions\n-------------------\n\nDataflow jobs, including jobs run from templates, use two IAM service accounts:\n\n- The Dataflow service uses a [Dataflow service account](/dataflow/docs/concepts/security-and-permissions#service_account) to manipulate Google Cloud resources, such as creating VMs.\n- The Dataflow worker VMs use a [worker service account](/dataflow/docs/concepts/security-and-permissions#worker-service-account) to access your pipeline's files and other resources. This service account needs access to any resources that the pipeline job references, including the source and sink that the template uses. For more information, see [Access Google Cloud resources](/dataflow/docs/concepts/security-and-permissions#access-resources).\n\nEnsure that these two service accounts have appropriate roles. For more\ninformation, see\n[Dataflow security and permissions](/dataflow/docs/concepts/security-and-permissions).\n\nApache Beam SDK version requirements\n------------------------------------\n\nTo create your own templates, make sure your Apache Beam SDK version supports template\ncreation. \n\n### Java\n\nTo create templates with the Apache Beam SDK 2.x for Java, you must have version\n2.0.0-beta3 or higher.\n\n### Python\n\nTo create templates with the Apache Beam SDK 2.x for Python, you must have version 2.0.0\nor higher.\n\nTo run templates with Google Cloud CLI, you must have [Google Cloud CLI](/sdk/downloads)\nversion 138.0.0 or higher.\n\nExtend templates\n----------------\n\nYou can build your own templates by extending the\n[open source](https://github.com/GoogleCloudPlatform/DataflowTemplates)\nDataflow templates. For example, for a template that uses a fixed window duration, data\nthat arrives outside of the window might be discarded. To avoid this behavior, use the template\ncode as a base, and modify the code to invoke the\n[`.withAllowedLateness`](https://beam.apache.org/documentation/programming-guide/#managing-late-data) operation.\n\nWhat's next\n-----------\n\n- [Google-provided templates](/dataflow/docs/templates/provided-templates)\n- [Creating classic templates](/dataflow/docs/templates/creating-templates)\n- [Running classic templates](/dataflow/docs/templates/executing-templates)\n- [Build and run Flex Templates](/dataflow/docs/guides/templates/using-flex-templates)\n- [Troubleshoot Flex Templates](/dataflow/docs/guides/troubleshoot-templates)"]]