Tampilan RESERVATIONS_TIMELINE
Tampilan INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
menunjukkan
timeslice metadata reservasi untuk setiap project administrasi reservasi
untuk setiap menit secara real time. Selain itu, array per_second_details
menampilkan detail penskalaan otomatis untuk setiap detik.
Izin yang diperlukan
Untuk membuat kueri tampilan INFORMATION_SCHEMA.RESERVATION_TIMELINE
, Anda memerlukan izin Identity and Access Management (IAM) bigquery.reservations.list
di project tersebut.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin
yang diperlukan:
- BigQuery Resource Admin (
roles/bigquery.resourceAdmin
) - BigQuery Resource Editor (
roles/bigquery.resourceEditor
) - BigQuery Resource Viewer (
roles/bigquery.resourceViewer
) - BigQuery User (
roles/bigquery.user
) - BigQuery Admin (
roles/bigquery.admin
)
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Peran dan izin IAM BigQuery.
Skema
Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
, hasil kueri akan berisi satu baris untuk setiap menit dari setiap reservasi BigQuery dalam 180 hari terakhir, dan satu baris untuk setiap menit dengan perubahan reservasi untuk kejadian yang lebih lama dari 180 hari. Setiap periode dimulai pada interval satu menit penuh dan berlangsung tepat satu menit.
Tampilan INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
autoscale |
STRUCT |
Berisi informasi tentang kapasitas penskalaan otomatis reservasi. Kolom mencakup:
|
edition |
STRING |
Edisi yang terkait dengan reservasi ini. Untuk mengetahui informasi selengkapnya tentang edisi, lihat Pengantar edisi BigQuery. |
ignore_idle_slots |
BOOL |
False (salah) jika berbagi slot diaktifkan, jika tidak, true (benar). |
labels |
RECORD |
Array label yang terkait dengan reservasi. |
period_start |
TIMESTAMP |
Waktu mulai periode satu menit ini. |
per_second_details |
STRUCT |
Berisi informasi tentang kapasitas dan penggunaan reservasi setiap detik. Kolom mencakup:
Jika ada perubahan penskalaan otomatis atau reservasi selama satu menit ini, array akan diisi dengan 60 baris. Namun, untuk reservasi non-penskalaan otomatis yang tetap tidak berubah selama satu menit ini, array kosong karena jika tidak, array akan mengulangi angka yang sama 60 kali. |
project_id |
STRING |
ID project administrasi pemesanan. |
project_number |
INTEGER |
Nomor project. |
reservation_id |
STRING |
Untuk bergabung dengan tabel jobs_timeline. Kolom ini memiliki format project_id:location.reservation_name. |
reservation_name |
STRING |
Nama pemesanan. |
slots_assigned |
INTEGER |
Jumlah slot yang ditetapkan untuk pemesanan ini. |
slots_max_assigned |
INTEGER |
Kapasitas slot maksimum untuk pemesanan ini, termasuk berbagi slot. Jika ignore_idle_slots bernilai benar, ini sama dengan slots_assigned . Jika tidak, ini adalah jumlah total slot dalam semua komitmen kapasitas dalam project administrasi. |
max_slots |
INTEGER |
Jumlah maksimum slot yang dapat digunakan oleh reservasi ini, yang mencakup
slot dasar pengukuran (slot_capacity ), slot tidak ada aktivitas (jika ignore_idle_slots salah), dan
slot penskalaan otomatis. Kolom ini ditentukan oleh pengguna untuk menggunakan fitur prediktabilitas reservasi. |
scaling_mode |
STRING |
Mode penskalaan untuk reservasi, yang menentukan cara penskalaan reservasi dari dasar pengukuran ke max_slots . Kolom ini ditentukan oleh pengguna untuk menggunakan fitur prediktabilitas reservasi. |
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 dan resource untuk tampilan ini:
Nama tampilan | Cakupan resource | Cakupan region |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_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
Contoh: Lihat total penggunaan slot per detik
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID dalam format berikut:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
Contoh berikut menunjukkan penggunaan slot per detik dari project yang ditetapkan ke
YOUR_RESERVATION_ID
di semua tugas:
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
Hasilnya mirip dengan berikut ini:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Contoh: Penggunaan slot berdasarkan pemesanan
Contoh berikut menunjukkan penggunaan slot per detik untuk setiap reservasi dalam satu hari terakhir:
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
Hasilnya mirip dengan berikut ini:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+