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

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

  • current_slots:自動調度資源功能為預訂新增的時段數量。
  • max_slots:自動調度資源可為預留項目新增的運算單元數量上限。
edition STRING 與這項預訂相關聯的版本。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。
ignore_idle_slots BOOL 如果已啟用運算單元共用功能,則為 False,否則為 True。
labels RECORD 與預訂項目相關聯的標籤陣列。
period_start TIMESTAMP 這個一分鐘期間的開始時間。
per_second_details STRUCT

包含每秒的預訂容量和使用量資訊。欄位包括:

  • start_time:秒的確切時間戳記。
  • autoscale_current_slots:自動調度資源功能在這個時間點為預留項目新增的運算單元數量。
  • autoscale_max_slots:自動調度資源功能在這個時間點可為預留項目新增的運算單元數量上限。
  • slots_assigned:這個保留項目目前分配到的運算單元數量。這等於預留項目的基準運算單元數量。
  • slots_max_assigned:這個預留項目的運算單元容量上限,包括此秒的運算單元共用量。如果 ignore_idle_slots 為 true,這個欄位與 slots_assigned 相同。否則,slots_max_assigned 欄位會顯示管理專案中所有容量使用承諾的運算單元總數。

如果在這 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             |
+-----------------------+----------------+---------------------+--------------------------+------------------------------+