Catégories :

Information Schema , Fonctions de table

TASK_HISTORY

Vous pouvez utiliser cette fonction de table pour interroger l’historique de l’utilisation des tâches dans une plage de dates spécifiée. La fonction renvoie l’historique d’utilisation des tâches pour l’ensemble de votre compte Snowflake, une tâche spécifiée ou un graphique de tâches.

Syntaxe

TASK_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, TASK_NAME => '<string>' ]
      [, ERROR_ONLY => { TRUE | FALSE } ]
      [, ROOT_TASK_ID => '<string>'] )
Copy

Arguments

Tous les arguments sont facultatifs.

SCHEDULED_TIME_RANGE_START => constant_expr , . SCHEDULED_TIME_RANGE_END => constant_expr

Intervalle de temps (au format TIMESTAMP_LTZ), au cours des 7 derniers jours, pendant lequel l’exécution de la tâche a été programmée. Si l’intervalle de temps ne tombe pas dans les 7 derniers jours, une erreur est renvoyée.

  • Si SCHEDULED_TIME_RANGE_END n’est pas spécifié, la fonction renvoie les tâches déjà terminées, en cours d’exécution ou planifiées ultérieurement.

  • Si SCHEDULED_TIME_RANGE_END vaut CURRENT_TIMESTAMP, la fonction renvoie les tâches déjà terminées ou en cours d’exécution. Notez qu’une tâche exécutée immédiatement avant l’heure actuelle peut toujours être identifiée comme étant planifiée.

  • Pour interroger uniquement les tâches déjà terminées ou en cours d’exécution, incluez WHERE query_id IS NOT NULL en tant que filtre. La colonne QUERY_ID de la sortie TASK_HISTORY est renseignée uniquement au démarrage d’une tâche.

Note

Si aucune heure de début ou de fin n’est spécifiée, les tâches les plus récentes sont renvoyées, jusqu’à la valeur RESULT_LIMIT spécifiée.

RESULT_LIMIT => integer

Un nombre spécifiant le nombre maximum de lignes renvoyé par la fonction.

Si le nombre de lignes correspondantes est supérieur à cette limite, les exécutions de tâches avec l’horodatage le plus récent sont renvoyées, jusqu’à la limite spécifiée.

Plage : de 1 à 10000

Par défaut : 100.

TASK_NAME => string

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

ERROR_ONLY => TRUE | FALSE

Lorsqu’elle est définie sur TRUE, cette fonction renvoie uniquement les exécutions de tâches qui ont échoué ou qui ont été annulées.

ROOT_TASK_ID =>string

Identificateur unique de la tâche racine dans un graphique de tâches. Cet ID correspond à la valeur de la colonne ID dans la sortie SHOW TASKS pour la même tâche. Spécifiez le ROOT_TASK_ID pour afficher l’historique de la tâche racine et de toutes les tâches enfants qui font partie du graphique de tâches.

Notes sur l’utilisation

  • Cette fonction renvoie des résultats uniquement pour le rôle ACCOUNTADMIN, le propriétaire de la tâche ou un rôle doté 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.

  • Cette fonction renvoie un maximum de 10 000 lignes, définies dans la valeur de l’argument RESULT_LIMIT. La valeur par défaut est 100. Pour éviter cette limitation, utilisez la vue TASK_HISTORY (Account Usage).

  • Notez que lorsque la fonction TASK_HISTORY est interrogée, ses arguments de nom de tâche, d’intervalle de temps et de limite de résultat sont appliqués d’abord, suivis des clauses WHERE et LIMIT, respectivement, si elles sont spécifiées. En outre, la fonction TASK_HISTORY renvoie les enregistrements dans l’ordre SCHEDULED_TIME décroissant. Les tâches dans un état SUCCEEDED, FAILED ou CANCELLED sont généralement planifiées plus tôt, de sorte qu’elles sont généralement renvoyées plus tard dans les résultats de la recherche.

  • En pratique, si vous avez de nombreuses tâches en cours sur votre compte, les résultats renvoyés par la fonction pourraient inclure moins de tâches terminées que prévu, ou que des tâches programmées. Pour interroger l’historique des tâches déjà exécutées, utilisez une combinaison des arguments SCHEDULED_TIME_RANGE_START => constant_expr et SCHEDULED_TIME_RANGE_END => constant_expr.

  • 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 d’informations, voir Schéma d’information de Snowflake.

  • Cette fonction peut renvoyer toutes les exécutions exécutées au cours des sept derniers jours ou la prochaine exécution planifiée au cours des huit jours suivants.

  • Les tâches exécutées lors d’une défaillance des services cloud peuvent apparaître en double dans les résultats de cette fonction. Lors d’une défaillance des services cloud, Snowflake peut réexécuter une tâche, ce qui fait que la tâche a deux UUIDs avec des tâches différentes SCHEDULED_TIME. Vue TASK_HISTORY n’affiche que le UUID final de la tâche réexécutée.

  • Toutes les tâches d’une exécution du graphique de tâches affichent la même sortie d’historique des tâches.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

