- Catégories :
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>'] )
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 est100
. 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
etSCHEDULED_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 :
|
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 :
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_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 |
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;
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 queRESULT_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'));
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));