RESERVATIONS_TIMELINE ビュー
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
ビューには、各予約管理プロジェクトの予約メタデータの 1 分ごとのタイムスライスがリアルタイムで表示されます。また、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 日より前に行われた BigQuery 予約では分単位の行に予約変更が示されます。各期間は整数分の時点で開始し、厳密に 1 分間継続します。
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
autoscale |
STRUCT |
予約の自動スケーリング容量に関する情報が含まれます。次のようなフィールドが含まれます。
|
edition |
STRING |
この予約に関連付けられているエディション。エディションの詳細については、BigQuery エディションの概要をご覧ください。 |
ignore_idle_slots |
BOOL |
スロット共有が有効になっている場合は false、それ以外の場合は true。 |
labels |
RECORD |
予約に関連付けられているラベルの配列。 |
period_start |
TIMESTAMP |
この 1 分間の開始時刻。 |
per_second_details |
STRUCT |
予約容量と使用状況に関する情報が毎秒含まれています。次のようなフィールドが含まれます。
この 1 分間に自動スケーリングまたは予約の変更があった場合、配列には 60 行が入力されます。ただし、この 1 分間に変更されない非自動スケーリング予約の場合、配列は空になります。これは、同じ数値が 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`
例
例: 1 秒あたりの自動スケーリングを確認する
次の例は、すべてのジョブで YOUR_RESERVATION_ID
の 1 秒あたりの自動スケーリングを示しています。
SELECT s.start_time, s.autoscale_current_slots FROM `region-us.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE` m JOIN m.per_second_details s WHERE period_start BETWEEN '2025-09-28' AND '2025-09-29' AND reservation_id = 'YOUR_RESERVATION_ID' ORDER BY period_start, s.start_time
次のような結果になります。
+---------------------+-------------------------+ | start_time | autoscale_current_slots | +---------------------+-------------------------+ | 2025-09-28 00:00:00 | 1600 | | 2025-09-28 00:00:01 | 1600 | | 2025-09-28 00:00:02 | 1600 | | 2025-09-28 00:00:03 | 1600 | | 2025-09-28 00:00:04 | 1600 | +---------------------+-------------------------+
例: 1 秒あたりのスロットの合計使用量を確認する
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID を追加します。
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
次の例は、すべてのジョブで YOUR_RESERVATION_ID
に割り当てられたプロジェクトの 1 秒あたりのスロットの使用状況を示しています。
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 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+