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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Esquema
A visualizaçãoINFORMATION_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 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 |
sync_status |
JSON |
O status da sincronização
entre a réplica principal e a secundária. Retorna NULL se a réplica for
principal. |
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 |
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, -- 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
O resultado será semelhante ao seguinte:
+---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | 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 | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+
Um valor de NULL
indica que a réplica secundária nunca foi totalmente sincronizada com
a principal.