Composants de Dataflow

Les composants de Dataflow vous permettent d'envoyer des jobs Apache Beam à Dataflow pour exécution. Dans Dataflow, une ressource Job représente un job Dataflow.

Le SDK des composants du pipeline Google Cloud contient les opérateurs suivants permettant de créer des ressources Job et surveiller leur exécution :

De plus, le SDK des composants du pipeline Google Cloud inclut le composant WaitGcpResourcesOp, que vous pouvez utiliser pour limiter les coûts lors de l'exécution de jobs Dataflow.

DataflowFlexTemplateJobOp

L'opérateur DataflowFlexTemplateJobOp vous permet de créer un composant Vertex AI Pipelines pour lancer un modèle Flex Dataflow.

Dans Dataflow, une ressource LaunchFlexTemplateParameter représente un modèle Flex à lancer. Ce composant crée une ressource LaunchFlexTemplateParameter, puis demande à Dataflow de créer un job en lançant le modèle. Si le lancement du modèle aboutit, Dataflow renvoie une ressource Job.

Le composant modèle Flex Dataflow s'arrête lorsqu'il reçoit une ressource Job de Dataflow. Le composant génère un job_id en tant que proto gcp_resources sérialisé. Vous pouvez transmettre ce paramètre à un composant WaitGcpResourcesOp pour attendre la fin du job Dataflow.

DataflowPythonJobOp

L'opérateur DataflowPythonJobOp vous permet de créer un composant Vertex AI Pipelines qui prépare les données en envoyant un job Apache Beam basé sur Python à Dataflow pour exécution.

Le code Python de la tâche Apache Beam s'exécute avec Dataflow Runner. Lorsque vous exécutez votre pipeline avec le service Dataflow, l'exécuteur importe votre code exécutable à l'emplacement spécifié par le paramètre python_module_path et les dépendances dans un bucket Cloud Storage (spécifié par temp_location), puis crée un job Dataflow qui exécute votre pipeline Apache Beam sur des ressources gérées dans Google Cloud.

Pour en savoir plus sur l'exécuteur Dataflow, consultez la section Utiliser l'exécuteur Dataflow.

Le composant Python de Dataflow accepte une liste d'arguments transmis à l'aide de l'exécuteur Beam à votre code Apache Beam. Ces arguments sont spécifiés par args. Par exemple, vous pouvez utiliser ces arguments pour définir le paramètre apache_beam.options.pipeline_options de façon à spécifier un réseau, un sous-réseau, une clé de chiffrement gérée par le client (CMEK) et d'autres options lorsque vous exécutez des tâches Dataflow.

WaitGcpResourcesOp

Les tâches Dataflow peuvent souvent prendre beaucoup de temps. Les coûts d'un conteneur busy-wait (le conteneur qui lance la tâche Dataflow et attend le résultat) peuvent s'avérer coûteux.

Après avoir envoyé le job Dataflow à l'aide de l'exécuteur Beam, le composant DataflowPythonJobOp s'arrête immédiatement et renvoie un paramètre de sortie job_id en tant que proto gcp_resources sérialisé. Vous pouvez transmettre ce paramètre à un composant WaitGcpResourcesOp pour attendre la fin du job Dataflow.

    dataflow_python_op = DataflowPythonJobOp(
        project=project_id,
        location=location,
        python_module_path=python_file_path,
        temp_location = staging_dir,
        requirements_file_path = requirements_file_path,
        args = ['--output', OUTPUT_FILE],
    )
  
    dataflow_wait_op =  WaitGcpResourcesOp(
        gcp_resources = dataflow_python_op.outputs["gcp_resources"]
    )

Vertex AI Pipelines optimise WaitGcpResourcesOp pour l'exécuter en mode sans serveur et sans entraîner aucun coût.

Si DataflowPythonJobOp et DataflowFlexTemplateJobOp ne répondent pas à vos exigences, vous pouvez également créer votre propre composant qui génère le paramètre gcp_resources et le transmet au composant WaitGcpResourcesOp.

Pour en savoir plus sur la création d'un paramètre de sortie gcp_resources, consultez la section Écrire un composant pour afficher un lien à la console Google Cloud.

Documentation de référence sur l'API

Tutoriels

Historique des versions et notes de version

Pour en savoir plus sur l'historique des versions et les modifications apportées au SDK des composants du pipeline Google Cloud, consultez les notes de version du SDK des composants du pipeline Google Cloud.

Contacts pour l'assistance technique

Si vous avez des questions, veuillez nous contacter à l'adresse kubeflow-pipelines-components@google.com.