QUERY_ID

TEXT

ID de l’instruction SQL exécutée par la tâche. Peut être associé à la vue QUERY_HISTORY pour obtenir des détails supplémentaires sur l’exécution de l’instruction ou de la procédure stockée.

NAME

TEXT

Nom de la tâche.

DATABASE_NAME

TEXT

Nom de la base de données contenant la tâche.

SCHEMA_NAME

TEXT

Nom du schéma contenant la tâche.

QUERY_TEXT

TEXT

Texte de l’instruction SQL.

CONDITION_TEXT

TEXT

Texte de la condition WHEN que la tâche évalue lors de la détermination de l’exécution.

STATE

TEXT

Statut de la tâche :

  • SCHEDULED : exécution planifiée.

  • EXECUTING : en cours d’exécution.

  • SUCCEEDED : exécution réussie.

  • FAILED : exécution échouée.

  • FAILED_AND_AUTO_SUSPENDED : la tâche a échoué et a été automatiquement suspendue.

  • CANCELLED : exécution annulée.

  • SKIPPED : indique qu’une exécution de tâche a commencé, mais que le paramètre facultatif WHEN de la définition de la tâche a renvoyé une valeur FALSE ; par conséquent, l’exécution n’a pas repris l’entrepôt (si la tâche utilise des ressources de calcul gérées par le client) ou exécuté le code SQL de la définition de la tâche.

ERROR_CODE

NUMBER

Code d’erreur, si l’instruction a renvoyé une erreur.

ERROR_MESSAGE

TEXT

Message d’erreur si l’instruction a renvoyé une 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 l’exécution de la requête dans la définition de la tâche a commencé, ou NULL si SCHEDULED_TIME est dans le futur ou si l’exécution planifiée actuelle n’a pas encore commencé. 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 Graphiques de tâches de tâches) doit ensuite commencer à s’exécuter, en supposant que l’exécution en cours de la tâche autonome ou du graphique de tâches démarré à l’heure SCHEDULED_TIME se termine à temps.

COMPLETED_TIME

TIMESTAMP_LTZ

Heure de fin de la tâche ou NULL si SCHEDULED_TIME est dans le futur ou si la tâche est toujours en cours d’exécution.

ROOT_TASK_ID

TEXT

Identificateur unique de la tâche racine dans un graphique de tâches. 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 graphique de tâches qui a été exécuté ou doit être exécuté. Chaque augmentation incrémentielle de la valeur représente une ou plusieurs modifications des tâches dans le graphique de tâches. Si la tâche racine est recréée (à l’aide de CREATE OR REPLACE TASK), le numéro de version redémarre à partir de 1.

RUN_ID

NUMBER

Heure à laquelle la tâche autonome ou racine dans un Graphiques de tâches est/devait initialement démarrer. Le format est l’heure de l’époque (en millisecondes). . . 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. . . Veuillez noter que RUN_ID peut ne pas être un identificateur unique pour la tâche/le graphique en cours d’exécution avant la nouvelle tentative. Vous pouvez utiliser la colonne GRAPH_RUN_GROUP_ID pour remplacer RUN_ID.

