Visualização SCHEMATA_REPLICAS

A visualização INFORMATION_SCHEMA.SCHEMATA_REPLICAS contém informações sobre réplicas do schemata.

Papel necessário

Para receber as permissões necessárias para consultar a visualização INFORMATION_SCHEMA.SCHEMATA_REPLICAS, peça ao administrador para conceder a você o papel Visualizador de dados do BigQuery (roles/bigquery.dataViewer) do IAM no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Esquema

A visualização INFORMATION_SCHEMA.SCHEMATA_REPLICAS contém informações sobre réplicas de conjuntos de dados. A visualização INFORMATION_SCHEMA.SCHEMATA_REPLICAS tem o seguinte esquema:
Coluna Tipo Descrição
catalog_name STRING O ID do projeto que contém o conjunto de dados.
schema_name STRING O ID do conjunto de dados.
replica_name STRING O nome da réplica.
location STRING A região ou a multirregião em que a réplica foi criada.
replica_primary_assigned BOOL Se o valor for TRUE, a réplica terá a atribuição principal.
replica_primary_assignment_complete BOOL Se o valor for TRUE, a atribuição principal foi concluída. Se o valor for FALSE, a réplica (ainda) não é a principal, mesmo que replica_primary_assigned seja igual a TRUE.
creation_time TIMESTAMP O horário de criação da réplica. Quando a réplica é criada pela primeira vez, ela não é totalmente sincronizada com a réplica principal até creation_complete ser igual a TRUE. O valor de creation_time é definido antes de creation_complete ser TRUE.
creation_complete BOOL Se o valor for TRUE, a sincronização completa inicial da réplica principal para a secundária será concluída.
replication_time TIMESTAMP

O valor de replication_time indica a inatividade do conjunto de dados.

Algumas tabelas na réplica podem estar à frente desse carimbo de data/hora. Esse valor só é visível na região secundária.

Se o conjunto de dados contiver uma tabela com dados de streaming, o valor de replication_time não será preciso.

Escopo e sintaxe

As consultas nessa visualização precisam incluir um qualificador de região. A tabela a seguir explica o escopo da região dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] Nível do projeto REGION
Substitua:

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, region-us.

Examples

Nesta seção, listamos exemplos de consultas da visualização INFORMATION_SCHEMA.SCHEMATA_REPLICAS.

Exemplo: listar todos os conjuntos de dados replicados em uma região

O exemplo a seguir lista todos os conjuntos de dados replicados na região US:

SELECT * FROM `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;

O resultado será semelhante ao seguinte:

+---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+
|    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 |
+---------------------+-------------------+--------------+----------+--------------------------+-------------------------------------+---------------------+-------------------+------------------+

Exemplo: listar conjuntos de dados replicados e a réplica primária de cada um

O exemplo a seguir lista todos os conjuntos de dados replicados e a réplica principal deles na região 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;

O resultado será semelhante ao seguinte:

+---------------------+-------------+----------------------+--------------------------+------------+
|    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 |
+---------------------+-------------+----------------------+--------------------------+------------+

Exemplo: listar conjuntos de dados replicados e os respectivos estados de réplica

O exemplo a seguir lista todos os conjuntos de dados replicados e os respectivos estados de réplica:

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;

O resultado será semelhante ao seguinte:

+---------------------+-------------+--------------+---------------+
|    catalog_name     | schema_name | replica_name | replica_state |
+---------------------+-------------+--------------+---------------+
| myproject           | my_schema1  | us-east4     | PRIMARY       |
| myproject           | my_schema1  | my_replica   | SECONDARY     |
+---------------------+-------------+--------------+---------------+

Exemplo: listar quando cada réplica foi criada e se o preenchimento inicial foi concluído

O exemplo a seguir lista todas as réplicas e quando ela foi criada. Quando uma réplica secundária é criada, os dados dela não são totalmente sincronizados com a réplica principal até que creation_complete seja igual 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;

O resultado será semelhante ao seguinte:

+---------------------+-------------+--------------+---------------------+
|    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 |
+---------------------+-------------+--------------+---------------------+

Exemplo: mostrar o horário sincronizado mais recente

O exemplo a seguir mostra o carimbo de data/hora mais recente quando a réplica secundária alcançou a principal.

Execute essa consulta na região que contém a réplica secundária. Algumas tabelas no conjunto de dados podem estar antes do tempo de replicação relatado.

SELECT
 catalog_name,
 schema_name,
 replica_name,
 replication_time AS secondary_replica_fully_synced_as_of_time,
FROM
 `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS

O resultado será semelhante ao seguinte:

+---------------------+-------------+--------------+-------------------------------------------+
|    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 |
+---------------------+-------------+--------------+-------------------------------------------+

Um valor de NULL indica que a réplica secundária nunca foi totalmente sincronizada com a principal.