アップストリームジョブが完了したときにジョブをTriggerする
ジョブ完了Triggerを使用して、1つ以上のアップストリームジョブが完了したときにLakeFlow Jobをランします。アップストリームジョブは、同じ Unity Catalog メタストアにアタッチされた異なるワークスペースにある可能性があります。アップストリームジョブを変更せずに、ダウンストリームジョブの依存関係を構成できます。
ベータ版
ジョブ完了Triggerは ベータ版です。
始める前に
- ワークスペース管理者(下流のワークスペースとすべてのアップストリームのワークスペース)は、プレビューページ から ジョブ完了Trigger を有効にする必要があります。
- 参加するすべてのワークスペースを同じ Unity Catalog メタストアに接続する必要があります。
- ダウンストリーム ジョブのトリガーを構成するには、そのジョブに対する CAN MANAGE 権限が必要です。
- ダウンストリームジョブの ランID は、すべてのアップストリームワークスペースに割り当てられ、監視対象のすべてのジョブで CAN VIEW 以上を持っている必要があります。これらの要件は、ユーザーとService Principalの両方に適用されます。
ご自身の権限によって、選択して開くことができるジョブが決まります。下流ジョブの「ラン as」権限によって、Triggerがそれらを監視できるかどうかが決まります。
ジョブ完了Triggerの動作
Triggerは1~10個の上流ジョブをモニタリングし、すべてに同じ結果フィルターを適用します:
アップストリーム ランの結果 | API値 | 一致する補完 |
|---|---|---|
Succeeded (default) |
|
|
不成功 |
|
|
結果に関わらず完了 |
| 終了コードに関係なく、完了したすべてのラン |
1つのアップストリームジョブがある場合、新しい一致する完了ごとにダウンストリームランが開始されます。複数のアップストリームジョブがある場合、 すべて のジョブが新しく一致する完了を持つと、ダウンストリームランが開始されます。ジョブが他のジョブが完了する前に複数回完了した場合、そのジョブからの最新の一致する完了がダウンストリームランに寄与します。
たとえば、Aが2回完了し、次にBが完了した場合、AとBをモニタリングするトリガーは、Aの2回目の完了とBの完了を使用して1つのダウンストリーム実行を起動します。両方のジョブが次のランを起動するために別のマッチング完了を提供する必要があります。完了は営業日またはデータバッチによって照合されません。
いずれか の上流ジョブが完了した後に実行するには、ジョブごとに個別のTriggerを追加します。これには マルチ Trigger ベータ が必要です。
過去の完了イベントでは、Triggerの初期化時にランは起動されません。モニタリング対象のジョブまたは結果フィルターを変更すると、完了の進捗状況がリセットされ、モニタリングが最初から起動されます。下流ジョブが最大並列ラン数に達している場合、次のランを起動できるようになるまで、準備が整った完了イベントは保持されます。
ジョブ完了Triggerを追加する
- ワークスペースのサイドバーで、 ジョブ & パイプライン をクリックし、下流ジョブを開きます。
- 「 Schedules & Trigger 」で、 Triggerを追加 をクリックします。
- Trigger type で、 Upstream ジョブ completion を選択します。
- 上流ジョブ の下で、各 ジョブワークスペース と ジョブ を選択します。ジョブ名またはIDで検索します。
- 上流のランの結果 を選択します。
- Trigger のテスト をクリックし、報告されたエラーを解決します。このテスト中にアップストリームジョブを確認できない場合は、保存後にTriggerの状態を確認してください。
- 保存 をクリックします。
スケジュール & Trigger を使用して、各上流ジョブの完了の進捗状況を確認し、Triggerを編集したり、停止する、再開、削除したりできます。Triggerを一時停止しても、アクティブなランは停止しません。既存のTriggerの管理をご覧ください。
ダウンストリームジョブの閲覧者は、アップストリームのワークスペース、ジョブおよびランID、完了結果、進行状況を表示できます。ジョブ名、およびアップストリームのジョブとランへのアクセスには、閲覧者自身のアップストリーム権限が必要です。
API、CLI、またはバンドルで構成する
- REST API
- CLI
- Bundles
このリクエストを update-job.json として保存し、Jobs APIの POST /api/2.2/jobs/update に送信します。IDをダウンストリームジョブおよびアップストリームワークスペースとジョブのIDに置き換えます。
{
"job_id": 9001,
"new_settings": {
"triggers": [
{
"pause_status": "UNPAUSED",
"job_completion": {
"jobs": [
{ "workspace_id": "123456789", "job_id": "1001" },
{ "workspace_id": "234567890", "job_id": "1002" }
],
"if_status": "SUCCESS"
}
}
]
}
}
REST API tab のリクエスト本文を update-job.json として保存し、以下を実行します。
databricks api post /api/2.2/jobs/update --json @update-job.json
Databricks アセットバンドル の場合は、既存のジョブ リソースのタスクと一緒に、次の設定を追加します。
resources:
jobs:
downstream:
triggers:
- pause_status: UNPAUSED
job_completion:
jobs:
- workspace_id: '123456789'
job_id: '1001'
- workspace_id: '234567890'
job_id: '1002'
if_status: SUCCESS
これらの例には、複数のTriggerベータ版が必要です。そのベータ版のない単一のTriggerについては、triggers配列の代わりに、同じTriggerオブジェクトを使用してtriggerを使用します。triggersをtrigger、schedule、またはcontinuousと組み合わせないでください。triggersを更新すると配列全体が置き換わるため、保持する既存のTriggerを含めてください。バンドルの検証とデプロイには、スキーマにjob_completionが含まれるCLIバージョンが必要です。
上流の完了詳細を使用する
upstream_completionsという名前のジョブパラメーターを値{{job.trigger.job_completion.completed_jobs}}で追加します。構成順に、監視対象ジョブごとに 1 つのエントリを持つ JSON 配列に解決されます。
[
{
"workspace_id": "123456789",
"job_id": "1001",
"run_id": "2001",
"termination_code": "SUCCESS",
"completion_time": "2026-10-07T08:00:00Z"
}
]
この例では、1 つのエントリを示しています。2 つのジョブをモニタリングするTriggerは、2 つのエントリを返します。リトライと修復は、元の貢献完了を保持します。手動ランは、[] への参照を解決します。この参照を設定できるのは、ジョブのすべてのTriggerがジョブ完了Triggerである場合のみです。
ノートブックタスクは、次のようにパラメーターを読み取ることができます:
import json
completed_jobs = json.loads(dbutils.widgets.get("upstream_completions"))
for job in completed_jobs:
print(job["job_id"], job["run_id"], job["termination_code"])
ジョブのパラメータ化を参照してください。同じ完了の詳細は、単一のTriggerと複数のTriggerのベータ版の両方について、ランAPIの取得のtrigger_info.job_completion.completed_jobsで入手できます。複数のTriggerを使用して各Triggerの完了の進捗を検査するには、include_trigger_state=trueでジョブAPIの取得を呼び出し、trigger_details[].state.job_completion.monitored_job_statesを読み取ります。
トラブルシューティング
問題 | 操作 |
|---|---|
ランとして実行するIDにジョブ権限またはワークスペースアクセス権がありません | 各アップストリームワークスペースに ID を割り当て、各モニタリング対象ジョブで CAN VIEW 以上を付与します。 |
アップストリームのジョブまたはワークスペースが存在しなくなりました | 影響を受けるエントリを削除または置き換えてください。 |
ワークスペースに異なるメタストアがある | ダウンストリームワークスペースのメタストアにアタッチされたワークスペースでアップストリームジョブを選択します。 |
参加ワークスペースでベータ版が無効になっています | ワークスペース管理者に、そこでジョブ完了Triggerを有効にするよう依頼してください。 |
制限
- ワークスペースは最大1,000個のアクティブなジョブ完了Triggerをサポートしています。これらはワークスペースの12,000個のアクティブなTriggerの制限にカウントされます。
- Triggerは最大10個の異なるワークスペースとジョブのペアを監視します。
- 監視対象のすべてのジョブで 1 つの結果フィルターが共有されます。