次の方法で共有


ジョブ システム テーブル リファレンス

Note

lakeflow スキーマは以前は workflowという名称でした。 両方のスキーマの内容は同じです。

この記事は、アカウントのジョブ アクティビティを記録する lakeflow システム テーブルのリファレンスです。 これらのテーブルには、同じクラウド リージョン内にデプロイされたアカウント内のすべてのワークスペースのレコードが含まれます。 別のリージョンのレコードを表示するには、そのリージョンにデプロイされているワークスペースのテーブルを表示する必要があります。

Requirements

  • これらのシステム テーブルにアクセスするには、ユーザーは次のいずれかを行う必要があります。

利用可能な仕事のテーブル

ジョブ関連のすべてのシステム テーブルは、 system.lakeflow スキーマに格納されます。 現在、このスキーマによって、次の 4 つのテーブルがホストされています。

Table Description ストリーミングをサポート 無料の保持期間 グローバルデータまたは地域データを含む
jobs (パブリック プレビュー) アカウントで作成されたすべてのジョブを追跡します Yes 365 日 Regional
job_tasks (パブリック プレビュー) アカウントで実行されるすべてのジョブ タスクを追跡します Yes 365 日 Regional
job_run_timeline (パブリック プレビュー) ジョブの実行と関連メタデータを追跡します Yes 365 日 Regional
job_task_run_timeline (パブリック プレビュー) ジョブ タスクの実行と関連メタデータを追跡します Yes 365 日 Regional
パイプライン (パブリック プレビュー) アカウントで作成されたすべてのパイプラインを追跡します Yes 365 日 Regional
パイプライン更新タイムライン (パブリック プレビュー) パイプラインの更新と関連メタデータを追跡します Yes 365 日 Regional

詳細なスキーマ リファレンス

次のセクションでは、ジョブ関連の各システム テーブルのスキーマ参照について説明します。

ジョブテーブルスキーマ

jobs テーブルは、緩やかに変化するディメンション テーブル (SCD2) です。 行が変更されると、新しい行が出力され、前の行が論理的に置き換えられます。

テーブル パス: system.lakeflow.jobs

列名 データの種類 Description Notes
account_id 文字列 このジョブが属するアカウントの ID
workspace_id 文字列 このジョブが属するワークスペースの ID
job_id 文字列 ジョブの一意の ID。 1つのワークスペース内でのみ一意である
name 文字列 ユーザーが指定したジョブ名
description 文字列 ユーザーが指定したジョブの説明 カスタマー マネージド キーが構成されている場合、このフィールドは空です。
creator_id 文字列 ジョブを作成したプリンシパルの ID
tags マップ このジョブに関連付けられているユーザー指定のカスタム タグ
change_time timestamp ジョブを前回変更した時刻です +00:00 (UTC) として記録されたタイムゾーン
delete_time timestamp ジョブがユーザーによって削除された時刻 +00:00 (UTC) として記録されたタイムゾーン
run_as 文字列 パイプラインの更新に使用されるアクセス許可を持つユーザーまたはサービス プリンシパルの ID
trigger 構造体 ジョブのトリガー設定 2025 年 12 月上旬より前に出力された行には設定されません
trigger_type 文字列 ジョブのトリガーの種類 2025 年 12 月上旬より前に出力された行には設定されません
run_as_user_name 文字列 ジョブの実行に使用されるアクセス許可を持つユーザーまたはサービス プリンシパルの ID の電子メール 2025 年 12 月上旬より前に出力された行には設定されません
creator_user_name 文字列 ユーザーの電子メール、またはジョブを作成したサービス プリンシパルの ID 2025 年 12 月上旬より前に出力された行には設定されません
paused ブーリアン ジョブが一時停止されているかどうかを示します 2025 年 12 月上旬より前に出力された行には設定されません
timeout_seconds long ジョブのタイムアウト時間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
health_rules アレイ このジョブに対して定義されているヘルスルールの一式 2025 年 12 月上旬より前に出力された行には設定されません
deployment 構造体 外部ソースによって管理されるジョブのデプロイ情報 2025 年 12 月上旬より前に出力された行には設定されません
create_time timestamp このジョブが作成された時刻。 タイムゾーンは +00:00 (UTC) として記録されます。 2025 年 12 月上旬より前に出力された行には設定されません

クエリの例

-- Get the most recent version of a job
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.jobs QUALIFY rn=1

ジョブのタスク テーブル スキーマ

ジョブ タスク テーブルは、緩やかに変化するディメンション テーブル (SCD2) です。 行が変更されると、新しい行が出力され、前の行が論理的に置き換えられます。

テーブル パス: system.lakeflow.job_tasks

列名 データの種類 Description Notes
account_id 文字列 このジョブが属するアカウントの ID
workspace_id 文字列 このジョブが属するワークスペースの ID
job_id 文字列 ジョブの一意の ID。 1つのワークスペース内でのみ一意である
task_key 文字列 ジョブ内のタスクの参照キー 1つのジョブ内でのみユニーク
depends_on_keys アレイ このタスクのすべてのアップストリーム依存関係のタスク キー
change_time timestamp タスクが最後に変更された時刻 +00:00 (UTC) として記録されたタイムゾーン
delete_time timestamp ユーザーがタスクを削除した時刻 +00:00 (UTC) として記録されたタイムゾーン
timeout_seconds long タスクのタイムアウト時間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
health_rules アレイ このジョブ タスクに対して定義された健康状態ルールのセット 2025 年 12 月上旬より前に出力された行には設定されません

