Vue SCHEMATA_REPLICAS
La vue INFORMATION_SCHEMA.SCHEMATA_REPLICAS
contient des informations sur les instances répliquées de schéma.
Rôle requis
Pour obtenir les autorisations nécessaires pour interroger la vue INFORMATION_SCHEMA.SCHEMATA_REPLICAS
, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de données BigQuery (roles/bigquery.dataViewer
) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Schéma
La vueINFORMATION_SCHEMA.SCHEMATA_REPLICAS
contient des informations sur les instances répliquées des ensembles de données.
La vue INFORMATION_SCHEMA.SCHEMATA_REPLICAS
présente le schéma suivant :
Colonne | Type | Description |
---|---|---|
catalog_name |
STRING |
ID du projet qui contient l'ensemble de données. |
schema_name |
STRING |
ID de l'ensemble de données. |
replica_name |
STRING |
Nom de l'instance répliquée. |
location |
STRING |
Région ou emplacement multirégional dans lequel l'instance répliquée a été créée. |
replica_primary_assigned |
BOOL |
Si la valeur est TRUE , l'instance répliquée possède l'attribution principale. |
replica_primary_assignment_complete |
BOOL |
Si la valeur est TRUE , l'attribution principale est terminée.
Si la valeur est FALSE , l'instance répliquée n'est pas (encore) l'instance répliquée principale, même si replica_primary_assigned est égal à TRUE . |
creation_time |
TIMESTAMP |
Heure de création de l'instance répliquée. Lors de la création initiale de l'instance répliquée, celle-ci n'est pas entièrement synchronisée avec l'instance répliquée principale tant que creation_complete n'a pas la valeur TRUE . La valeur de creation_time est définie avant que creation_complete ne soit égal à TRUE . |
creation_complete |
BOOL |
Si la valeur est TRUE , la synchronisation complète de l'instance répliquée principale avec l'instance répliquée secondaire est terminée. |
replication_time |
TIMESTAMP |
La valeur Certaines tables de l'instance répliquée peuvent être antérieures à cet horodatage. Cette valeur n'est visible que dans la région secondaire. Si l'ensemble de données contient une table contenant des données par flux, la valeur de |
sync_status |
JSON |
État de la synchronisation entre l'instance dupliquée principale et l'instance dupliquée secondaire. Renvoie NULL si l'instance dupliquée est une instance principale. |
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un qualificatif de région. Le tableau suivant explique le champ d'application de la région pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] |
Niveau Projet | REGION |
Facultatif : PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: tout nom de région d'ensemble de données.
Par exemple, `region-us`
.
Exemples
Cette section recense des exemples de requêtes de la vue INFORMATION_SCHEMA.SCHEMATA_REPLICAS
.
Exemple : Recenser tous les ensembles de données répliqués d'une région
L'exemple suivant recense tous les ensembles de données répliqués dans la région US
:
SELECT * FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;
Le résultat ressemble à ce qui suit :
+---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+ | catalog_name | schema_name | replica_name | location | replica_primary_assigned | replica_primary_assignment_complete | creation_time | creation_complete | replication_time | +---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+ | myproject | replica1 | us-east7 | us-east7 | true | true | 2023-04-17 20:42:45 | true | NULL | | myproject | replica1 | us-east4 | us-east4 | false | false | 2023-04-17 20:44:26 | true | NULL | +---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+
Exemple : Recenser les ensembles de données répliqués et leur instance répliquée principale
L'exemple suivant recense tous les ensembles de données répliqués et leur instance répliquée principale dans la région US
:
SELECT catalog_name, schema_name, replica_name AS primary_replica_name, location AS primary_replica_location, replica_primary_assignment_complete AS is_primary, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE replica_primary_assignment_complete = TRUE AND replica_primary_assigned = TRUE;
Le résultat ressemble à ce qui suit :
+---------------------+-------------+----------------------+--------------------------+------------+ | catalog_name | schema_name | primary_replica_name | primary_replica_location | is_primary | +---------------------+-------------+----------------------+--------------------------+------------+ | myproject | my_schema1 | us-east4 | us-east4 | true | | myproject | my_schema2 | us | US | true | | myproject | my_schema2 | us | US | true | +---------------------+-------------+----------------------+--------------------------+------------+
Exemple : Recenser les ensembles de données répliqués et les états de leurs instances répliquées
L'exemple suivant recense tous les ensembles de données répliqués et les états de leurs instances répliquées :
SELECT catalog_name, schema_name, replica_name, CASE WHEN (replica_primary_assignment_complete = TRUE AND replica_primary_assigned = TRUE) THEN 'PRIMARY' WHEN (replica_primary_assignment_complete = FALSE AND replica_primary_assigned = FALSE) THEN 'SECONDARY' ELSE 'PENDING' END AS replica_state, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;
Le résultat ressemble à ce qui suit :
+---------------------+-------------+--------------+---------------+ | catalog_name | schema_name | replica_name | replica_state | +---------------------+-------------+--------------+---------------+ | myproject | my_schema1 | us-east4 | PRIMARY | | myproject | my_schema1 | my_replica | SECONDARY | +---------------------+-------------+--------------+---------------+
Exemple : Recenser la date de création de chaque instance répliquée et indiquer si le remplissage initial est terminé.
L'exemple suivant recense toutes les instances répliquées et leur date de création. Lorsqu'une instance répliquée secondaire est créée, ses données ne sont pas entièrement synchronisées avec l'instance répliquée principale tant que creation_complete
n'a pas la valeur TRUE
.
SELECT catalog_name, schema_name, replica_name, creation_time AS creation_time, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE creation_complete = TRUE;
Le résultat ressemble à ce qui suit :
+---------------------+-------------+--------------+---------------------+ | catalog_name | schema_name | replica_name | creation_time | +---------------------+-------------+--------------+---------------------+ | myproject | my_schema1 | us-east4 | 2023-06-15 00:09:11 | | myproject | my_schema2 | us | 2023-06-15 00:19:27 | | myproject | my_schema2 | my_replica2 | 2023-06-15 00:19:50 | | myproject | my_schema1 | my_replica | 2023-06-15 00:16:19 | +---------------------+-------------+--------------+---------------------+
Exemple : Afficher l'heure de dernière synchronisation
L'exemple suivant montre l'horodatage le plus récent du moment où l'instance répliquée secondaire a rattrapé l'instance répliquée principale.
Vous devez exécuter cette requête dans la région qui contient l'instance répliquée secondaire. Certaines tables de l'ensemble de données peuvent être antérieures à l'heure de réplication signalée.
SELECT catalog_name, schema_name, replica_name, -- Calculate the replication lag in seconds. TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), replication_time, SECOND) AS replication_lag_seconds, -- RLS -- Calculate the replication lag in minutes. TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), replication_time, MINUTE) AS replication_lag_minutes, -- RLM -- Show the last sync time for easier interpretation. replication_time AS secondary_replica_fully_synced_as_of_time, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
Le résultat ressemble à ce qui suit :
+---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | catalog_name | schema_name | replica_name | rls | rlm | secondary_replica_fully_synced_as_of_time | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | myproject | my_schema1 | us-east4 | 23 | 0 | 2023-06-15 00:18:49 | | myproject | my_schema2 | us | 67 | 1 | 2023-06-15 00:22:49 | | myproject | my_schema1 | my_replica | 11 | 0 | 2023-06-15 00:28:49 | | myproject | my_schema2 | my_replica2 | 125 | 2 | 2023-06-15 00:29:20 | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+
La valeur NULL
indique que l'instance répliquée secondaire n'a jamais été entièrement synchronisée avec l'instance dupliquée principale.