Catégories :

Information Schema , Fonctions de table

DYNAMIC_TABLE_REFRESH_HISTORY

Cette fonction de table renvoie des informations sur chaque actualisation (terminée et en cours) des tables dynamiques.

Cette fonction de table renvoie toutes les actualisations en cours ainsi que toutes les actualisations dont REFRESH_VERSION se situe dans un délai d’1 jour par rapport à l’heure actuelle.

Syntaxe

DYNAMIC_TABLE_REFRESH_HISTORY(
  [ DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , NAME => '<string>' ]
  [ , NAME_PREFIX => '<string>' ]
  [ , ERROR_ONLY => { TRUE | FALSE } ]
)
Copy

Arguments

Tous les arguments sont facultatifs. Si aucun argument n’est fourni, alors 100 actualisations de toutes les tables dynamiques du compte seront renvoyées.

DATA_TIMESTAMP_START => constant_expr , . DATA_TIMESTAMP_END => constant_expr

Plage de temps (au format TIMESTAMP_LTZ) pendant laquelle les actualisations ont eu lieu.

  • Si aucune version de début ou de fin n’est spécifiée, la plage par défaut sera le jour passé.

  • Si aucune version de fin n’est spécifiée, CURRENT_TIMESTAMP est utilisée comme fin de plage.

  • Si aucune version de départ n’est spécifiée, la plage commence 1 jour avant le début de DATE_TIMESTAMP_END.

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 actualisations avec l’heure de fin la plus récente (ou celles qui sont toujours en cours d’exécution) sont renvoyées, jusqu’à la limite spécifiée.

Plage : de 1 à 10000

Par défaut : 100.

NAME => string

Le nom d’une table dynamique.

Les noms doivent être mis entre guillemets simples et ne sont pas sensibles à la casse.

Vous pouvez spécifier le nom incomplet (dynamic_table_name), le nom partiellement complet (schema_name.dynamic_table_name) ou le nom complet (database_name.schema_name.dynamic_table_name).

Pour plus d’informations sur la résolution des noms d’objets, reportez-vous à Résolution de nom d’objet.

La fonction renvoie les actualisations pour cette table.

NAME_PREFIX => string

Préfixe pour les tables dynamiques.

Les préfixes des noms doivent être mis entre guillemets simples et ne sont pas sensibles à la casse.

La fonction renvoie des actualisations pour les tables dont le nom commence par ce préfixe.

Vous pouvez utiliser cet argument pour obtenir les actualisations des tables dynamiques d’une base de données ou d’un schéma spécifique.

ERROR_ONLY => TRUE | FALSE

Lorsqu’elle est définie sur TRUE, cette fonction renvoie uniquement les actualisations qui ont échoué ou qui ont été annulées.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

NAME

TEXT

Nom de la table dynamique.

SCHEMA_NAME

TEXT

Nom du schéma contenant la table dynamique.

DATABASE_NAME

TEXT

Nom de la base de données contenant la table dynamique.

STATE

TEXT

Statut de l’actualisation de la table dynamique. Le statut peut être sous la forme suivante :

  • SCHEDULED : actualisation planifiée, mais pas encore exécutée.

  • EXECUTING : actualisation en cours.

  • SUCCEEDED : actualisation exécutée avec succès.

  • FAILED : échec de l’actualisation au cours de l’exécution.

  • CANCELLED : actualisation annulée avant l’exécution.

  • SKIPPED : indiquant que le processus d’actualisation automatisé n’a pas effectué l’actualisation pour une raison quelconque. Par exemple, parce qu’une table dynamique en entrée n’a pas été actualisée ou pour réduire la charge pour des performances constantes.

STATE_CODE

TEXT

Code représentant l’état actuel de l’actualisation.

STATE_MESSAGE

TEXT

Description de l’état actuel de l’actualisation.

QUERY_ID

TEXT

ID de l’instruction SQL qui a produit les résultats pour la table dynamique.

DATA_TIMESTAMP

TIMESTAMP_LTZ

Horodatage transactionnel de l’évaluation de l’actualisation. (Il se peut que cette date soit légèrement antérieure à l’heure réelle de l’actualisation.) Toutes les données, dans les objets de base, qui sont arrivées avant cet horodatage sont actuellement incluses dans la table dynamique.

REFRESH_START_TIME

TIMESTAMP_LTZ

Heure à laquelle la tâche d’actualisation a commencé.

REFRESH_END_TIME

TIMESTAMP_LTZ

Heure à laquelle l’actualisation s’est achevée.

COMPLETION_TARGET

TIMESTAMP_LTZ

Délai dans lequel cette actualisation doit se terminer pour maintenir la latence sous le paramètre TARGET_LAG pour la table dynamique. Égal à la précédente valeur de REFRESH_VERSION + TARGET_LAG.

QUALIFIED_NAME

TEXT

Nom complet de la table dynamique tel qu’il apparaît dans le graphique des tables dynamiques. Vous pouvez l’utiliser pour joindre la sortie à la sortie de la fonction DYNAMIC_TABLE_GRAPH_HISTORY.

LAST_COMPLETED_DEPENDENCY

OBJECT

Contient les propriétés suivantes :

  • qualified_name : le nom complet de la dernière dépendance disponible.

  • data_timestamp : la version actualisée de cette dépendance.

STATISTICS

OBJECT

Contient les propriétés suivantes :

  • numInsertedRows : le nombre de lignes insérées.

  • numDeletedRows : le nombre de lignes qui ont été supprimées.

  • numCopiedRows : le nombre de lignes qui ont été copiées sans modification.

  • numAddedPartitions : le nombre de partitions ajoutées.

  • numRemovedPartitions : le nombre de partitions supprimées.

    Par exemple : si une instruction UPDATE met à jour 1 ligne dans une partition de 10 lignes. Les métriques ci-dessus montrent alors que 1 ligne a été insérée, 1 a été supprimée et 9 ont été copiées. En outre, 1 partition est supprimée et 1 partition est ajoutée.

REFRESH_ACTION

TEXT

Une des options :

  • NO_DATA - pas de nouvelles données dans les tables de base. Ne s’applique pas à l’actualisation initiale des tables dynamiques venant d’être créées, que les tables de base contiennent ou non des données.

  • REINITIALIZE - la table de base a changé ou la table source d’une table dynamique clonée a été actualisée pendant le clonage.

  • FULL - actualisation complète, parce que la table dynamique contient des éléments de requête qui ne peuvent pas être incrémentés (voir SHOW DYNAMIC TABLE refresh_mode_reason) ou parce que l’actualisation complète était moins coûteuse que l’actualisation incrémentielle.

  • INCREMENTAL - actualisation incrémentielle normale.

REFRESH_TRIGGER

TEXT

Une des options :

  • SCHEDULED - actualisation normale en arrière-plan pour atteindre la latence cible ou la latence cible en aval.

  • MANUAL - utilisateur/tâche a utilisé ALTER DYNAMIC TABLE <nom> REFRESH

Notes sur l’utilisation

  • 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.

Exemples

Récupérer les actualisations qui ont échoué ou ont été annulées :

SELECT
  name,
  state,
  state_code,
  state_message,
  query_id,
  data_timestamp,
  refresh_start_time,
  refresh_end_time
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'MYDB.MYSCHEMA.', ERROR_ONLY => TRUE
    )
  )
ORDER BY
  name,
  data_timestamp;
Copy