クエリの例

-- Get the most recent version of a job task
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.job_tasks QUALIFY rn=1

ジョブ実行のタイムライン テーブル スキーマ

ジョブ実行タイムライン テーブルは変更不可であり、作成時に完了します。

テーブル パス: system.lakeflow.job_run_timeline

列名 データの種類 Description Notes
account_id 文字列 このジョブが属するアカウントの ID
workspace_id 文字列 このジョブが属するワークスペースの ID
job_id 文字列 ジョブの一意の ID。 このキーは、1 つのワークスペース内でのみ一意です
run_id 文字列 ジョブ実行の ID。
period_start_time timestamp 実行の開始時刻または期間 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
period_end_time timestamp 実行または期間の終了日時 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
trigger_type 文字列 実行を起動できるトリガーの種類 使用可能な値については、「トリガーの種類の値」を参照してください。
run_type 文字列 ジョブ実行の種類 参照可能な値については、「実行タイプの値」をご覧ください。
run_name 文字列 このジョブ実行に関連付けられているユーザー指定の実行名
compute_ids アレイ 親ジョブ実行のジョブ コンピューティング ID を含む配列 WORKFLOW_RUN実行の種類で使用されるジョブ クラスターを識別するために使用します。 その他のコンピューティング情報については、 job_task_run_timeline の表を参照してください。
result_state 文字列 ジョブ実行の結果 複数の行に分割された 1 時間以上の実行の場合、この列は実行の終了を表す行にのみ設定されます。 指定できる値については、「 結果の状態の値」を参照してください。
termination_code 文字列 ジョブ実行の終了コード 複数の行に分割された 1 時間以上の実行の場合、この列は実行の終了を表す行にのみ設定されます。 使用可能な値については、「終了コード値」を参照してください。
job_parameters マップ ジョブ実行で使用されるジョブ レベルのパラメーター job_parametersの値のみを格納します。 非推奨のパラメーター フィールド (notebook_paramspython_paramspython_named_paramsspark_submit_params、および sql_params) は含まれません。
source_task_run_id 文字列 ソース タスク実行の ID。 この列を使用して、このジョブの実行をトリガーしたタスクの実行を特定します。 2025 年 12 月上旬より前に出力された行には設定されません
root_task_run_id 文字列 ルート タスク実行の ID。 この列を使用して、このジョブの実行をトリガーしたタスクの実行を特定します。 2025 年 12 月上旬より前に出力された行には設定されません
compute アレイ ジョブの実行で使用されるコンピューティング リソースの詳細 2025 年 12 月上旬より前に出力された行には設定されません
termination_type 文字列 ジョブ実行の終了の種類 2025 年 12 月上旬より前に出力された行には設定されません
setup_duration_seconds long ジョブ実行のセットアップ フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
queue_duration_seconds long ジョブの実行に対してキューに費やされた時間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
run_duration_seconds long ジョブ実行の合計時間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
cleanup_duration_seconds long ジョブ実行のクリーンアップ フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
execution_duration_seconds long ジョブ実行の実行フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません

クエリの例

-- This query gets the daily job count for a workspace for the last 7 days:
SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL

-- This query returns the daily job count for a workspace for the last 7 days, distributed by the outcome of the job run.
SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  result_state,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
  AND result_state IS NOT NULL
GROUP BY ALL

