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 tampilan INFORMATION_SCHEMA.SCHEMATA_REPLICAS
,
minta administrator untuk memberi Anda
peran IAM BigQuery Data Viewer (roles/bigquery.dataViewer
) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Skema
Tabel virtualINFORMATION_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 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 |
sync_status |
JSON |
Status sinkronisasi
antara replika utama dan sekunder. Menampilkan NULL jika replika adalah replika utama. |
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 |
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, -- 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
Hasilnya akan mirip dengan berikut ini:
+---------------------+-------------+--------------+-----+-----+-------------------------------------------+ | 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 | +---------------------+-------------+--------------+-----+-----+-------------------------------------------+
Nilai NULL
menunjukkan bahwa replika sekunder tidak pernah sepenuhnya disinkronkan ke replika utama.