Catégories :

Information Schema , Fonctions de table

CURRENT_TASK_GRAPHS

Renvoie le statut d’une exécution de graphique qui est actuellement planifiée ou en cours d’exécution. Un graphique est actuellement défini comme une tâche planifiée unique ou un DAG de tâches composé d’une tâche racine planifiée et d’une ou plusieurs tâches enfants (c’est-à-dire des tâches qui ont une tâche prédécesseur définie). Dans le cadre de cette fonction, la tâche racine désigne soit la tâche planifiée unique, soit la tâche racine d’un DAG.

Cette fonction renvoie les détails des exécutions de graphiques qui sont en cours d’exécution ou dont l’exécution est prévue dans les huit prochains jours. Pour récupérer les détails des exécutions de graphiques qui se sont terminées au cours des 60 dernières minutes, interrogez la fonction de table COMPLETE_TASK_GRAPHS.

Cette fonction renvoie les détails de l’exécution du graphique pour l’ensemble de votre compte Snowflake ou pour une tâche racine spécifiée.

Syntaxe

CURRENT_TASK_GRAPHS(
      [ RESULT_LIMIT => <integer> ]
      [, ROOT_TASK_NAME => '<string>' ] )

Arguments

Tous les arguments sont facultatifs.

RESULT_LIMIT => integer

Un nombre spécifiant le nombre maximum de lignes renvoyé par la fonction. Notez que les résultats sont renvoyés dans l’ordre SCHEDULED_TIME décroissant. Si le nombre de lignes correspondantes est supérieur à cette limite de résultats, les exécutions de graphiques avec l’horodatage planifié le plus récent sont renvoyées, jusqu’à la limite spécifiée.

Plage : de 1 à 10000

Par défaut : 1000

ROOT_TASK_NAME => string

Une chaîne insensible à la casse spécifiant le nom de la tâche racine. Seuls les noms de tâches non qualifiés sont pris en charge. Seules les exécutions de graphiques pour la tâche spécifiée sont renvoyées. Notez que si plusieurs tâches portent le même nom, la fonction renvoie les exécutions de graphiques pour chacune de ces tâches.

Notes sur l’utilisation

  • Renvoie les résultats uniquement pour le rôle ACCOUNTADMIN , le propriétaire de la tâche (c’est-à-dire le rôle doté du privilège OWNERSHIP sur la tâche) ou un rôle disposant du privilège global MONITOR EXECUTION. Notez qu’à moins qu’un rôle avec le privilège MONITOR EXECUTION ne dispose également du privilège USAGE sur la base de données et le schéma qui stockent la tâche, les valeurs DATABASE_NAME et SCHEMA_NAME dans la sortie sont NULL.

  • Lorsque la fonction CURRENT_TASK_GRAPHS est interrogée, ses arguments de nom de tâche et de limite de résultats sont appliqués d’abord , suivis des clauses WHERE et LIMIT, respectivement, si elles sont spécifiées. En outre, la fonction CURRENT_TASK_GRAPHS renvoie les enregistrements dans l’ordre SCHEDULED_TIME décroissant.

    En pratique, si vous avez de nombreuses tâches de graphiques en cours d’exécution sur votre compte, les résultats renvoyés par la fonction pourraient ne comprendre que des tâches planifiées, surtout si la valeur RESULT_LIMIT est relativement faible.

  • Lors de l’appel d’une fonction de table Information Schema, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information de Snowflake.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

ROOT_TASK_NAME

TEXT

Nom de la tâche racine.

DATABASE_NAME

TEXT

Nom de la base de données contenant le graphique.

SCHEMA_NAME

TEXT

Nom du schéma contenant le graphique.

STATE

TEXT

Statut de l’exécution du graphique :

  • SCHEDULED : la tâche racine est planifiée à une date ultérieure.

  • EXECUTING : au moins une tâche exécutée dans le graphique est toujours en cours d’exécution, ou la tâche racine s’est correctement exécutée jusqu’à son terme et une ou plusieurs tâches enfants sont planifiées.

Notez que si le statut de l’exécution de la tâche racine est SKIPPED, la fonction ne renvoie pas de ligne pour l’exécution.

FIRST_ERROR_TASK_NAME

TEXT

Nom de la première tâche du graphique qui a produit une erreur ; renvoie NULL si aucune tâche n’a produit d’erreur.

FIRST_ERROR_CODE

NUMBER

Code d’erreur de l’erreur renvoyée par la tâche nommée dans FIRST_ERROR_TASK_NAME ; renvoie NULL si aucune tâche n’a produit d’erreur.

FIRST_ERROR_MESSAGE

TEXT

Message d’erreur de l’erreur renvoyée par la tâche nommée dans FIRST_ERROR_TASK_NAME ; renvoie NULL si aucune tâche n’a produit d’erreur.

SCHEDULED_TIME

TIMESTAMP_LTZ

Heure à laquelle la tâche est/était programmée pour commencer à s’exécuter. Notez que nous faisons de notre mieux pour assurer une précision absolue, mais nous garantissons uniquement que les tâches ne s’exécutent pas avant leur heure programmée.

QUERY_START_TIME

TIMESTAMP_LTZ

Heure à laquelle la requête dans la définition de tâche a commencé à s’exécuter. Cet horodatage s’aligne sur l’heure de début de la requête renvoyée par QUERY_HISTORY.

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

Heure à laquelle la tâche autonome ou racine (dans un DAG) doit ensuite commencer à s’exécuter, en supposant que l’exécution en cours de la tâche autonome ou du DAG démarré à l’heure SCHEDULED_TIME se termine à temps.

ROOT_TASK_ID

TEXT

Identificateur unique de la tâche racine dans un DAG. Cet ID correspond à la valeur de la colonne ID dans la sortie SHOW TASKS pour la même tâche.

GRAPH_VERSION

NUMBER

Entier identifiant la version du DAG qui a été exécuté ou doit être exécuté.

RUN_ID

NUMBER

Heure à laquelle la tâche autonome ou racine dans un DAG est/devait initialement démarrer. Le format est l’heure de l’époque (en millisecondes). La combinaison des valeurs ROOT_TASK_ID et RUN_ID identifie une exécution spécifique d’un DAG. . L’heure planifiée d’origine se réfère à de rares cas où le système peut replanifier la même tâche pour qu’elle s’exécute à un autre moment pour la réessayer ou rééquilibrer la charge. Si cela se produit, RUN_ID affiche l’heure d’exécution planifiée d’origine et SCHEDULED_TIME affiche l’heure d’exécution reprogrammée.

Exemples

Récupérez les 1 000 dernières exécutions de graphiques (en cours d’exécution ou planifiées) dans le compte. Notez que le nombre maximum de lignes renvoyées par la fonction est limité à 1 000 par défaut. Pour changer le nombre de lignes renvoyées, modifiez la valeur de l’argument RESULT_LIMIT :

select *
  from table(information_schema.current_task_graphs())
  order by scheduled_time;

Récupère les 10 dernières exécutions de graphiques pour une tâche spécifiée (en cours d’exécution ou planifiées) :

select *
  from table(information_schema.current_task_graphs(
    result_limit => 10,
    root_task_name=>'MYTASK'));
Revenir au début