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 この期間に使用したスロットのミリ秒数。
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 ジョブのタイプ。QUERYLOADEXTRACTCOPY、または null のいずれかです。ジョブタイプ null は、スクリプト ジョブ ステートメントの評価やマテリアライズド ビューの更新などの内部ジョブを示します。
statement_type STRING クエリ ステートメントのタイプ(有効な場合)。例: SELECTINSERTUPDATE、または DELETE
priority STRING このジョブの優先度。有効な値として、INTERACTIVEBATCH などがあります。
parent_job_id STRING 親ジョブの ID(存在する場合)。
job_creation_time TIMESTAMP (パーティショニング列)このジョブの作成時間。パーティショニングは、このタイムスタンプの UTC 時間に基づきます。
job_start_time TIMESTAMP このジョブの開始時間。
job_end_time TIMESTAMP このジョブの終了時間。
state STRING この期間の終了時点におけるジョブの実行状態。有効な状態には PENDINGRUNNINGDONE があります。
reservation_id STRING この期間の終了時点でこのジョブに割り当てられているメイン予約の名前(該当する場合)。
edition STRING このジョブに割り当てられた予約に関連付けられているエディション。エディションの詳細については、BigQuery エディションの概要をご覧ください。
total_bytes_billed INTEGER オンデマンド料金を使用するようにプロジェクトが構成されている場合、このフィールドにはジョブに対して課金された合計バイト数が含まれます。プロジェクトが定額料金を使用するように構成されている場合、バイト数は課金されず、このフィールドは情報提供のみを目的としています。
total_bytes_processed INTEGER ジョブによって処理された合計バイト数。
error_result RECORD ErrorProto. としてのエラー(ある場合)の詳細。
cache_hit BOOLEAN このジョブのクエリ結果がキャッシュから取得されたかどうか。
period_shuffle_ram_usage_ratio FLOAT 選択した期間のシャッフル使用率。
period_estimated_runnable_units INTEGER この期間にすぐにスケジュール設定できる作業単位。予約内の他のクエリで追加のスロットが必要ない場合は、これらの作業単位でスロットを追加することでクエリが高速化されます。
transaction_id STRING このジョブが実行されたトランザクションの ID(存在する場合)。(プレビュー

データの保持

このビューには、現在実行中のジョブと過去 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                           |
    +---------------------------+---------------------------------+