Tabel virtual SCHEMATA_REPLICAS

Tabel virtual INFORMATION_SCHEMA.SCHEMATA_REPLICAS berisi informasi tentang replika schemata.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat kueri tabel virtual INFORMATION_SCHEMA.SCHEMATA_REPLICAS, minta administrator untuk memberi Anda peran IAM BigQuery Data Viewer (roles/bigquery.dataViewer) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Skema

Tabel virtual INFORMATION_SCHEMA.SCHEMATA_REPLICAS berisi informasi tentang replika set data. Tabel virtual INFORMATION_SCHEMA.SCHEMATA_REPLICAS memiliki skema berikut:
Kolom Jenis Deskripsi
catalog_name STRING ID project dari project yang berisi set data.
schema_name STRING ID set data dari set data.
replica_name STRING Nama replika.
location STRING Region atau multi-region tempat replika dibuat.
replica_primary_assigned BOOL Jika nilainya TRUE, replika memiliki tugas utama.
replica_primary_assignment_complete BOOL Jika nilainya TRUE, tugas utama selesai. Jika nilainya FALSE, replika tersebut bukan (belum) replika utama, meskipun replica_primary_assigned sama dengan TRUE.
creation_time TIMESTAMP Waktu pembuatan replika. Saat pertama kali dibuat, replika tidak disinkronkan sepenuhnya dengan replika utama hingga creation_complete sama dengan TRUE. Nilai creation_time ditetapkan sebelum creation_complete sama dengan TRUE.
creation_complete BOOL Jika nilainya adalah TRUE, sinkronisasi penuh awal replika utama ke replika sekunder akan selesai.
replication_time TIMESTAMP

Nilai untuk replication_time menunjukkan keusangan set data.

Beberapa tabel dalam replika mungkin sudah ada sebelum stempel waktu ini. Nilai ini hanya terlihat di region sekunder.

Jika set data berisi tabel dengan data streaming, nilai replication_time tidak akan akurat.

Cakupan dan sintaksis

Kueri terhadap tabel virtual ini harus menyertakan penentu region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:

Nama tabel virtual Cakupan resource Cakupan region
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT] Level project REGION
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
  • REGION: nama region set data apa pun. Misalnya, region-us.

Contoh

Bagian ini mencantumkan daftar contoh kueri dari tabel virtual INFORMATION_SCHEMA.SCHEMATA_REPLICAS.

Contoh: Mencantumkan semua set data yang direplikasi di suatu region

Contoh berikut mencantumkan semua set data yang direplikasi di region US:

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

Hasilnya akan mirip dengan berikut ini:

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

Contoh: Cantumkan set data yang direplikasi dan replika utama untuk setiap set data

Contoh berikut mencantumkan semua set data yang direplikasi dan replika utamanya di region 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;

Hasilnya akan mirip dengan berikut ini:

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

Contoh: Mencantumkan set data yang direplikasi dan status replikanya

Contoh berikut mencantumkan semua set data yang direplikasi dan status replikanya:

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;

Hasilnya akan mirip dengan berikut ini:

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

Contoh: Cantumkan kapan setiap replika dibuat dan apakah pengisian ulang awal sudah selesai

Contoh berikut mencantumkan semua replika dan kapan replika tersebut dibuat. Saat replika sekunder dibuat, datanya tidak sepenuhnya disinkronkan dengan replika utama hingga creation_complete sama dengan TRUE.

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

Hasilnya akan mirip dengan berikut ini:

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

Contoh: Tampilkan waktu terbaru yang disinkronkan

Contoh berikut menunjukkan stempel waktu terbaru saat replika sekunder telah tersinkronkan dengan replika utama.

Anda harus menjalankan kueri ini di region yang berisi replika sekunder. Beberapa tabel dalam set data mungkin lebih cepat dari waktu replikasi yang dilaporkan.

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

Hasilnya akan mirip dengan berikut ini:

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

Nilai NULL menunjukkan bahwa replika sekunder tidak pernah sepenuhnya disinkronkan ke replika utama.