JOBS_TIMELINE_BY_FOLDER ビュー
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
ビューは、現在のプロジェクトの親フォルダで送信されたすべてのジョブ(その下のサブフォルダのジョブを含む)のタイムスライスごとのニア リアルタイムの BigQuery メタデータを含みます。このビューには、実行中のジョブと完了したジョブの両方が表示されます。
必要な権限
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
ビューをクエリするには、親フォルダに対する bigquery.jobs.listAll
Identity and Access Management(IAM)権限が必要です。 次に示す各 IAM 事前定義ロールには、必要な権限が含まれています。
- フォルダ管理者
- BigQuery 管理者
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。
スキーマ
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
ビューに対してクエリを実行すると、クエリ結果にすべての BigQuery ジョブについて 1 秒ごとの実行結果を示す行が 1 行ずつ表示されます。各期間は整数秒の時点で開始し、厳密に 1 秒間継続します。
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
period_start |
TIMESTAMP |
この期間の開始時間。 |
period_slot_ms |
INTEGER |
この期間に使用したスロットのミリ秒数。 |
period_shuffle_ram_usage_ratio |
FLOAT |
選択した期間のシャッフル使用率。 |
project_id |
STRING |
(クラスタリング列)プロジェクトの ID。 |
project_number |
INTEGER |
プロジェクトの番号。 |
folder_numbers |
REPEATED INTEGER |
プロジェクトを含むフォルダの番号 ID。プロジェクトを直接含むフォルダから始まり、子フォルダを含むフォルダというように続きます。たとえば、「folder_numbers」が「[1, 2, 3]」の場合、フォルダ「1」には直接プロジェクトが含まれ、フォルダ「2」には「1」が含まれ、フォルダ「3」には「2」が含まれます。 |
user_email |
STRING |
(クラスタリング列)ジョブを実行したユーザーのメールアドレスまたはサービス アカウント。 |
job_id |
STRING |
ジョブの ID。例: bquxjob_1234 |
job_type |
STRING |
ジョブのタイプ。QUERY 、LOAD 、EXTRACT 、COPY 、または null のいずれかです。ジョブタイプ null は、スクリプト ジョブ ステートメントの評価やマテリアライズド ビューの更新などの内部ジョブを示します。 |
statement_type |
STRING |
クエリ ステートメントのタイプ(有効な場合)。例: SELECT 、INSERT 、UPDATE 、または DELETE 。 |
job_creation_time |
TIMESTAMP |
(パーティショニング列)このジョブの作成時間。パーティショニングは、このタイムスタンプの UTC 時間に基づきます。 |
job_start_time |
TIMESTAMP |
このジョブの開始時間。 |
job_end_time |
TIMESTAMP |
このジョブの終了時間。 |
state |
STRING |
この期間の終了時点におけるジョブの実行状態。有効な状態には PENDING 、RUNNING 、DONE があります。 |
reservation_id |
STRING |
この期間の終了時点でこのジョブに割り当てられているメイン予約の名前(該当する場合)。 |
total_bytes_processed |
INTEGER |
ジョブによって処理された合計バイト数。 |
error_result |
RECORD |
ErrorProto.
としてのエラー(ある場合)の詳細。 |
cache_hit |
BOOLEAN |
このジョブのクエリ結果がキャッシュから取得されたかどうか。 |
period_estimated_runnable_units |
INTEGER |
この期間にすぐにスケジュール設定できる作業単位。予約内の他のクエリで追加のスロットが必要ない場合は、これらの作業単位でスロットを追加することでクエリが高速化されます。 |
データの保持
このビューには、現在実行中のジョブと過去 180 日間のジョブの履歴が含まれます。
スコープと構文
このビューに対するクエリでは、リージョン修飾子を指定する必要があります。リージョン修飾子を指定しない場合、メタデータはすべてのリージョンから取得されます。次の表に、このビューのリージョン スコープを示します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER |
プロジェクト レベル | REGION |
- 省略可:
PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。 REGION
: 任意のデータセット リージョン名。例:region-us
例
以降の例で、INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
ビューに対してクエリを実行する方法を説明します。
一意のジョブの数を取得する
次のクエリは、指定されたプロジェクトのフォルダで 1 分あたりに実行される一意のジョブの数を表示します。
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
次のような結果になります。
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
使用されるスロット時間を計算する
次のクエリは、指定されたプロジェクトのフォルダで 1 分あたりに使用されるスロット時間を表示します。
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
次のような結果になります。
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+