-- This query returns the average time of job runs, measured in seconds. The records are organized by job. A top 90 and a 95 percentile column show the average lengths of the job's longest runs.
with job_run_duration as (
    SELECT
        workspace_id,
        job_id,
        run_id,
        CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
    FROM
        system.lakeflow.job_run_timeline
    WHERE
      period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.job_id,
    COUNT(DISTINCT t1.run_id) as runs,
    MEAN(t1.duration) as mean_seconds,
    AVG(t1.duration) as avg_seconds,
    PERCENTILE(t1.duration, 0.9) as p90_seconds,
    PERCENTILE(t1.duration, 0.95) as p95_seconds
FROM
    job_run_duration t1
GROUP BY ALL
ORDER BY mean_seconds DESC
LIMIT 100

-- This query provides a historical runtime for a specific job based on the `run_name` parameter. For the query to work, you must set the `run_name`.
SELECT
  workspace_id,
  run_id,
  SUM(period_end_time - period_start_time) as run_time
FROM system.lakeflow.job_run_timeline
WHERE
  run_type="SUBMIT_RUN"
  AND run_name = :run_name
  AND period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
GROUP BY ALL

-- This query collects a list of retried job runs with the number of retries for each run.
with repaired_runs as (
    SELECT
    workspace_id, job_id, run_id, COUNT(*) - 1 as retries_count
    FROM system.lakeflow.job_run_timeline
    WHERE result_state IS NOT NULL
    GROUP BY ALL
    HAVING retries_count > 0
    )
SELECT
    *
FROM repaired_runs
ORDER BY retries_count DESC
    LIMIT 10;

ジョブ タスク実行のタイムライン テーブル スキーマ

ジョブタスク実行タイムライン テーブルは変更不可であり、作成時に完了します。

テーブル パス: system.lakeflow.job_task_run_timeline

列名 データの種類 Description Notes
account_id 文字列 このジョブが属するアカウントの ID
workspace_id 文字列 このジョブが属するワークスペースの ID
job_id 文字列 ジョブの一意の ID。 1つのワークスペース内でのみ一意である
run_id 文字列 タスク実行の ID
job_run_id 文字列 ジョブ実行の ID。
parent_run_id 文字列 親の実行の ID。
period_start_time timestamp タスクまたは期間の開始時刻 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
period_end_time timestamp タスクまたは期間の終了時刻 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
task_key 文字列 ジョブ内のタスクの参照キー このキーは、1 つのジョブ内でのみ一意です
compute_ids アレイ compute_ids配列には、ジョブ タスクによって使用されるジョブ クラスター、対話型クラスター、および SQL ウェアハウスの ID が含まれています
result_state 文字列 ジョブタスクの実行結果 複数の行に分割された 1 時間以上のタスク実行の場合、この列は実行の終了を表す行にのみ設定されます。 指定できる値については、「 結果の状態の値」を参照してください。
termination_code 文字列 タスク実行の終了コード 複数の行に分割された 1 時間以上のタスク実行の場合、この列は実行の終了を表す行にのみ設定されます。 使用可能な値については、「終了コード値」を参照してください。
compute アレイ ジョブ タスクの実行で使用されるコンピューティング リソースの詳細 2025 年 12 月上旬より前に出力された行には設定されません
termination_type 文字列 ジョブタスクの実行終了方法 2025 年 12 月上旬より前に出力された行には設定されません
task_parameters マップ ジョブ タスクの実行で使用されるタスク レベルのパラメーター 2025 年 12 月上旬より前に出力された行には設定されません
setup_duration_seconds long タスク実行のセットアップ フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
cleanup_duration_seconds long タスク実行のクリーンアップ フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません
execution_duration_seconds long タスク実行の実行フェーズの期間 (秒単位) 2025 年 12 月上旬より前に出力された行には設定されません

Pipelines テーブル スキーマ

パイプライン テーブルは、緩やかに変化するディメンション テーブル (SCD2) です。 行が変更されると、新しい行が出力され、前の行が論理的に置き換えられます。

テーブル パス: system.lakeflow.pipelines

列名 データの種類 Description Notes
account_id 文字列 このパイプラインが属するアカウントの ID
workspace_id 文字列 このパイプラインが属するワークスペースの ID
pipeline_id 文字列 パイプラインの ID 1つのワークスペース内でのみ一意である
pipeline_type 文字列 パイプラインの種類 使用可能な値については、「パイプラインの型の値」を参照してください。
name 文字列 パイプラインのユーザー指定の名前
created_by 文字列 ユーザーの電子メール、またはパイプラインを作成したサービス プリンシパルの ID
run_as 文字列 パイプラインを実行するためにアクセス許可が使用されるユーザーのメールまたはサービス プリンシパルのID
tags マップ このジョブに関連付けられているユーザー指定のカスタム タグ
settings 構造体 パイプラインの設定 パイプラインの設定を参照してください
configuration マップ パイプラインのユーザー指定の構成
change_time timestamp パイプラインが最後に変更された時刻 +00:00 (UTC) として記録されたタイムゾーン
delete_time timestamp パイプラインがユーザーによって削除された時刻 +00:00 (UTC) として記録されたタイムゾーン
create_time timestamp パイプラインがユーザーによって作成された時刻。 タイムゾーンは +00:00 (UTC) として記録されます。 2025 年 12 月上旬より前に出力された行には設定されません

クエリの例

-- Get the most recent version of a pipeline
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, pipeline_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.pipelines QUALIFY rn=1

-- Enrich billing logs with pipeline metadata
with latest_pipelines AS (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, pipeline_id ORDER BY change_time DESC) as rn
  FROM
    system.lakeflow.pipelines QUALIFY rn=1
)
SELECT
  usage.*,
  pipelines.*
FROM system.billing.usage
LEFT JOIN latest_pipelines
  ON (usage.workspace_id = pipelines.workspace_id
    AND usage.usage_metadata.dlt_pipeline_id = pipelines.pipeline_id)
WHERE
  usage.usage_metadata.dlt_pipeline_id IS NOT NULL

パイプライン更新タイムラインのテーブルスキーマ

パイプライン更新タイムライン テーブルは変更不可であり、作成時に完了します。

テーブル パス: system.lakeflow.pipeline_update_timeline

