Catégories :

Information Schema , Fonctions de table

REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL

Vous pouvez utiliser la famille de fonctions de table REPLICATION_GROUP_REFRESH_HISTORY pour effectuer une requête sur l’historique de la réplication pour un groupe de basculement ou de réplication secondaire, ou pour tous ces groupes.

Par défaut (si aucun argument de plage de dates n’est fourni), ces fonctions renvoient les données des 12 dernières heures. Vous pouvez utiliser les arguments facultatifs DATE_RANGE_START et DATE_RANGE_END pour interroger une plage personnalisée dans la fenêtre de conservation de 14 jours.

Voir aussi :

Vue REPLICATION_GROUP_REFRESH_HISTORY

Syntaxe

REPLICATION_GROUP_REFRESH_HISTORY(
      '<secondary_group_name>'
      [ , DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

REPLICATION_GROUP_REFRESH_HISTORY_ALL(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

Arguments

'secondary_group_name'

Nom du groupe secondaire. Le nom entier doit être entre guillemets simples. Requis pour REPLICATION_GROUP_REFRESH_HISTORY. Non utilisé avec REPLICATION_GROUP_REFRESH_HISTORY_ALL.

Les arguments suivants sont facultatifs pour les deux fonctions.

DATE_RANGE_START => constant_expr , . DATE_RANGE_END => constant_expr

La plage date/heure pour laquelle renvoyer l’historique d’actualisation de la réplication.

  • Si ni date de début, ni date de fin n’est spécifiée, la valeur par défaut correspondra aux 12 dernières heures.

  • Si une date de début est spécifiée, mais qu’aucune date de fin ne l’est, CURRENT_DATE à minuit est utilisé comme fin de plage.

  • Si une date de fin est spécifiée, mais qu’aucune date de début ne l’est, la plage commence 12 heures avant le début de DATE_RANGE_END.

Les données sont conservées pendant 14 jours. Si la plage demandée dépasse la fenêtre de conservation de 14 jours, la fonction renvoie une erreur.

Sortie

La fonction renvoie les colonnes suivantes. REPLICATION_GROUP_REFRESH_HISTORY_ALL comporte des colonnes supplémentaires qui sont les deux premières colonnes du jeu de résultats.

Nom de la colonne

Type de données

Description

GROUP_NAME

TEXT

Indique le groupe de réplication ou de basculement secondaire correspondant à cette ligne dans le jeu de résultats. Ne s’applique qu’à REPLICATION_GROUP_REFRESH_HISTORY_ALL.

GROUP_TYPE

TEXT

Indique si le groupe correspondant à cette ligne dans le jeu de résultats est un groupe de basculement ou un groupe de réplication. La valeur est FAILOVER ou REPLICATION. Ne s’applique qu’à REPLICATION_GROUP_REFRESH_HISTORY_ALL.

PHASE_NAME

TEXT

Phase actuelle de l’opération de réplication. Pour la liste des phases, voir les notes d’utilisation.

START_TIME

TIMESTAMP_LTZ

Heure à laquelle l’opération de réplication a commencé.

END_TIME

TIMESTAMP_LTZ

Heure à laquelle l’opération de réplication s’est terminée, le cas échéant. NULL si elle est toujours en cours.

JOB_UUID

TEXT

ID de requête pour la tâche d’actualisation.

TOTAL_BYTES

VARIANT

Un objet JSON qui fournit des informations détaillées sur les bases de données actualisées :

  • totalBytesToReplicate : nombre total d’octets dont la réplication est attendue.

  • bytesUploaded : nombre réel d’octets téléchargés.

  • bytesDownloaded : nombre réel d’octets téléchargés.

  • databases : liste d’objets JSON contenant les champs suivants pour chaque base de données membre :

    • name : nom de la base de données.

    • totalBytesToReplicate : total des octets prévus pour être répliqués pour la base de données.

OBJECT_COUNT

VARIANT

Un objet JSON qui fournit des informations détaillées sur les objets actualisés :

  • totalObjects : nombre total d’objets dans le groupe de réplication ou de basculement.

  • completedObjects : nombre total d’objets terminés.

  • objectTypes : liste d’objets JSON contenant les champs suivants pour chaque type :

    • objectType : type d’objet (par exemple utilisateurs, rôles, accords de privilèges, entrepôts, schémas, tables, colonnes, etc.).

    • totalObjects : nombre total d’objets de ce type dans le groupe de réplication ou de basculement.

    • completedObjects : nombre total d’objets de ce type qui ont été terminés.

PRIMARY_SNAPSHOT_TIMESTAMP

TIMESTAMP_LTZ

Horodatage de la création de l’instantané principal.

ERROR

VARIANT

NULL si l’opération d’actualisation est réussie. Si l’opération d’actualisation échoue, elle renvoie un objet JSON qui fournit des informations détaillées sur l’erreur :

  • errorCode : code d’erreur de l’échec.

  • errorMessage : message d’erreur de l’échec.

Notes sur l’utilisation

  • Lorsqu’aucun argument DATE_RANGE_START ou DATE_RANGE_END n’est fourni, les fonctions renvoient les données des 12 dernières heures. Pour récupérer des données au-delà des 12 dernières heures, indiquez explicitement la plage de dates. Les données sont disponibles pour un maximum de 14 jours.

  • Ne renvoie que les lignes pour un rôle ayant un quelconque privilège sur le groupe de réplication ou de basculement.

  • Renvoie uniquement les lignes pour un groupe de réplication ou de basculement secondaire dans le compte actuel.

  • Lors de l’appel d’une fonction de table Information Schema, 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.

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

    #

    Nom de la phase

    Description

    1

    SECONDARY_SYNCHRONIZING_MEMBERSHIP

    Le groupe de réplication secondaire ou de basculement reçoit des informations du groupe principal sur les objets inclus dans le groupe et met à jour ses métadonnées d’appartenance.

    2

    SECONDARY_UPLOADING_INVENTORY

    Le groupe de réplication secondaire ou de basculement envoie un inventaire de ses objets dans le compte cible au groupe principal.

    3

    PRIMARY_UPLOADING_METADATA

    Le groupe de réplication ou de basculement principal crée un instantané des métadonnées dans le compte source et l’envoie au groupe secondaire.

    4

    PRIMARY_UPLOADING_DATA

    Le groupe de réplication principal ou de basculement copie les fichiers dont le groupe secondaire a besoin pour réconcilier les deltas entre les objets des comptes source et cible.

    5

    SECONDARY_DOWNLOADING_METADATA

    Le groupe de réplication ou de basculement secondaire applique l’instantané des métadonnées envoyées par le groupe principal. Les mises à jour des métadonnées ne sont pas appliquées de manière atomique mais au fil du temps.

    6

    SECONDARY_DOWNLOADING_DATA

    Le groupe de réplication secondaire ou de basculement copie les fichiers envoyés par le groupe principal vers le compte cible.

    7

    COMPLETED / FAILED / CANCELED

    Actualiser le statut de l’opération.

Exemples

Pour récupérer l’historique d’actualisation du groupe secondaire myfg, exécutez l’instruction suivante.

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY('myfg')
  );

Pour récupérer l’historique d’actualisation des 12 dernières heures (par défaut) pour tous les groupes de basculement et tous les groupes de réplication, exécutez l’instruction suivante :

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL()
  );

Pour récupérer l’historique d’actualisation des 7 derniers jours pour tous les groupes :

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL(
          DATE_RANGE_START => DATEADD(D, -7, CURRENT_DATE),
          DATE_RANGE_END => CURRENT_DATE)
  );

Pour récupérer l’historique d’actualisation d’une plage de dates spécifique pour un groupe secondaire myfg :

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY(
          'myfg',
          DATE_RANGE_START => '2025-04-01',
          DATE_RANGE_END => '2025-04-07')
  );