Catégories :

Schéma d’information, Fonctions de table

TASK_HISTORY

Cette fonction de table peut être utilisée 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 ou pour une tâche spécifiée.

Note

Cette fonction renvoie l’activité de la tâche au cours des 7 derniers jours.

Syntaxe

TASK_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, TASK_NAME => '<string>' ] )

Arguments

Tous les arguments sont facultatifs.

SCHEDULED_TIME_RANGE_START => expr_constante , . SCHEDULED_TIME_RANGE_END => expr_constante

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 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.

Si l’intervalle de temps ne tombe pas dans les 7 derniers jours, une erreur est renvoyée.

RESULT_LIMIT => entier

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 => chaîne

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.

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.

  • Lors de l’appel d’une fonction de la table de schémas d’informations, 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.

  • 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.

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, EXECUTING, SUCCEEDED, FAILED, ou CANCELLED.

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 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 une arborescence de tâches) doit ensuite commencer à s’exécuter, en supposant que l’exécution en cours de la tâche autonome ou de l’arborescence des tâches démarrée à 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 une arborescence 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 de l’arborescence des tâches qui a été exécutée ou doit être exécutée. Chaque augmentation incrémentielle de la valeur représente une ou plusieurs modifications des tâches dans l’arborescence. 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 une arborescence de tâches 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’une arborescence de tâches. . 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.

RETURN_VALUE

TEXT

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

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 :

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

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')));

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'));

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é.