Tabel Virtual RESERVATIONS

Tabel virtual INFORMATION_SCHEMA.RESERVATIONS berisi daftar semua reservasi saat ini dalam project administrasi. Setiap baris merepresentasikan satu reservasi saat ini. Reservasi saat ini adalah reservasi yang belum dihapus. Untuk mengetahui informasi selengkapnya tentang reservasi, lihat Pengantar reservasi.

Izin yang diperlukan

Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.RESERVATIONS, Anda memerlukan izin Identity and Access Management (IAM) bigquery.reservations.list untuk project tersebut. Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang diperlukan:

  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer
  • roles/bigquery.user
  • roles/bigquery.admin

Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.

Skema

Tabel virtual INFORMATION_SCHEMA.RESERVATIONS memiliki skema berikut:

Nama kolom Jenis data Nilai
ddl STRING Pernyataan DDL yang digunakan untuk membuat reservasi ini.
project_id STRING ID project administrasi.
project_number INTEGER Jumlah project administrasi.
reservation_name STRING Nama reservasi yang diberikan pengguna.
ignore_idle_slots BOOL Jika salah, semua kueri yang menggunakan reservasi ini dapat menggunakan slot tidak ada aktivitas yang tidak digunakan dari komitmen kapasitas lainnya.
slot_capacity INTEGER Dasar pengukuran reservasi.
target_job_concurrency INTEGER Jumlah target kueri yang dapat dieksekusi secara bersamaan, yang dibatasi oleh resource yang tersedia. Jika nol, nilai ini akan otomatis dihitung berdasarkan resource yang tersedia.
autoscale STRUCT

Informasi tentang kapasitas penskalaan otomatis reservasi. Kolom mencakup:

  • current_slots: jumlah slot yang ditambahkan ke reservasi oleh penskalaan otomatis.
  • max_slots: jumlah maksimum slot yang dapat ditambahkan ke reservasi dengan penskalaan otomatis.
edition STRING Edisi yang terkait dengan reservasi ini. Untuk mengetahui informasi selengkapnya tentang edisi, lihat Pengantar edisi BigQuery.

Cakupan dan sintaksis

Kueri terhadap tabel virtual ini harus menyertakan penentu region. Jika Anda tidak menentukan penentu regional, metadata akan diambil dari semua region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:

Nama tabel virtual Cakupan resource Cakupan region
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_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.

Bergabung antara tabel virtual reservasi dan tabel virtual tugas

Tabel virtual tugas berisi kolom reservation_id. Jika tugas Anda berjalan dalam project dengan reservasi yang ditetapkan untuknya, reservation_id akan mengikuti format ini: reservation-admin-project:reservation-location.reservation-name.

Untuk menggabungkan antara tabel virtual reservasi dan tabel virtual tugas, Anda dapat menggabungkan kolom tabel virtual tugas reservation_id serta kolom tabel virtual reservasi project_id dan reservation_name. Contoh berikut menunjukkan contoh penggunaan klausa JOIN antara reservasi dan tabel virtual tugas.

Contoh

Contoh berikut menunjukkan penggunaan slot, kapasitas slot, dan reservasi yang ditetapkan untuk project dengan penetapan reservasi, selama satu jam terakhir. Penggunaan slot diberikan dalam satuan milidetik slot per detik.

WITH
  job_data AS (
  SELECT
    job.period_start,
    job.reservation_id,
    job.period_slot_ms,
    job.job_id,
    job.job_type
  FROM
    `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job
  WHERE
    job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR))
SELECT
  reservation.reservation_name AS reservation_name,
  job.period_start,
  reservation.slot_capacity,
  job.period_slot_ms,
  job.job_id,
  job.job_type
FROM
  job_data AS job
INNER JOIN
  `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation
ON
  (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));

Outputnya mirip dengan hal berikut ini:

+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name |    period_start     | slot_capacity | period_slot_ms |           job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation   | 2021-04-30 17:30:54 |           100 |          11131 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:55 |           100 |          49978 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:56 |           100 |           9038 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:57 |           100 |          17237 | bquxjob_66707... | QUERY    |

Kueri ini menggunakan tabel virtual RESERVATIONS untuk mendapatkan informasi reservasi. Jika reservasi telah berubah dalam satu jam terakhir, kolom reservation_slot_capacity mungkin tidak akurat.

Kueri tersebut menggabungkan RESERVATIONS dengan JOBS_TIMELINE untuk mengaitkan timeslices tugas dengan informasi reservasi.