Ansicht SCHEMATA_REPLICAS

Die Ansicht INFORMATION_SCHEMA.SCHEMATA_REPLICAS enthält Informationen zu Schemareplikaten.

Erforderliche Rolle

Um die Berechtigungen zu erhalten, die Sie zum Abfragen der Ansicht INFORMATION_SCHEMA.SCHEMATA_REPLICAS benötigen, müssen Sie Ihren Administrator bitten, Ihnen die IAM-Rolle BigQuery-Datenbetrachter (roles/bigquery.dataViewer) für das Projekt zu gewähren. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Schema

Die Ansicht INFORMATION_SCHEMA.SCHEMATA_REPLICAS enthält Informationen zu Dataset-Replikaten. Die Ansicht INFORMATION_SCHEMA.SCHEMATA_REPLICAS hat das folgende Schema:
Spalte Typ Beschreibung
catalog_name STRING Die ID des Projekts, das das Dataset enthält.
schema_name STRING Die Dataset-ID des Datasets.
replica_name STRING Der Name des Replikats.
location STRING Die Region oder Multiregion, in der das Replikat erstellt wurde.
replica_primary_assigned BOOL Wenn der Wert TRUE ist, hat das Replikat die primäre Zuweisung.
replica_primary_assignment_complete BOOL Wenn der Wert TRUE ist, ist die primäre Zuweisung abgeschlossen. Wenn der Wert FALSE ist, ist das Replikat (noch) nicht das primäre Replikat, auch wenn replica_primary_assigned gleich TRUE ist.
creation_time TIMESTAMP Der Erstellungszeitpunkt des Replikats. Bei der ersten Erstellung des Replikats wird es erst dann vollständig mit dem primären Replikat synchronisiert, wenn creation_complete gleich TRUE ist. Der Wert von creation_time wird festgelegt, bevor creation_complete gleich TRUE ist.
creation_complete BOOL Bei einem Wert von TRUE ist die erste vollständige Synchronisierung des primären Replikats mit dem sekundären Replikat abgeschlossen.
replication_time TIMESTAMP

Der Wert für replication_time gibt die Veralterung des Datasets an.

Einige Tabellen im Replikat liegen möglicherweise vor diesem Zeitstempel. Dieser Wert ist nur in der sekundären Region sichtbar.

Wenn das Dataset eine Tabelle mit Streamingdaten enthält, ist der Wert von replication_time nicht genau.

Bereich und Syntax

Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:

Ansichtsname Ressourcenbereich Regionsbereich
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] auf Projektebene REGION
Ersetzen Sie Folgendes:

  • Optional: PROJECT_ID: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • REGION: ist ein beliebiger Dataset-Regionsname. Beispiel: region-us

Beispiele

In diesem Abschnitt sind Beispielabfragen der Ansicht INFORMATION_SCHEMA.SCHEMATA_REPLICAS aufgeführt.

Beispiel: Alle replizierten Datasets in einer Region auflisten

Im folgenden Beispiel werden alle replizierten Datasets in der Region US aufgelistet:

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

Das Ergebnis sieht etwa so aus:

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

Beispiel: Replizierte Datasets und das jeweilige primäre Replikat auflisten

Im folgenden Beispiel werden alle replizierten Datasets und das jeweilige primäre Replikat in der Region US aufgelistet:

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;

Das Ergebnis sieht etwa so aus:

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

Beispiel: Replizierte Datasets und den jeweiligen Replikatstatus auflisten

Im folgenden Beispiel werden alle replizierten Datasets und der jeweilige Replikatstatus aufgelistet:

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;

Das Ergebnis sieht etwa so aus:

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

Beispiel: Auflisten, wann jedes Replikat erstellt wurde und ob der erste Backfill abgeschlossen ist

Im folgenden Beispiel werden alle Replikate und der Zeitstempel aufgelistet, zu dem das Replikat erstellt wurde. Wenn ein sekundäres Replikat erstellt wird, werden die zugehörigen Daten erst dann vollständig mit dem primären Replikat synchronisiert, wenn creation_complete gleich TRUE ist.

SELECT
 catalog_name,
 schema_name,
 replica_name,
 creation_time AS creation_time,
FROM
 `region-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
WHERE
 creation_complete = TRUE;

Das Ergebnis sieht etwa so aus:

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

Beispiel: Letzte Synchronisierung anzeigen

Im folgenden Beispiel wird der neueste Zeitstempel angezeigt, zu dem das sekundäre Replikat mit dem primären Replikat erfasst wurde.

Sie müssen diese Abfrage in der Region ausführen, die das sekundäre Replikat enthält. Einige Tabellen im Dataset sind möglicherweise der erfassten Replikationszeit voraus.

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

Das Ergebnis sieht etwa so aus:

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

Der Wert NULL gibt an, dass das sekundäre Replikat nie vollständig mit dem primären Replikat synchronisiert wurde.