Catégories :

Information Schema , Fonctions de table

PIPE_USAGE_HISTORY

Cette fonction peut être utilisée pour interroger l’historique des données chargées dans les tables Snowflake à l’aide de Snowpipe dans une plage de dates spécifiée. La fonction renvoie l’historique des données chargées et des crédits facturés pour l’ensemble de votre compte Snowflake.

Note

Cette fonction renvoie l’activité du canal au cours des 14 derniers jours.

Syntaxe

PIPE_USAGE_HISTORY(
      [ DATE_RANGE_START => <constant_expr> ]
      [, DATE_RANGE_END => <constant_expr> ]
      [, PIPE_NAME => '<string>' ] )
Copy

Arguments

Tous les arguments sont facultatifs.

DATE_RANGE_START => constant_expr , . DATE_RANGE_END => constant_expr

La date/l’heure, au cours des 2 dernières semaines, pour laquelle l’historique de la charge de données 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 de chargement des données). 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.

PIPE_NAME => string

Chaîne spécifiant une barre verticale. Seules les charges de données qui utilisent le canal spécifié sont renvoyées.

Si aucun nom de canal n’est spécifié, la colonne PIPE_NAME dans les résultats affiche NULL. Chaque rangée comprend les totaux de tous les canaux utilisés dans l’intervalle de temps.

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

  • Occasionnellement, les crédits Snowflake peuvent être consommés par le processus de compactage et de maintenance des données. Par exemple, les résultats retournés peuvent montrer que vous avez consommé des crédits avec 0 BYTES_INSERTED et 0 FILES_INSERTED. Cela signifie que vos données ne sont pas chargées, mais que le processus de compactage et de maintenance des données a consommé des crédits.

  • Snowflake commence à facturer les notifications d’actualisation automatique dans les tables externes et les tables de répertoire sur des zones de préparation externes à un taux équivalent à celui du fichier Snowpipe. Vous pouvez estimer les frais encourus par vos notifications d’actualisation automatique des tables externes et des tables de répertoire en interrogeant la fonction PIPE_USAGE_HISTORY ou en examinant Account Usage Vue PIPE_USAGE_HISTORY. Notez que les canaux d’actualisation automatique seront répertoriés sous un nom de canal NULL. Vous pouvez également consulter l’historique des notifications d’actualisation automatique de votre table externe au niveau de la granularité de la table/de la zone de préparation en utilisant la page AUTO_REFRESH_REGISTRATION_HISTORY de la fonction de table d’Information Schema.

    Pour éviter les frais liés aux notifications d’actualisation automatique, procédez à une actualisation manuelle des tables externes et des tables de répertoire. Pour les tables externes, l’instruction ALTER EXTERNAL TABLE <nom> REFRESH … peut être utilisée pour synchroniser manuellement votre table externe avec le stockage externe. Pour les tables de répertoire, l’instruction ALTER STAGE <nom> REFRESH … peut être utilisée pour synchroniser manuellement le répertoire avec le stockage externe.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

START_TIME

TIMESTAMP_LTZ

Début de l’intervalle de temps spécifié dans lequel les chargements de données ont eu lieu.

END_TIME

TIMESTAMP_LTZ

Fin de l’intervalle de temps spécifié dans lequel les chargements de données ont eu lieu.

PIPE_NAME

TEXT

Nom du canal utilisé pour une charge de données. Affiche NULL si aucun nom de canal n’est spécifié dans la requête. Chaque rangée comprend les totaux de tous les canaux utilisés dans l’intervalle de temps.

CREDITS_USED

TEXT

Nombre de crédits facturés pour le chargement de données Snowpipe au cours de la fenêtre entre START_TIME et END_TIME.

BYTES_INSERTED

NUMBER

Nombre d’octets chargés au cours de la fenêtre entre START_TIME et END_TIME.

FILES_INSERTED

NUMBER

Nombre de fichiers chargés pendant la fenêtre comprise entre START_TIME et END_TIME.

Exemples

Récupérez l’historique de chargement de données pour une période de 30 minutes, par intervalles de 5 minutes, pour votre compte :

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>to_timestamp_tz('2017-10-24 12:00:00.000 -0700'),
    date_range_end=>to_timestamp_tz('2017-10-24 12:30:00.000 -0700')));
Copy

Récupérez l’historique de la charge de données des 12 dernières heures, par périodes d’1 heure, pour votre compte :

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('hour',-12,current_timestamp()),
    pipe_name=>'mydb.public.mypipe'));
Copy

Récupérez l’historique de la charge de données des 14 derniers jours, par périodes d’1 jour, pour votre compte :

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('day',-14,current_date()),
    date_range_end=>current_date()));
Copy

Récupérez l’historique de la charge de données pour les 14 derniers jours, par périodes d’1 jour, pour un canal spécifié dans votre compte :

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('day',-14,current_date()),
    date_range_end=>current_date(),
    pipe_name=>'mydb.public.mypipe'));
Copy