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

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 (par exemple, GCP, Azure ou AWS) à partir de laquelle les lignes ont été envoyées.

SOURCE_REGION

TEXT

La région, par exemple eu-west -1, à partir de laquelle les lignes ont été envoyées.

TARGET_CLOUD

TEXT

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

TARGET_REGION

TEXT

La région, par exemple eu-west-1, à laquelle les lignes ont été envoyées.

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