列名 データの種類 Description Notes
account_id 文字列 このパイプラインが属するアカウントの ID
workspace_id 文字列 このパイプラインが属するワークスペースの ID
pipeline_id 文字列 パイプラインの ID 1つのワークスペース内でのみ一意である
update_id 文字列 パイプライン更新プログラムの ID 1つのワークスペース内でのみ一意である
update_type 文字列 パイプラインの更新の種類 使用可能な値については、「パイプラインの更新の種類の値」を参照してください。
request_id 文字列 要求の ID。 更新を再試行または再起動する必要があった回数を理解するのに役立ちます
run_as_user_name 文字列 パイプラインの更新にアクセス許可が使用されているユーザーの電子メールまたはサービス プリンシパルの ID
trigger_type 文字列 この更新プログラムのトリガーとなった内容 使用可能な値については、「パイプライン トリガーの種類の値」を参照してください。
trigger_details 構造体 パイプラインのトリガーの詳細 使用可能な値については、「パイプライン トリガーの種類の詳細」を参照してください
result_state 文字列 パイプライン更新の結果 複数の行に分割された 1 時間以上にわたって実行されている更新プログラムの場合、この列は更新の終了を表す行にのみ設定されます。 指定できる値については、「 パイプラインの結果リファレンス」を参照してください
compute 構造体 パイプラインの更新で使用されるコンピューティング リソースの詳細
period_start_time timestamp パイプラインの更新または時間帯の開始時刻。 値は UTC タイムスタンプとして格納されます。 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
period_end_time timestamp パイプライン更新の終了時刻またはある時間帯の終了時刻。 値は UTC タイムスタンプとして格納されます。 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 Databricks で長時間の実行を1時間ごとの間隔に分割する詳細については、タイムラインのスライスロジックを参照してください。
refresh_selection アレイ fullRefresh なしで更新するテーブルの一覧
full_refresh_selection アレイ fullRefresh で更新するテーブルの一覧
reset_checkpoint_selection アレイ チェックポイントをクリアするストリーミング フローの一覧

クエリの例

-- This query gets the daily pipeline update count for a workspace for the last 7 days:
SELECT
    workspace_id,
    COUNT(DISTINCT update_id) as update_count,
    to_date(period_start_time) as date
FROM system.lakeflow.pipeline_update_timeline
WHERE
    period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL

-- This query returns the daily pipeline update count for a workspace for the last 7 days, distributed by the outcome of the pipeline update.
SELECT
    workspace_id,
    COUNT(DISTINCT update_id) as update_count,
    result_state,
    to_date(period_start_time) as date
FROM system.lakeflow.pipeline_update_timeline
WHERE
    period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
  AND result_state IS NOT NULL
GROUP BY ALL

