visualizzazione SCHEMATA_REPLICAS

La vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS contiene informazioni sulle repliche degli schemi.

Ruolo richiesto

Per ottenere le autorizzazioni di cui hai bisogno per eseguire query sulla vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore dati BigQuery (roles/bigquery.dataViewer) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Schema

La vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS contiene informazioni sulle replica del set di dati. La vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS ha il seguente schema:
Colonna Tipo Descrizione
catalog_name STRING L'ID 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 principale.
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 L'ora di creazione della replica. Al momento della creazione, la replica non viene sincronizzata completamente con la replica principale finché creation_complete non equivale a TRUE. Il valore di creation_time viene impostato prima di creation_complete è uguale a TRUE.
creation_complete BOOL Se il valore è TRUE, la sincronizzazione completa iniziale della replica principale con la replica secondaria è stata completata.
replication_time TIMESTAMP

Il valore di replication_time indica l'obsolescenza del set di dati.

Alcune tabelle nella replica potrebbero essere in anticipo rispetto a questo timestamp. Questo valore è visibile solo nella regione secondaria.

Se il set di dati contiene una tabella con dati in modalità flusso, il valore di replication_time non sarà accurato.

Ambito e sintassi

Le query relative a questa vista devono includere un qualificatore regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:

Nome vista Ambito risorsa Ambito della regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] Livello di progetto REGION
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. 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 vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS.

Esempio: elencare tutti i set di dati replicati in una regione

Nell'esempio seguente sono elencati 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 di ognuno

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: elencare i set di dati replicati e i relativi stati della replica

Nell'esempio seguente sono elencati tutti i set di dati replicati e i relativi stati della 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 è stato completato

Nell'esempio seguente sono elencate tutte le repliche e la data di creazione. Quando viene creata una replica secondaria, i suoi dati non vengono sincronizzati completamente con la replica principale finché creation_complete non equivale 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 della sincronizzazione più recente

L'esempio seguente mostra il timestamp più recente quando la replica secondaria ha raggiunto la replica principale.

Devi eseguire questa query nella regione che contiene la replica secondaria. Alcune tabelle nel set di dati potrebbero essere in anticipo rispetto al tempo di replica indicato.

SELECT
 catalog_name,
 schema_name,
 replica_name,
 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 | secondary_replica_fully_synced_as_of_time |
+---------------------+-------------+--------------+-------------------------------------------+
| myproject           | my_schema1  | us-east4     |                                      NULL |
| myproject           | my_schema2  | us           |                                      NULL |
| myproject           | my_schema1  | my_replica   |                       2023-06-15 00:28:49 |
| myproject           | my_schema2  | my_replica2  |                       2023-06-15 00:29:20 |
+---------------------+-------------+--------------+-------------------------------------------+

Un valore NULL indica che la replica secondaria non è mai stata completamente sincronizzata con la replica principale.