Exécution d’une tâche Snowpark Container Services en tant que tâche Snowflake

Vous pouvez exécuter un service associé aux tâches Snowpark Container Services en tant que tâche Snowflake. Lorsque vous exécutez un service associé aux tâches en tant que tâche Snowflake, l’intégration permet des scénarios qui tirent parti de la conteneurisation et de l’évolutivité robustes de Snowpark Container Services. Ce processus se produit directement dans vos pipelines de données planifiés ou déclenchés par des événements qui sont gérés par les tâches Snowflake.

Par exemple, la commande CREATE TASK suivante crée une tâche pour exécuter un service associé aux tâches toutes les heures. La commande fournit les détails de la tâche en utilisant la commande EXECUTE JOB SERVICE SQL :

CREATE TASK job_task
SCHEDULE = '60 MINUTE'
AS
  EXECUTE JOB SERVICE
    IN COMPUTE POOL my_compute_pool
    FROM SPECIFICATION $$
    spec:
      containers:
      - name: main
        image: /my_db/my_schema/my_repository/my_job_image:latest
        args:
          - "--process_data"
    $$;
Copy

Note

  • Les tâches Snowflake prennent en charge le Modèle sans serveur, vous n’avez donc pas besoin de spécifier un entrepôt dans l’instruction CREATE TASK.

  • Lorsque vous exécutez un service associé aux tâches en tant que tâche, vous devez exécuter le service de manière synchrone, sinon la tâche signalera l’achèvement avant que le service ne soit terminé.

Transmission de données vers et depuis des tâches exécutées en tant que tâches

Les graphiques de tâches vous permettent de créer et de gérer des pipelines de données complexes, à plusieurs étapes, qui intègrent de manière transparente des services associés aux tâches s’exécutant sous forme de tâches. Vous pouvez utiliser Fonctions système prises en charge dans le code de votre service associé aux tâches pour accéder au contexte de la tâche et l’utiliser pour récupérer la configuration du graphique des tâches et les informations d’exécution de la tâche en cours d’exécution.

Lorsque vous exécutez des services associés aux tâches en tant que tâches, vous pouvez utiliser les options de partage de données suivantes entre les tâches d’un graphique de tâches :

  • Mécanisme de valeur de retour des prédécesseurs : dans un graphique de tâches, vous pouvez transmettre la sortie d’une tâche en tant qu’entrée pour une tâche ultérieure, dépendante. Snowflake recommande cette option lorsque vous transmettez de petites métadonnées, telles qu’un chemin de fichier, une chaîne de statut ou un valeur d’ID. Pour plus d’informations, voir. Transmettre les valeurs de retour entre les tâches.

    Comme avec une tâche SQL, une tâche s’exécutant en tant que tâche peut récupérer la valeur de retour d’une tâche précédente. De même, une tâche peut également fournir une valeur de retour pour une tâche ultérieure.

  • Mécanisme de stockage persistant commun : lorsque vous transférez de grands ensembles de données, tels que des fichiers, Snowflake vous recommande de conserver les données dans un stockage persistant, tel qu’une zone de préparation ou une table Snowflake, et vous assurez que les tâches de votre graphique de tâches peuvent accéder à ce stockage.

Note

Les sessions ne sont pas partagées entre les services associés aux tâches. Par conséquent, vous ne pouvez pas utiliser de tables temporaires ou de variables de session pour partager des données, car il s’agit d’objets à l’échelle de la session.

Exemple

Pour un exemple, voir Tutoriel : Exécuter une tâche Snowflake Container Services en tant que tâche Snowflake.