-- This query returns the average time of pipeline updates, measured in seconds. The records are organized by pipeline. A top 90 and a 95 percentile column show the average lengths of the pipeline's longest updates.
with pipeline_update_duration as (
    SELECT
      workspace_id,
      pipeline_id,
      update_id,
      CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
    FROM
        system.lakeflow.pipeline_update_timeline
    WHERE
        period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.pipeline_id,
    COUNT(DISTINCT t1.update_id) as update_count,
    MEAN(t1.duration) as mean_seconds,
    AVG(t1.duration) as avg_seconds,
    PERCENTILE(t1.duration, 0.9) as p90_seconds,
    PERCENTILE(t1.duration, 0.95) as p95_seconds
FROM
    pipeline_update_duration t1
GROUP BY ALL
ORDER BY mean_seconds DESC
    LIMIT 100

一般的な結合パターン

次のセクションでは、ジョブ システム テーブルでよく使用される結合パターンを強調表示するサンプル クエリを示します。

ジョブテーブルとジョブ実行タイムラインテーブルを結合する

ジョブ名を使用してジョブ実行をエンリッチする

with jobs as (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
    FROM system.lakeflow.jobs QUALIFY rn=1
)
SELECT
    job_run_timeline.*
    jobs.name
FROM system.lakeflow.job_run_timeline
    LEFT JOIN jobs USING (workspace_id, job_id)

ジョブ実行タイムラインと使用状況テーブルを結合する

ジョブ実行メタデータを使用して各ログをエンリッチする

次のクエリは、クラシック ジョブとサーバーレス ジョブの両方のジョブ実行メタデータを使用して課金ログを強化します。

with aggregated_job_runs AS (
  SELECT
    j.workspace_id,
    COALESCE(t.job_id, j.job_id) as origin_job_id,
    COALESCE(t.job_run_id, j.run_id) AS origin_job_run_id,
    j.job_id as billing_job_id,
    j.run_id as billing_run_id,
    CASE WHEN j.root_task_run_id IS NOT NULL THEN true ELSE false END AS is_workflow_run
  FROM
    system.lakeflow.job_run_timeline j
  LEFT JOIN
    system.lakeflow.job_task_run_timeline t
  ON
    j.workspace_id = t.workspace_id
    AND j.root_task_run_id = t.run_id
  WHERE j.period_start_time >= CURRENT_DATE() - INTERVAL 7 DAYS
  GROUP BY ALL
),
billing_logs_enriched AS (
  SELECT
      t2.origin_job_id,
      t2.origin_job_run_id,
      t1.*
  FROM system.billing.usage t1
      INNER JOIN aggregated_job_runs t2
          ON t1.workspace_id = t2.workspace_id
              AND t1.usage_metadata.job_id = t2.billing_job_id
              AND t1.usage_metadata.job_run_id = t2.billing_run_id
  WHERE
      billing_origin_product="JOBS" AND usage_date >= CURRENT_DATE() - INTERVAL 7 DAYS
)
SELECT
  workspace_id,
  origin_job_id AS job_id,
  origin_job_run_id AS run_id,
  sku_name,
  SUM(usage_quantity) as total_usage_quantity,
  SUM(CASE WHEN usage_metadata.job_run_id != origin_job_run_id THEN usage_quantity ELSE 0 END) AS workflow_run_usage_quantity,
  COUNT(DISTINCT usage_metadata.job_run_id) - 1 AS workflow_runs
FROM billing_logs_enriched
GROUP BY ALL

ジョブ実行あたりのコストを計算する

このクエリは、billing.usage システム テーブルと結合して、ジョブの実行あたりのコストを計算します。

with jobs_usage AS (
  SELECT
    *,
    usage_metadata.job_id,
    usage_metadata.job_run_id as run_id,
    identity_metadata.run_as as run_as
  FROM system.billing.usage
  WHERE billing_origin_product="JOBS"
),
jobs_usage_with_usd AS (
  SELECT
    jobs_usage.*,
    usage_quantity * pricing.default as usage_usd
  FROM jobs_usage
    LEFT JOIN system.billing.list_prices pricing ON
      jobs_usage.sku_name = pricing.sku_name
      AND pricing.price_start_time <= jobs_usage.usage_start_time
      AND (pricing.price_end_time >= jobs_usage.usage_start_time OR pricing.price_end_time IS NULL)
      AND pricing.currency_code="USD"
),
jobs_usage_aggregated AS (
  SELECT
    workspace_id,
    job_id,
    run_id,
    FIRST(run_as, TRUE) as run_as,
    sku_name,
    SUM(usage_usd) as usage_usd,
    SUM(usage_quantity) as usage_quantity
  FROM jobs_usage_with_usd
  GROUP BY ALL
)
SELECT
  t1.*,
  MIN(period_start_time) as run_start_time,
  MAX(period_end_time) as run_end_time,
  FIRST(result_state, TRUE) as result_state
FROM jobs_usage_aggregated t1
  LEFT JOIN system.lakeflow.job_run_timeline t2 USING (workspace_id, job_id, run_id)
GROUP BY ALL
ORDER BY usage_usd DESC
LIMIT 100

SUBMIT_RUN ジョブの使用状況ログを取得する

SELECT
  *
FROM system.billing.usage
WHERE
  EXISTS (
      SELECT 1
      FROM system.lakeflow.job_run_timeline
      WHERE
        job_run_timeline.job_id = usage_metadata.job_id
        AND run_name = :run_name
        AND workspace_id = :workspace_id
  )

ジョブ タスクの実行タイムラインとクラスター テーブルを結合する

クラスター メタデータを使用してジョブ タスクの実行を強化する

with clusters as (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
    FROM system.compute.clusters QUALIFY rn=1
),
exploded_task_runs AS (
  SELECT
    *,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE array_size(compute_ids) > 0
)
SELECT
  *
FROM exploded_task_runs t1
  LEFT JOIN clusters t2
    USING (workspace_id, cluster_id)

汎用コンピューティングで実行されているジョブを検索する

このクエリは、 compute.clusters システム テーブルと結合し、Jobs Compute ではなく All-Purpose Compute で実行されている最近のジョブを返します。

with clusters AS (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
  FROM system.compute.clusters
  WHERE cluster_source="UI" OR cluster_source="API"
  QUALIFY rn=1
),
job_tasks_exploded AS (
  SELECT
    workspace_id,
    job_id,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE period_start_time >= CURRENT_DATE() - INTERVAL 30 DAY
  GROUP BY ALL
),
all_purpose_cluster_jobs AS (
  SELECT
    t1.*,
    t2.cluster_name,
    t2.owned_by,
    t2.dbr_version
  FROM job_tasks_exploded t1
    INNER JOIN clusters t2 USING (workspace_id, cluster_id)
)
SELECT * FROM all_purpose_cluster_jobs LIMIT 10;

過去 30 日間に実行されていないジョブを見つける

このクエリは、 lakeflow.jobs テーブルと lakeflow.job_run_timeline システム テーブルを結合して、過去 30 日間実行されていないジョブを返します。

with latest_jobs AS (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
    FROM system.lakeflow.jobs QUALIFY rn=1
),
latest_not_deleted_jobs AS (
    SELECT
        workspace_id,
        job_id,
        name,
        change_time,
        tags
    FROM latest_jobs WHERE delete_time IS NULL
),
last_seen_job_timestamp AS (
    SELECT
        workspace_id,
        job_id,
        MAX(period_start_time) as last_executed_at
    FROM system.lakeflow.job_run_timeline
    WHERE
        run_type="JOB_RUN"
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.job_id,
    t1.name,
    t1.change_time as last_modified_at,
    t2.last_executed_at,
    t1.tags
FROM latest_not_deleted_jobs t1
    LEFT JOIN last_seen_job_timestamp t2
        USING (workspace_id, job_id)
WHERE
    (t2.last_executed_at <= CURRENT_DATE() - INTERVAL 30 DAYS) OR (t2.last_executed_at IS NULL)
ORDER BY last_executed_at ASC

ジョブ監視ダッシュボード

次のダッシュボードでは、システム テーブルを使用して、ジョブと運用の正常性の監視を開始できます。 これには、ジョブ パフォーマンスの追跡、障害の監視、リソース使用率などの一般的なユース ケースが含まれます。

Lakeflow 監視ダッシュボード

Lakeflow 監視ダッシュボード ジョブの概要

ダッシュボードのダウンロードの詳細については、「システム テーブル を使用したジョブ コスト & パフォーマンスの監視」を参照してください。

Troubleshooting

ジョブが lakeflow.jobs テーブルにログに記録されていない

ジョブがシステム テーブルに表示されない場合:

  • 過去 365 日間にジョブが変更されませんでした
    • スキーマに存在するジョブのフィールドを変更して、新しいレコードを出力します。
  • ジョブが別のリージョンで作成されました
  • 最近のジョブ作成(テーブルの遅延)

job_run_timeline テーブルに表示されるジョブが見つかりません

すべてのジョブ実行がどこでも表示されるわけではありません。 JOB_RUN エントリはすべてのジョブ関連テーブルに表示されますが、WORKFLOW_RUN (ノートブック ワークフローの実行) は job_run_timeline にのみ記録され、SUBMIT_RUN (1 回限りの実行) は両方のタイムライン テーブルにのみ記録されます。 これらの実行は、jobsjob_tasksなどの他のジョブ システム テーブルには入力されません。

実行の 各種類 が表示され、アクセス可能な場所の詳細については、以下の実行の種類の表を参照してください。

ジョブ実行が billing.usage テーブルに表示されない

system.billing.usageでは、usage_metadata.job_id は、ジョブ コンピューティングまたはサーバーレス コンピューティングで実行されるジョブに対してのみ設定されます。

さらに、WORKFLOW_RUN ジョブには、usage_metadata.job_idに独自の usage_metadata.job_run_idsystem.billing.usage 属性はありません。 代わりに、コンピューティング使用量は、それらをトリガーした親ノートブックに起因します。 つまり、ノートブックがワークフロー実行を起動すると、すべてのコンピューティング コストが、個別のワークフロー ジョブとしてではなく、親ノートブックの使用状況の下に表示されます。

詳細については、「使用状況メタデータ リファレンス」を参照してください。

汎用コンピューティングで実行されているジョブのコストを計算する

100% の精度では、専用コンピューティングで実行されるジョブの正確なコスト計算はできません。 対話型 (万能) コンピューティングでジョブを実行する場合、ノートブック、SQL クエリ、その他のジョブなどの複数のワークロードは、多くの場合、同じコンピューティング リソースで同時に実行されます。 クラスター リソースは共有されるため、コンピューティング コストと個々のジョブ実行の間に直接 1 対 1 のマッピングはありません。

正確なジョブ コストの追跡のために、Databricks では、専用のジョブ コンピューティングまたはサーバーレス コンピューティングでジョブを実行することをお勧めします。ここで、usage_metadata.job_idusage_metadata.job_run_id により正確なコスト属性が可能になります。

万能コンピューティングを使用する必要がある場合は、次のことができます。

  • system.billing.usageに基づいて、クラスターの全体的な使用状況と usage_metadata.cluster_id のコストを監視します。
  • ジョブ ランタイム メトリックを個別に追跡します。
  • コスト見積もりは、共有リソースが原因で概算されることを検討してください。

コスト属性の詳細については、「使用状況メタデータ リファレンス」を参照してください。

参照値

次のセクションでは、ジョブ関連テーブルの選択列の参照を示します。

タイムライン テーブルのスライス ロジック

period_start_timeテーブルとperiod_end_timeテーブルのjob_run_timeline列とjob_task_run_timeline列には、ジョブ実行またはタスク実行のアクティブな期間が記録されます。

:::warning 重要な変更

2026年1月19日以降、タイムラインテーブルに生成される新しい行では、クロック時刻に揃えたスライスロジックを使用します。 既存の行は変更されません。

スライスは、実行の開始時刻に基づいて 1 時間間隔で作成されます。 たとえば、午後4時47分開始のジョブでは、午後4時47分から5時47分、午後5時47分から6時47分などの時間区切りが作成されます。

スライスはクロック時間の境界に合わせて配置されます。 たとえば、ジョブが午後4時47分に始まると、16時47分から17時まで、17時から18時まで、18時から19時までといったスライスを作成します。 詳細については クロック時間と整列したスライスロジックを参照してください。

:::

各行は、最大 1 時間のランタイムを記録します。 1 時間を超える実行は、複数の行に記録されます。 このスライスにより、実行時間の長いジョブを監視するための時間単位の細分性が確保されます。

Note

実行が開始されない場合は、 period_start_timeperiod_end_time等しい行で表されます。 これは、アクティブなランタイムがないことを示します。 実行が開始されなかった理由を理解するには、 termination_code 列を確認します。

実行時間の短いジョブ

実行時間が 1 時間未満の場合は、1 つの行が出力され、 period_start_time は実行の開始時刻に設定され、 period_end_time は実行の終了時刻に設定されます。

たとえば、ジョブが午後 12 時 13 分 (UTC) に開始され、午後 12 時 45 分 (UTC) に終了したジョブは、1 行で表されます。

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 174832649710507 2025-06-08T12:13:01.605 2025-06-08T12:45:06.009

実行時間の長いジョブ

1 時間を超える実行の場合、複数の行が同じ run_idで出力され、それぞれが実行の期間の最大 1 時間を表します。

  • 最初の行は、実行の実際の開始時刻から開始し、最初の実行時間の終わりに終了します。
  • 中間行がある場合、前のスライスperiod_end_timeに合わせて、完全な1時間単位のウィンドウ全体にわたって配置されます。
  • 最後の行は、前のスライスの先頭から始まり、実行の実際の終了時刻で終了します。

たとえば、午後 4 時 47 分 (UTC) から午後 8 時 28 分 (UTC) まで実行されたジョブは、複数の行にスライスされます。 各行は、最後の行を除いて 1 時間のアクティビティを表します。これは短い場合があります。

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 55408597258956 2025-07-01T16:47:55.992 2025-07-01T17:47:56.434
6051921418418893 280090038844882 55408597258956 2025-07-01T17:47:56.434 2025-07-01T18:47:58.876
6051921418418893 280090038844882 55408597258956 2025-07-01T18:47:58.876 2025-07-01T19:47:59.682
6051921418418893 280090038844882 55408597258956 2025-07-01T19:47:59.682 2025-07-01T20:28:29.743

クロック時間に合わせたスライスロジック

Note

このスライス ロジックは 、2026 年 1 月 19 日以降のジョブ タイムライン テーブルの新しい行に適用されます。

2026 年 1 月 19 日以降、タイムラインテーブルでは、時間ごとに揃えられたスライシングが使用されます。 すべてのタイム スライスは、標準クロック時間の境界に合わせて調整されます。

同じクロック時間内に開始および終了するジョブ実行が 1 時間未満の場合、1 行が出力されます。

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 174832649710507 2025-12-08T12:13:01.605 2025-12-08T12:45:06.009

時刻の境界を越えるジョブの実行の場合、複数の行が出力され、その分割は時刻に合わせて配置されます。

  • 最初の行は、実行の実際の開始時刻から始まり、次のクロック時間の境界で終了します。
  • 中間行 (ある場合) は、完全なクロック時間にまたがります。 たとえば、午後 2:00~3:00、午後 3:00~4:00 などです。
  • 最後の行はクロック時間の境界から始まり、実行の実際の終了時刻で終了します。

たとえば、午前 1 時 25 分から午前 3 時 40 分までの UTC で実行されたジョブの実行時間は、3 つの行に分割されます。

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 55408597258956 2025-12-01T01:25:00.000 2025-12-01T02:00:00.000
6051921418418893 280090038844882 55408597258956 2025-12-01T02:00:00.000 2025-12-01T03:00:00.000
6051921418418893 280090038844882 55408597258956 2025-12-01T03:00:00.000 2025-12-01T03:40:00.000

トリガーの種類の値

job_run_timelineテーブルでは、trigger_type列に使用できる値は次のとおりです。

  • CONTINUOUS
  • CRON
  • FILE_ARRIVAL
  • ONETIME
  • ONETIME_RETRY

Run の種類の値

job_run_timelineテーブルでは、run_type列に使用できる値は次のとおりです。

タイプ Description UI の場所 API エンドポイント システム テーブル
JOB_RUN 標準ジョブの実行 ジョブ & ジョブ実行 UI /jobs および /jobs/runs エンドポイント ジョブ, job_tasks, job_run_timeline, job_task_run_timeline
SUBMIT_RUN POST /jobs/runs/submit を使用した 1 回限りの実行 ジョブ実行 UI のみ /jobs/runs のエンドポイントのみ job_run_timeline、job_task_run_timeline
WORKFLOW_RUN ノートブック ワークフローから開始された実行 表示されない アクセス不可 job_run_timeline

結果の状態値

job_task_run_timelineテーブルとjob_run_timelineテーブルでは、result_state列に使用できる値は次のとおりです。

State Description
SUCCEEDED 実行が正常に完了しました。
FAILED 実行はエラーで完了しました。
SKIPPED 条件が満たされなかったため、実行されませんでした。
CANCELLED ユーザーの要求で実行が取り消されました。
TIMED_OUT 実行は、タイムアウトに達した後に停止されました。
ERROR 実行はエラーで完了しました。
BLOCKED アップストリームの依存関係で実行がブロックされました。
NULL この行は、実行時間の長いジョブの中間スライスを表します。 result_stateは、実行の終了を表す行でのみ使用できます。

終了コード値

job_task_run_timelineテーブルとjob_run_timelineテーブルでは、termination_code列に使用できる値は次のとおりです。

終了コード Description
SUCCESS 実行が正常に完了しました。
CANCELLED 実行は Databricks プラットフォームによって実行中に取り消されました。たとえば、最大実行時間を超えた場合などです。
SKIPPED たとえば、アップストリーム タスクの実行に失敗した場合、依存関係の種類の条件が満たされなかった場合、または実行する重要なタスクがなかった場合など、実行が実行されませんでした。
DRIVER_ERROR Spark ドライバーとの通信中に、実行でエラーが発生しました。
CLUSTER_ERROR クラスター エラーが原因で実行に失敗しました。
REPOSITORY_CHECKOUT_FAILED サード パーティのサービスとの通信中にエラーが発生したため、チェックアウトを完了できませんでした。
INVALID_CLUSTER_REQUEST クラスターを起動するための無効な要求を発行したため、実行に失敗しました。
WORKSPACE_RUN_LIMIT_EXCEEDED ワークスペースは、同時実行中のジョブの最大数に達しました。 より大きな期間にわたって実行をスケジュールすることを検討してください。
FEATURE_DISABLED ワークスペースで使用できない機能にアクセスしようとしたため、実行に失敗しました。
CLUSTER_REQUEST_LIMIT_EXCEEDED クラスターの作成、開始、アップサイズの要求の数が、割り当てられたレート制限を超えています。 実行をより長い期間にわたって分散することを検討してください。
STORAGE_ACCESS_ERROR 顧客の BLOB ストレージにアクセスするときにエラーが発生したため、実行に失敗しました。
RUN_EXECUTION_ERROR タスクエラーが発生して実行が完了しました。
UNAUTHORIZED_ERROR リソースへのアクセス中にアクセス許可の問題が発生したため、実行に失敗しました。
LIBRARY_INSTALLATION_ERROR ユーザーが要求したライブラリのインストール中に実行に失敗しました。 原因には、指定されたライブラリが無効であるか、ライブラリをインストールするためのアクセス許可が不十分である、などがありますが、これらに限定されません。
MAX_CONCURRENT_RUNS_EXCEEDED スケジュールされた実行が、ジョブに設定されている同時実行の最大数の制限を超えています。
MAX_SPARK_CONTEXTS_EXCEEDED 実行は、作成するように構成されているコンテキストの最大数に既に達しているクラスターでスケジュールされます。
RESOURCE_NOT_FOUND 実行に必要なリソースが存在しません。
INVALID_RUN_CONFIGURATION 構成が無効なため、実行に失敗しました。
CLOUD_FAILURE クラウド プロバイダーの問題が原因で実行に失敗しました。
MAX_JOB_QUEUE_SIZE_EXCEEDED ジョブ レベルのキュー サイズ制限に達したため、実行はスキップされました。

パイプラインの種類の値

pipelinesテーブルでは、pipeline_type列に使用できる値は次のとおりです。

パイプラインの種類 Description
ETL_PIPELINE 標準パイプライン
MATERIALIZED_VIEW Databricks SQL の具体化されたビュー
STREAMING_TABLE Databricks SQL のストリーミング テーブル
INGESTION_PIPELINE Lakeflow Connect インジェクター
INGESTION_GATEWAY Lakeflow Connect ゲートウェイ データ取り込み装置

パイプラインの結果リファレンス

pipeline_update_timelineテーブルでは、result_state列に使用できる値は次のとおりです。

  • COMPLETED
  • FAILED
  • CANCELED

パイプライン設定リファレンス

pipelinesテーブルでは、settings列に使用できる値は次のとおりです。

Value Description
photon Photon を使用してパイプラインを実行するかどうかを示すフラグ
development 開発モードまたは運用モードでパイプラインを実行するかどうかを示すフラグ
continuous パイプラインを継続的に実行するかどうかを示すフラグ
serverless サーバーレス クラスターでパイプラインを実行するかどうかを示すフラグ
edition パイプラインを実行する製品エディション
channel 使用するパイプライン ランタイムのバージョン

パイプライン更新タイプの値

pipeline_update_timelineテーブルでは、update_type列に使用できる値は次のとおりです。

  • API_CALL
  • RETRY_ON_FAILURE
  • SERVICE_UPGRADE
  • SCHEMA_CHANGE
  • JOB_TASK
  • USER_ACTION
  • DBSQL_REQUEST
  • SETTINGS_CHANGE
  • SCHEMA_EXPLORATION
  • INFRASTRUCTURE_MAINTENANCE
  • START_RESOURCES

パイプライン トリガーの種類の値

pipeline_update_timelineテーブルでは、trigger_type列に使用できる値は次のとおりです。

Value Description
job_task パイプラインの更新をトリガーしたjob_taskの詳細

パイプライン トリガーの種類の詳細

pipeline_update_timeline テーブルでは、trigger_type.job_task構造体に使用できる値は次のとおりです。

Value Description Notes
job_id パイプラインの更新をトリガーしたジョブの ID SQL_SCHEDULE値は、このjob_taskが SQL コードの一部としてスケジュールされていることを示します
job_task_run_id パイプラインの更新をトリガーしたジョブ タスク実行の ID SQL_SCHEDULE値は、このjob_taskが SQL コードの一部としてスケジュールされていることを示します
performance_target サーバーレス パイプラインの更新時にのみ設定されます PERFORMANCE_OPTIMIZEDまたはSTANDARD