RESERVATIONS_TIMELINE 檢視畫面

INFORMATION_SCHEMA.RESERVATIONS_TIMELINE 檢視畫面會每分鐘顯示每個預留項目管理專案的預留資料結構近乎即時的時間切片。

結構定義

查詢 INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_* 檢視表時,查詢結果會包含過去 180 天內每分鐘的每個 BigQuery 預留資料列,以及 180 天前發生的事件每分鐘的預留資料列變更。每個時段都會在整分鐘的間隔開始,並持續一分鐘。

INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT 檢視表具有下列結構定義:

資料欄名稱 資料類型
autoscale STRUCT

保留項目的自動調整容量相關資訊。欄位包括:

  • current_slots:自動調度資源功能新增至保留項目的時段數量。
  • max_slots:可透過自動調度資源新增至預留項目的運算單元數量上限。
edition STRING 與此預訂相關聯的版本。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。
ignore_idle_slots BOOL 如果已啟用運算單元共用功能,則為 False;否則為 True。
labels RECORD 與預訂相關聯的標籤陣列。
period_start TIMESTAMP 這段一分鐘的開始時間。
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
  res.period_start,
  SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes,
  ANY_VALUE(res.slots_assigned) AS rough_slots_assigned,
  ANY_VALUE(res.slots_max_assigned) AS rough_slots_max_assigned
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs
JOIN
  `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res
  ON
    TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start
    AND jobs.reservation_id = res.reservation_id
WHERE
  jobs.job_creation_time
    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_minutes | rough_slots_assigned| rough_slots_max_assigned|
+-----------------------+---------------------+---------------------+-------------------------+
|2021-06-08 21:33:00 UTC|       100.000       |         100         |           100           |
|2021-06-08 21:32:00 UTC|        96.753       |         100         |           100           |
|2021-06-08 21:31:00 UTC|        41.668       |         100         |           100           |
+-----------------------+---------------------+---------------------+-------------------------+

範例:預留項目的運算單元用量

以下範例顯示過去 1 天內每個保留項目每分鐘的運算單元用量:

SELECT
  res.period_start,
  res.reservation_id,
  SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes,
  ANY_VALUE(res.slots_assigned) AS rough_slots_assigned,
  ANY_VALUE(res.slots_max_assigned) AS rough_slots_max_assigned,
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs
JOIN
  `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res
  ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start
     AND jobs.reservation_id = res.reservation_id
WHERE
  jobs.job_creation_time
  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_minutes | rough_slots_assigned | rough_slots_max_assigned |
+-----------------------+----------------+---------------------+----------------------+--------------------------+
|2021-06-08 21:33:00 UTC|     prod01     |       100.000       |             100      |              100         |
|2021-06-08 21:33:00 UTC|     prod02     |       177.201       |             200      |              500         |
|2021-06-08 21:32:00 UTC|     prod01     |        96.753       |             100      |              100         |
|2021-06-08 21:32:00 UTC|     prod02     |       182.329       |             200      |              500         |
+-----------------------+----------------+---------------------+----------------------+--------------------------+