RETURN_VALUE

TEXT

Valeur définie pour le prédécesseur dans un graphique de tâches. La valeur de retour est définie explicitement par le prédécesseur en appelant la fonction SYSTEM$SET_RETURN_VALUE.

SCHEDULED_FROM

TEXT

Une des options :

  • SCHEDULE : La tâche a été planifiée pour s’exécuter normalement, comme décrit dans les clauses SCHEDULE ou AFTER de CREATE TASK.

  • EXECUTE TASK : l’exécution de la tâche était planifiée à l’aide de EXECUTE TASK.

  • MANUAL RETRY : l’exécution de la tâche était planifiée à l’aide de EXECUTE TASK … RETRY LAST.

Pour les exécutions de tâches enfant dans un graphique de tâches, la colonne renvoie la même valeur que l’exécution de la tâche racine.

ATTEMPT_NUMBER

NUMBER

Entier représentant le nombre de tentatives d’exécution de cette tâche. Initialement un.

CONFIG

TEXT

Affiche la configuration du niveau graphique si elle est définie pour la tâche racine, sinon affiche NULL.

QUERY_HASH

TEXT

La valeur de hachage calculée sur la base du texte SQL canonisé.

QUERY_HASH_VERSION

NUMBER

La version de la logique utilisée pour calculer QUERY_HASH.

QUERY_PARAMETERIZED_HASH

TEXT

La valeur de hachage calculée à partir de la requête paramétrée.

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

La version de la logique utilisée pour calculer QUERY_PARAMETERIZED_HASH.

GRAPH_RUN_GROUP_ID

NUMBER

Identificateur de l’exécution du graphique. Lorsqu’un graphique comporte plusieurs tâches, chacune d’entre elles affiche le même GRAPH_RUN_GROUP_ID. La combinaison de GRAPH_RUN_GROUP_ID, et ATTEMPT_NUMBER peut être utilisée pour identifier de manière unique l’exécution d’un graphique.

BACKFILL_INFO

OBJECT

Réservé pour une utilisation future. La valeur renvoyée pour toutes les lignes est NULL.

Exemples

Récupérer les 100 dernières exécutions de tâches (terminées, en cours ou planifiées ultérieurement) dans le compte. Notez que le nombre maximum de lignes renvoyées par la fonction est limité à 100 par défaut :

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY())
  ORDER BY SCHEDULED_TIME;
Copy

Récupérer l’historique d’exécution des tâches du compte dans un bloc de temps spécifié de 30 minutes au cours des 7 derniers jours :

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>TO_TIMESTAMP_LTZ('2018-11-9 12:00:00.000 -0700'),
    SCHEDULED_TIME_RANGE_END=>TO_TIMESTAMP_LTZ('2018-11-9 12:30:00.000 -0700')));
Copy

Récupérer les 10 dernières exécutions d’une tâche spécifiée (terminée, en cours ou planifiée ultérieurement) planifiée au cours de la dernière heure :

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>DATEADD('hour',-1,current_timestamp()),
    RESULT_LIMIT => 10,
    TASK_NAME=>'mytask'));
Copy

Note

Pour récupérer uniquement les tâches terminées ou en cours d’exécution, filtrez la requête à l’aide de WHERE query_id IS NOT NULL. Notez que ce filtre est appliqué après que RESULT_LIMIT a déjà réduit les résultats renvoyés. Par conséquent, la requête pourrait renvoyer 9 tâches si la tâche 1 était planifiée mais n’avait pas encore démarré.

Récupère l’historique d’exécution de toutes les tâches dans le graphique de tâches de la tâche racine spécifiée.

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>'d4b89013-c942-465c-bcb8-e7037a932b04'));
Copy

Récupérer l’historique d’exécution de toutes les tâches dans le graphique de tâches de la tâche racine la plus récemment interrogée :

DESC TASK my_task
SET task_id=(SELECT "id" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())));
SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>$task_id));
Copy