「預留項目」檢視畫面
INFORMATION_SCHEMA.RESERVATIONS 檢視畫面包含管理專案中所有目前預留項目的近乎即時清單。每一列代表一筆目前的預留項目。現有預留項目是指尚未刪除的預留項目。如要進一步瞭解預留項目,請參閱「預留項目簡介」。
必要權限
如要查詢 INFORMATION_SCHEMA.RESERVATIONS 檢視表,您必須具備專案的 bigquery.reservations.list Identity and Access Management (IAM) 權限。下列每個預先定義的 IAM 角色都包含必要權限:
- BigQuery 資源管理員 (
roles/bigquery.resourceAdmin) - BigQuery 資源編輯者 (
roles/bigquery.resourceEditor) - BigQuery 資源檢視者 (
roles/bigquery.resourceViewer) - BigQuery 使用者 (
roles/bigquery.user) - BigQuery 管理員 (
roles/bigquery.admin)
如要進一步瞭解 BigQuery 權限,請參閱「BigQuery IAM 角色和權限」。
結構定義
INFORMATION_SCHEMA.RESERVATIONS 檢視表包含下列結構定義:
| 資料欄名稱 | 資料類型 | 值 |
|---|---|---|
ddl |
STRING |
用來建立這個預留項目的 DDL 陳述式。 |
project_id |
STRING |
管理專案的 ID。 |
project_number |
INTEGER |
管理專案的編號。 |
reservation_name |
STRING |
使用者提供的預留項目名稱。 |
ignore_idle_slots |
BOOL |
如果設為 false,使用這項預留項目的查詢,就能使用其他運算能力承諾使用合約中未使用的閒置運算單元。 |
slot_capacity |
INTEGER |
預留項目的基準運算單元數量。 |
target_job_concurrency |
INTEGER |
可同時執行的查詢數量目標,受限於可用資源。如果設為零,系統會根據可用資源自動計算這個值。 |
autoscale |
STRUCT |
預留項目的自動調度資源容量資訊。欄位包括:
|
edition |
STRING |
與這個預留項目相關聯的版本。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。 |
primary_location |
STRING |
預留項目主要副本的目前位置。只有使用代管災難復原功能的預留項目,才會設定這個欄位。 |
secondary_location |
STRING |
預留項目次要副本目前的位置。只有使用代管災難復原功能的預留項目,才會設定這個欄位。 |
original_primary_location |
STRING |
最初建立預留項目的位置。 |
labels |
RECORD |
與預訂相關聯的標籤陣列。 |
reservation_group_path |
ARRAY<STRING> |
預留項目連結的預留項目群組。舉例來說,如果預留項目連結至群組 my-group,reservation_group_path 欄位會包含類似 [my-group] 的清單。 |
max_slots |
INTEGER |
這項預留項目可使用的運算單元數量上限,包括基準運算單元 (slot_capacity)、閒置運算單元 (如果 ignore_idle_slots 為 false) 和自動調度資源運算單元。使用者指定這個欄位,即可使用預留項目可預測性功能。 |
scaling_mode |
STRING |
預留項目的調度資源模式,決定預留項目如何從基準調度至 max_slots。使用者指定這個欄位,即可使用預留項目可預測性功能。 |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免查詢因基礎結構定義變更而中斷。
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。下表說明這個檢視畫面的區域範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] |
專案層級 | REGION |
-
選用:
PROJECT_ID: Google Cloud 專案的 ID。如未指定,則會使用預設專案。 -
REGION:任何資料集區域名稱。例如:`region-us`。
彙整預留項目檢視表和工作檢視表
工作檢視畫面包含 reservation_id 欄。如果工作是在已指派預留項目的專案中執行,reservation_id 會採用以下格式:reservation-admin-project:reservation-location.reservation-name。
如要彙整預留項目檢視表和工作檢視表,您可以彙整工作檢視表資料欄 reservation_id 和預留項目檢視表資料欄 project_id 和 reservation_name。以下範例說明如何在預留項目和工作檢視表之間使用 JOIN 子句。
範例
以下範例顯示過去一小時內,指派預留項目的專案運算單元用量、運算單元容量和指派的預留項目。運算單元用量的單位為每秒運算單元毫秒數。
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));
輸出結果會與下列內容相似:
+------------------+---------------------+---------------+----------------+------------------+----------+
| 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 |
這項查詢會使用 RESERVATIONS 檢視表取得預留項目資訊。如果預留項目在過去一小時內有所變更,reservation_slot_capacity 欄可能不準確。
查詢會將 RESERVATIONS 與 JOBS_TIMELINE 彙整,將工作時間片段與預留資訊建立關聯。