RESERVATIONS_TIMELINE ビュー
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
ビューには、各予約管理プロジェクトの予約メタデータの 1 分ごとのニア リアルタイム タイムスライスが表示されます。スロットの使用状況とスロット容量を比較するには、予約タイムライン ビューを使用して、予約情報とジョブのタイムラインを組み合わせることができます。
スキーマ
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
ビューに対してクエリを実行すると、クエリ結果として、過去 180 日間に行われたすべての BigQuery の分単位の行が表示され、180 日より前に行われた BigQuery 予約では分単位の行に予約変更が示されます。各期間は整数分の時点で開始し、厳密に 1 分間継続します。
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
period_start |
TIMESTAMP |
この 1 分間の開始時刻。 |
project_id |
STRING |
予約管理プロジェクトの ID。 |
project_number |
INTEGER |
プロジェクトの番号。 |
reservation_name |
STRING |
予約の名前。 |
ignore_idle_slots |
BOOL |
スロット共有が有効になっている場合は false、それ以外の場合は true。 |
slots_assigned |
INTEGER |
この予約に割り当てられているスロットの数。 |
slots_max_assigned |
INTEGER |
この予約の最大スロット容量(スロット共有を含む)。ignore_idle_slots が true の場合は slots_assigned と同じです。それ以外の場合は、管理プロジェクトのすべての容量コミットメントのスロットの合計数です。 |
autoscale |
STRUCT |
予約の自動スケーリング容量に関する情報。次のようなフィールドが含まれます。
|
reservation_id |
STRING |
jobs_timeline テーブルと結合します。形式は、project_id:location.reservation_name です。 |
スコープと構文
このビューに対するクエリでは、リージョン修飾子を指定する必要があります。リージョン修飾子を指定しない場合、メタデータはすべてのリージョンで取得されます。次の表に、このビューのリージョン スコープとリソース スコープを示します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] |
プロジェクト レベル | REGION |
- 省略可:
PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
REGION
: 任意のデータセット リージョン名。
例: region-us
。
例
例: 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 res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS 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 | slots_assigned| 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 slots_assigned, ANY_VALUE(res.slots_max_assigned) AS 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 | slot_assigned | 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 | +-----------------------+----------------+---------------------+---------------+--------------------+