- Catégories :
EXTERNAL_FUNCTIONS_HISTORY¶
Cette fonction de table récupère l’historique des fonctions externes appelées par Snowflake pour l’ensemble de votre compte Snowflake.
Note
Cette fonction peut renvoyer des résultats uniquement pour l’activité au cours des 14 derniers jours.
Syntaxe¶
EXTERNAL_FUNCTIONS_HISTORY(
[ DATE_RANGE_START => <constant_date_expression> ]
[, DATE_RANGE_END => <constant_date_expression> ]
[, FUNCTION_SIGNATURE => '<string>' ] )
Arguments¶
Tous les arguments sont facultatifs.
DATE_RANGE_START => constant_date_expression
, .DATE_RANGE_END => constant_date_expression
La plage de date/heure, au cours des 2 dernières semaines, pour laquelle l’historique doit être récupéré :
Si aucune date de fin n’est spécifiée, CURRENT_DATE est utilisée comme date de fin de plage.
Si aucune date de début n’est spécifiée, la plage commence 10 minutes avant le début de
DATE_RANGE_END
(c’est-à-dire que la valeur par défaut est d’afficher les 10 minutes précédentes de l’historique). Par exemple, siDATE_RANGE_END
est CURRENT_DATE, alors leDATE_RANGE_START
par défaut est 11h50 PM le jour précédent.
L’historique est affiché par incréments de 5 minutes, 1 heure ou 24 heures (selon la durée de l’intervalle spécifié).
Si la plage tombe en dehors des 15 derniers jours, une erreur est renvoyée.
FUNCTION_SIGNATURE => string
Une chaîne spécifiant un nom de fonction externe et les types de données des arguments de la fonction. (Les types de données distinguent les noms de fonctions surchargés.) Seules les informations sur cette fonction sont renvoyées.
Mettez la signature entre guillemets simples, par exemple :
function_signature => 'mydb.public.myfunction(integer, varchar)'
Notez que les types de données d’arguments, mais pas les noms d’arguments, sont spécifiés.
Si aucune signature n’est spécifiée, la sortie inclut le total de toutes les fonctions externes utilisées dans la plage de dates et les colonnes suivantes dans les résultats affichent NULL :
FUNCTION_NAME.
ARGUMENTS.
FUNCTION_ENDPOINT_URL.
SOURCE_CLOUD.
SOURCE_REGION.
TARGET_CLOUD.
TARGET_REGION.
Notes sur l’utilisation¶
Renvoie les résultats uniquement pour le rôle ACCOUNTADMIN ou tout rôle auquel le privilège global MONITOR USAGE a été explicitement accordé.
Lors de l’appel d’une fonction de la table Information Schema, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction EXTERNAL_FUNCTIONS_HISTORY doit être complètement qualifié. Pour plus de détails, voir Schéma d’information de Snowflake.
La colonne de sortie nommée ARGUMENTS inclut non seulement les types de données d’argument, mais également le type de données de retour. Le paramètre d’entrée nommé FUNCTION_SIGNATURE doit inclure les types de données des arguments, mais pas le type de données de retour.
Pour obtenir des conseils de dépannage, consultez Symptôme : EXTERNAL_FUNCTIONS_HISTORY renvoie « … identificateur non valide… ».
Sortie¶
La fonction renvoie les colonnes suivantes :
Nom de la colonne |
Type de données |
Description |
---|---|---|
START_TIME |
TIMESTAMP_LTZ |
Début de la plage de temps spécifiée pour laquelle renvoyer l’historique. |
END_TIME |
TIMESTAMP_LTZ |
Fin de la plage de temps spécifiée pour laquelle renvoyer l’historique. |
NAME |
TEXT |
Nom de la fonction pour laquelle renvoyer l’historique. |
ARGUMENTS |
TEXT |
Types de données des arguments et de la valeur renvoyée. Les types de données des arguments distinguent les noms de fonctions surchargés. |
FUNCTION_ENDPOINT_URL |
TEXT |
Le point de terminaison HTTPS que la fonction appelle. Il s’agit généralement d’un service proxy. |
SOURCE_CLOUD |
TEXT |
Plate-forme Cloud à partir de laquelle les lignes ont été envoyées (par exemple |
SOURCE_REGION |
TEXT |
Région à partir de laquelle les lignes ont été envoyées (par exemple |
TARGET_CLOUD |
TEXT |
Plate-forme Cloud à laquelle les lignes ont été envoyées (par exemple |
TARGET_REGION |
TEXT |
Région à laquelle les lignes ont été envoyées (par exemple |
INVOCATIONS |
NUMBER |
Nombre de fois que le service distant a été appelé pendant la période de temps entre START_TIME et END_TIME. Cela inclut les tentatives (par exemple en raison de problèmes de réseau temporaires). |
SENT_ROWS |
NUMBER |
Nombre de lignes envoyées au point de terminaison externe pendant la période de temps entre START_TIME et END_TIME. |
RECEIVED_ROWS |
NUMBER |
Nombre de lignes reçues du point de terminaison externe pendant la période de temps entre START_TIME et END_TIME. |
SENT_BYTES |
NUMBER |
Nombre d’octets envoyés au point de terminaison externe pendant la période de temps entre START_TIME et END_TIME. |
RECEIVED_BYTES |
NUMBER |
Nombre d’octets reçus du point de terminaison externe pendant la période de temps entre START_TIME et END_TIME. |
Exemples¶
Récupérez l’historique pour une période de 30 minutes, par intervalles de 5 minutes, pour votre compte :
select * from table(information_schema.external_functions_history( date_range_start => to_timestamp_ltz('2020-05-24 12:00:00.000'), date_range_end => to_timestamp_ltz('2020-05-24 12:30:00.000')));
Récupérez l’historique des 12 dernières heures, par intervalles de 1 heure, pour une seule fonction externe dans votre compte :
select * from table(information_schema.external_functions_history( date_range_start => dateadd('hour', -12, current_timestamp()), function_signature => 'mydb.public.myfunction(integer, varchar)'));
Récupérez l’historique des 14 derniers jours, par intervalles d’1 jour, pour votre compte :
select * from table(information_schema.external_functions_history( date_range_start => dateadd('day', -14, current_date()), date_range_end => current_date()));
Récupérez l’historique des 14 derniers jours, par intervalles d’1 jour, pour une fonction spécifiée dans votre compte :
select * from table(information_schema.external_functions_history( date_range_start => dateadd('day', -14, current_date()), date_range_end => current_date(), function_signature => 'mydb.public.myfunction(integer, varchar)'));
Dépannage¶
Symptôme : EXTERNAL_FUNCTIONS_HISTORY renvoie « … identificateur non valide… »¶
- Cause possible:
Vous n’avez peut-être pas mis la signature de fonction entre guillemets simples. Par exemple, ce qui suit est faux car les guillemets ne sont pas inclus :
select * from table(information_schema.external_functions_history( function_signature => mydb.public.myfunction(integer, varchar)));
- Solution possible:
Corrigez cela en ajoutant des guillemets autour de la signature de la fonction :
select * from table(information_schema.external_functions_history( function_signature => 'mydb.public.myfunction(integer, varchar)'));
Symptôme : EXTERNAL_FUNCTIONS_HISTORY renvoie une seule ligne de sortie et de nombreuses colonnes sont NULL¶
- Cause possible:
Vous n’avez probablement pas inclus de signature de fonction. Si vous ne spécifiez pas de signature de fonction, alors EXTERNAL_FUNCTION_HISTORY() renvoie les valeurs agrégées pour les colonnes telles que INVOCATIONS, SENT ROWS, etc., et renvoie NULL pour les colonnes telles que le nom de la fonction, les listes d’arguments, etc.
- Solution possible:
Si vous aviez l’intention d’obtenir des informations pour une fonction, incluez une signature de fonction.
Si vous aviez l’intention d’obtenir des informations pour toutes les fonctions, les valeurs NULL de certaines colonnes sont correctes et vous n’avez pas besoin de corriger la requête.