Catégories :

Information Schema , Fonctions de table

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 => expression_date_constante , . DATE_RANGE_END => expression_date_constante

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, si DATE_RANGE_END est CURRENT_DATE, alors le DATE_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 => chaîne

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.

  • 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 GCP, Azure ou AWS).

SOURCE_REGION

TEXT

Région à partir de laquelle les lignes ont été envoyées (par exemple eu-west-1).

TARGET_CLOUD

TEXT

Plate-forme Cloud à laquelle les lignes ont été envoyées (par exemple GCP, Azure ou AWS).

TARGET_REGION

TEXT

Région à laquelle les lignes ont été envoyées (par exemple eu-west-1).

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.