Catégories :

Fonctions système (Informations système)

SYSTEM$DATABASE_REFRESH_HISTORY

Renvoie un objet JSON montrant l’historique d’actualisation d’une base de données secondaire.

Note

Cette fonction renvoie l’activité d’actualisation de la base de données au cours des 14 derniers jours.

Syntaxe

SYSTEM$DATABASE_REFRESH_HISTORY( '<secondary_db_name>' )

Arguments

nom_bd_secondaire

Nom de la base de données secondaire. Cet argument est facultatif si la base de données secondaire est la base de données active de la session en cours.

Notez que le nom entier doit être entre guillemets simples.

Sortie

La fonction renvoie les éléments suivants dans un objet JSON :

Nom de la colonne

Type de données

Description

startTimeUTC

NUMBER

Heure à laquelle l’opération de réplication a commencé. Le format est l’heure de l’époque.

endTimeUTC

NUMBER

Heure à laquelle l’opération de réplication s’est terminée, le cas échéant. Le format est l’heure de l’époque.

currentPhase

TEXT

Phase de réplication en cours. Pour la liste des phases, voir les notes d’utilisation.

jobUUID

TEXT

ID de requête pour la tâche d’actualisation de la base de données secondaire.

copy_bytes

NUMBER

Nombre d’octets copiés lors de la réplication.

object_count

NUMBER

Nombre d’objets de base de données copiés pendant l’opération de réplication.

Notes sur l’utilisation

  • Renvoie uniquement les résultats des administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN).

  • Voici la liste des phases de traitement dans l’ordre :

    1. SECONDARY_UPLOADING_INVENTORY

    2. PRIMARY_UPLOADING_METADATA

    3. PRIMARY_UPLOADING_DATA

    4. SECONDARY_DOWNLOADING_METADATA

    5. SECONDARY_DOWNLOADING_DATA

    6. COMPLETED / FAILED / CANCELED

Exemples

L’exemple suivant récupère l’historique d’actualisation pour la base de données secondaire mydb. Les résultats sont renvoyés dans un objet JSON :

SELECT SYSTEM$DATABASE_REFRESH_HISTORY('mydb');

L’exemple suivant récupère les mêmes détails que dans l’exemple précédent, mais les résultats sont aplatis sous une forme relationnelle :

SELECT
    to_timestamp_ltz(value:startTimeUTC::numeric,3) AS "start_time"
    , to_timestamp_ltz(value:endTimeUTC::numeric,3) AS "end_time"
    , value:currentPhase::string AS "phase"
  , value:jobUUID::string AS "query_ID"
  , value:copy_bytes::integer AS "bytes_transferred"
FROM TABLE(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_HISTORY('mydb'))));