You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks中从一个作业自动触发另一个依赖作业?

Databricks内部实现作业依赖自动触发方案

完全可以在Databricks内部实现第一个作业成功后自动触发第二个作业,无需借助外部工具,以下是几种实际可用的方案:

1. 用多任务作业配置任务依赖(最推荐)

Databricks原生支持多任务作业,你可以把两个独立作业合并成一个包含双任务的作业,直接配置依赖关系:

  • 新建作业,先添加对应原第一个作业的任务
  • 添加对应原第二个作业的任务,在任务配置的「Depends on」选项中选择第一个任务,并设置触发条件为仅当依赖任务成功完成时
  • 保存后,只要第一个任务成功执行完毕,第二个任务会自动启动;若第一个任务失败,第二个任务不会触发

这种方式操作简单,能统一管理、监控两个任务的运行状态,无需额外编写代码。

2. 在第一个作业中调用Jobs API触发第二个作业

如果两个作业必须保持独立(比如分属不同项目、需单独调度),可以在第一个作业的最后一步加入代码,调用Databricks Jobs API启动第二个作业:

  • 先获取第二个作业的job_id(可在作业详情页找到)
  • 在第一个作业的notebook或任务脚本中添加触发代码,示例(Python):
import requests
import json

# 从Databricks密钥管理中获取认证token,避免硬编码
token = dbutils.secrets.get(scope="your-secret-scope", key="databricks-token")
databricks_instance = "https://<你的Databricks工作区URL>"

# 发送触发第二个作业的API请求
response = requests.post(
    f"{databricks_instance}/api/2.1/jobs/runs/submit",
    headers={"Authorization": f"Bearer {token}"},
    json={"job_id": <第二个作业的job_id>}
)

# 验证请求是否成功
if response.status_code != 200:
    raise Exception(f"触发第二个作业失败: {response.text}")
  • 确保这段代码仅在第一个作业成功时执行,可通过try-except包裹核心逻辑,或在任务结束前判断当前作业的运行状态。

注意事项

  • 权限:执行API调用的主体(如作业运行用户、服务主体)需拥有第二个作业的「Run now」权限
  • 测试:先手动运行第一个作业,确认第二个作业能被正常触发后再投入正式使用
  • 监控:无论采用哪种方案,都可在Databricks作业运行页面查看两个任务的执行日志和状态

内容的提问来源于stack exchange,提问作者Pavel Ryzhov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:32:35