Vista SCHEMATA_REPLICAS

La visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS contiene informazioni sulle repliche dello schema.

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 Gestire 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 vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS contiene informazioni sulle repliche dei set di dati. La vista INFORMATION_SCHEMA.SCHEMATA_REPLICAS ha lo schema seguente:
Colonna Tipo Descrizione
catalog_name STRING L'ID del progetto contenente 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. Quando viene creata per la prima volta, la replica non è completamente sincronizzata con la replica principale finché creation_complete non è uguale a TRUE. Il valore di creation_time viene impostato prima che creation_complete sia uguale TRUE.
creation_complete BOOL Se il valore è TRUE, la sincronizzazione completa iniziale della replica principale con la replica secondaria è completata.
replication_time TIMESTAMP

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

Alcune tabelle della replica potrebbero essere precedenti a questo timestamp. Questo valore è visibile solo nella regione secondaria.

Se il set di dati contiene una tabella con dati in streaming, il valore di replication_time non sarà preciso.

sync_status JSON Lo stato della sincronizzazione tra la replica principale e quella secondaria. Restituisce NULL se la replica è una replica principale.

Ambito e sintassi

Le query su questa vista devono includere un qualificatore regione. La tabella seguente illustra 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
Sostituisci quanto segue:

  • Facoltativo: PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non viene 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 INFORMATION_SCHEMA.SCHEMATA_REPLICAS visualizzazione.

    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 la data di creazione di ogni replica e indica se il completamento del backfill iniziale è stato completato

    L'esempio seguente elenca tutte le repliche e la data di creazione di ciascuna. Quando viene creata una replica secondaria, i relativi dati non vengono sincronizzati completamente con la replica principale 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: mostrare l'ora sincronizzata 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 del set di dati potrebbero precedere la data e l'ora di replica registrate.

    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 NULL indica che la replica secondaria non è mai stata sincronizzata completamente con la replica principale.