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

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
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,
     -- 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.