Catégories :

Fonctions système (Informations système)

SYSTEM$DATABASE_REFRESH_PROGRESS , SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB

La famille de fonctions SYSTEM$DATABASE_REFRESH_PROGRESS permet d’interroger le statut d’une actualisation de la base de données selon diverses dimensions :

  • SYSTEM$DATABASE_REFRESH_PROGRESS renvoie un objet JSON indiquant le statut d’actualisation actuel d’une base de données secondaire par son nom.

  • SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB renvoie un objet JSON indiquant le statut d’actualisation actuel d’une base de données secondaire globale par requête d’actualisation.

Note

Ces fonctions renvoient l’activité d’actualisation de la base de données au cours des 14 derniers jours.

Syntaxe

SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )

SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )

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.

id_requête

ID de la requête d’actualisation de la base de données. L’ID de requête peut être obtenu à partir de la page History History tab dans l’interface Web.

Sortie

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

Nom de la colonne

Type de données

Description

phaseName

TEXT

Nom des phases de réplication terminées (ou en cours) jusqu’à présent. Pour la liste des phases, voir les notes d’utilisation.

resultName

TEXT

Statut de la phase de réplication.

startTimeUTC

NUMBER

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

endTimeUTC

NUMBER

Heure de fin de la phase, le cas échéant. Le format est l’heure de l’époque.

details

VARIANT

Un objet distinct JSON indiquant le nombre total d’octets dans l’actualisation des données, ainsi que le nombre d’octets copiés jusqu’à présent dans la phase. Si l’instruction d’actualisation a précédemment échoué ou a été annulée et a été lancée à nouveau, l’objet indique le nombre d’octets ignorés lors de la deuxième tentative. L’objet details est inclus dans les informations de phase Copying Primary Data et Copying Replica Data.

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 le statut d’actualisation actuel de la base de données secondaire spécifiée. Les résultats sont renvoyés dans un objet JSON :

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');

L’exemple suivant récupère les mêmes détails que dans l’exemple précédent, mais les résultats sont séparés en colonnes relationnelles et les horodatages sont convertis en tant que TIMESTAMP_LTZ :

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM table(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS('mydb1'))));

L’exemple suivant récupère le statut de la requête d’actualisation de la base de données spécifiée. Les résultats sont renvoyés dans un objet JSON :

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b');

L’exemple suivant récupère les mêmes détails que dans l’exemple précédent, mais les résultats sont séparés en colonnes relationnelles et les horodatages sont convertis en tant que TIMESTAMP_LTZ :

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM TABLE(FLATTEN(input=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b'))));