Visualizzazione SCHEMATA_REPLICAS
La visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
contiene informazioni sulle repliche degli schemi.
Ruolo richiesto
Per ottenere le autorizzazioni necessarie per eseguire query sulla visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore dati BigQuery (roles/bigquery.dataViewer
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Schema
La visualizzazioneINFORMATION_SCHEMA.SCHEMATA_REPLICAS
contiene informazioni sulle repliche del set di dati.
La visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
ha lo schema seguente:
Colonna | Tipo | Descrizione |
---|---|---|
catalog_name |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
schema_name |
STRING |
L'ID del set di dati. |
replica_name |
STRING |
Il nome della replica. |
location |
STRING |
La regione o le regioni in cui è stata creata la replica. |
replica_primary_assigned |
BOOL |
Se il valore è TRUE , la replica ha l'assegnazione primaria. |
replica_primary_assignment_complete |
BOOL |
Se il valore è TRUE , l'assegnazione principale è completata.
Se il valore è FALSE , la replica non è (ancora) la replica
principale, anche se replica_primary_assigned è uguale a
TRUE . |
creation_time |
TIMESTAMP |
Data/ora di creazione
della replica. Quando viene creata per la prima volta, la replica non è completamente sincronizzata con la replica primaria finché
creation_complete non è uguale a TRUE . Il valore di
creation_time è impostato prima che creation_complete sia uguale a
TRUE . |
creation_complete |
BOOL |
Se il valore è TRUE , la sincronizzazione completa iniziale della
replica primaria con la replica secondaria è completata. |
replication_time |
TIMESTAMP |
Il valore di Alcune tabelle nella replica potrebbero essere successive a questo timestamp. Questo valore è visibile solo nella regione secondaria. Se il set di dati contiene una tabella con dati di streaming, il valore di |
sync_status |
JSON |
Lo stato della sincronizzazione
tra la replica primaria e quella secondaria. Restituisce NULL se la replica è una
replica primaria. |
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] |
Livello progetto | REGION |
-
(Facoltativo)
PROJECT_ID
: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION
: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`
.
Esempi
Questa sezione elenca query di esempio della
visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
.
Esempio: elenca tutti i set di dati replicati in una regione
L'esempio seguente elenca tutti i set di dati replicati nella regione US
:
SELECT * FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;
Il risultato è simile al seguente:
+---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+ | 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 | +---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+
Esempio: elenca i set di dati replicati e la replica principale per ciascuno
L'esempio seguente elenca tutti i set di dati replicati e la relativa replica principale nella regione 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;
Il risultato è simile al seguente:
+---------------------+-------------+----------------------+--------------------------+------------+ | 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 | +---------------------+-------------+----------------------+--------------------------+------------+
Esempio: elenca i set di dati replicati e i relativi stati di replica
L'esempio seguente elenca tutti i set di dati replicati e i relativi stati di replica:
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;
Il risultato è simile al seguente:
+---------------------+-------------+--------------+---------------+ | catalog_name | schema_name | replica_name | replica_state | +---------------------+-------------+--------------+---------------+ | myproject | my_schema1 | us-east4 | PRIMARY | | myproject | my_schema1 | my_replica | SECONDARY | +---------------------+-------------+--------------+---------------+
Esempio: elenca quando è stata creata ogni replica e se il backfill iniziale è completo
L'esempio seguente elenca tutte le repliche e la data di creazione. Quando viene creata una replica secondaria, i relativi dati non vengono sincronizzati completamente con la replica primaria finché creation_complete
non è uguale a TRUE
.
SELECT catalog_name, schema_name, replica_name, creation_time AS creation_time, FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE creation_complete = TRUE;
Il risultato è simile al seguente:
+---------------------+-------------+--------------+---------------------+ | 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 | +---------------------+-------------+--------------+---------------------+
Esempio: mostra l'ora di sincronizzazione più recente
L'esempio seguente mostra il timestamp più recente in cui la replica secondaria ha raggiunto la replica primaria.
Devi eseguire questa query nella regione che contiene la replica secondaria. Alcune tabelle nel set di dati potrebbero essere più recenti rispetto all'ora di replica segnalata.
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
Il risultato è simile al seguente:
+---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | 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 | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+
Un valore di NULL
indica che la replica secondaria non è mai stata completamente sincronizzata con
la replica primaria.