RESERVATIONS_TIMELINE 檢視畫面
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
檢視畫面會即時顯示每個預留項目管理專案的預留項目中繼資料時間切片,每分鐘更新一次。此外,per_second_details
陣列會顯示每秒的自動調度詳細資料。
必要權限
如要查詢 INFORMATION_SCHEMA.RESERVATION_TIMELINE
檢視,您必須具備專案的 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_TIMELINE_BY_*
檢視表時,過去 180 天內每分鐘的每個 BigQuery 預留項目,在查詢結果中都會有一個相對應的資料列。如果發生時間超過 180 天,每分鐘的預留項目變更也會有一個相對應的資料列。每個週期都從整分鐘開始,且持續整整一分鐘。
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
autoscale |
STRUCT |
內含保留項目的自動調度容量相關資訊。欄位包括:
|
edition |
STRING |
與這項預訂相關聯的版本。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。 |
ignore_idle_slots |
BOOL |
如果已啟用運算單元共用功能,則為 False,否則為 True。 |
labels |
RECORD |
與預訂項目相關聯的標籤陣列。 |
period_start |
TIMESTAMP |
這個一分鐘期間的開始時間。 |
per_second_details |
STRUCT |
包含每秒的預訂容量和使用量資訊。欄位包括:
如果在這 1 分鐘內有任何自動調度資源或預訂異動,陣列會填入 60 列。不過,如果非自動調整大小的預訂項目在這分鐘內維持不變,陣列就會是空白,否則會重複相同的數字 60 次。 |
project_id |
STRING |
預訂管理專案的 ID。 |
project_number |
INTEGER |
專案編號。 |
reservation_id |
STRING |
用於加入 jobs_timeline 表格。格式為 project_id:location.reservation_name。 |
reservation_name |
STRING |
預訂名稱。 |
slots_assigned |
INTEGER |
指派給這個預留項目的運算單元數量。 |
slots_max_assigned |
INTEGER |
這個預留項目的運算單元容量上限,包括運算單元共用。如果 ignore_idle_slots 為 true,這與 slots_assigned 相同,否則這是管理專案中所有容量使用承諾的運算單元總數。 |
max_slots |
INTEGER |
這個預留項目可使用的運算單元數量上限,包括基準運算單元 (slot_capacity )、閒置運算單元 (如果 ignore_idle_slots 為 false) 和自動調度運算單元。使用者會指定這個欄位,以使用預訂預測功能。 |
scaling_mode |
STRING |
預留項目的縮放模式,決定預留項目如何從基準縮放至 max_slots 。使用者會指定這個欄位,以使用預訂預測功能。 |
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。如未指定區域限定符,系統會從所有區域擷取中繼資料。下表說明這個檢視畫面的區域和資源範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] |
專案層級 | REGION |
-
選用:
PROJECT_ID
:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION
:任何資料集區域名稱。 例如:`region-us`
。
範例
範例:查看每秒的運算單元總用量
如要對預設專案以外的專案執行查詢,請使用以下格式新增專案 ID:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
。
以下範例顯示指派給 YOUR_RESERVATION_ID
的專案中,所有工作每秒的時段用量:
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;
結果會類似如下:
+-----------------------+---------------------+--------------------------+------------------------------+ | 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 | +-----------------------+---------------------+--------------------------+------------------------------+
範例:各預留項目的運算單元用量
以下範例顯示過去 1 天內每個預訂項目每秒的運算單元用量:
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;
結果會類似如下:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | 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 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+