You need to enable JavaScript to run this app. 如何使用Databricks CLI通过Job ID获取所有作业的Run ID
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Databricks CLI通过Job ID获取所有作业的Run ID

核心问题成因

执行databricks runs list默认只返回20条Run记录,是因为CLI对接的运行查询接口默认单页返回上限为20条,且不会自动遍历后续分页内容。即便不指定Job维度筛选条件,也只会输出第一页的结果,无法拉取全量Run。
结合你已经通过databricks jobs list --output json获取全量Job ID的现状,按单Job维度拉取对应全量Run的效率远高于全局跨所有作业拉取,是最适合新手的操作路径。

单Job维度查询全量Run ID的操作方法

单Job的Run查询核心是手动控制分页拉取逻辑,具体参数说明如下:

  • 基础查询命令格式:databricks runs list --job-id <目标Job的ID值>
  • 必须补充的两个核心参数才能突破20条的返回限制:
    • --limit 100:将单页返回记录数设置为接口支持的最大值100,减少翻页次数。注意该参数设置超过100会直接触发接口报错
    • --page-token <分页令牌值>:当第一页返回结果的JSON结构中has_more字段为true时,从结果里取出next_page_token字段的值作为该参数的入参,即可拉取下一页的Run记录
  • 重复上述翻页步骤,直到返回结果里的has_more字段变为false,就能拿到对应Job的所有Run记录,直接从每页结果里提取run_id字段即可。
批量拉取所有Job全量Run ID的简化方案

如果需要遍历所有Job拿全量Run ID,不需要手动逐个执行命令,用几行简单的脚本即可完成全流程自动化:

  1. 将databricks jobs list --output json的输出内容保存为本地文件all_jobs.json
  2. 从文件中批量提取所有Job ID,生成纯ID列表文件job_ids.txt,可直接用CLI内置的JSON解析工具完成提取:cat all_jobs.json | jq '.jobs[].job_id' > job_ids.txt
  3. 执行以下循环脚本,自动遍历每个Job的全部分页、提取所有Run ID到结果文件:
    # 逐行读取Job ID列表
    while read job_id; do
      # 拉取当前Job的第一页Run记录
      databricks runs list --job-id $job_id --limit 100 --output json > temp_runs.json
      # 提取第一页的Run ID,追加到结果文件
      cat temp_runs.json | jq '.runs[].run_id' >> all_run_ids.txt
      # 循环拉取后续分页
      while [ $(cat temp_runs.json | jq '.has_more') = true ]; do
        # 获取当前页的下一页分页令牌
        page_token=$(cat temp_runs.json | jq -r '.next_page_token')
        # 拉取下一页内容覆盖临时文件
        databricks runs list --job-id $job_id --limit 100 --page-token $page_token --output json > temp_runs.json
        # 提取当前页Run ID追加到结果文件
        cat temp_runs.json | jq '.runs[].run_id' >> all_run_ids.txt
      done
    done < job_ids.txt
    

脚本执行完成后,同目录下的all_run_ids.txt文件就是所有作业对应的全量Run ID列表。

新手操作避坑提示
  • 不要直接不指定Job ID就全局拉取全量Run,当作业规模较大、历史Run记录较多时,全局查询容易触发超时,还会混入大量手动触发的临时运行、无效测试运行的记录
  • 如果环境中没有jq这类JSON解析工具,也可以手动把databricks jobs list输出里的Job ID逐行复制到job_ids.txt文件中,不影响后续批量拉取流程
  • 如果只需要查询特定时间范围的Run(比如每日运行的作业对应Run),可以在命令中追加--start-time-range <起始时间戳,结束时间戳>参数,不需要拉取作业创建以来的全部历史Run,大幅缩短查询时间
  • 脚本运行过程中不要手动中断,避免临时文件内容损坏,导致分页令牌失效需要重新拉取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 14:24:00