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

能否在运行时为Delta Live Table流水线传递动态参数并自动化执行?

在Databricks中通过Job触发DLT流水线传递动态参数

完全可以实现每次执行DLT流水线时指定动态过滤参数,以下是两种可靠的实现方式:

方法1:DLT参数+Job运行时传参

这是最直接的方式,结合DLT的参数机制和Job的运行时配置:

  • 在DLT笔记本中定义带默认值的参数,方便单独调试流水线:
    dbutils.widgets.text("filter_date", "2024-01-01", "过滤日期")
    filter_date = dbutils.widgets.get("filter_date")
    
    # 在数据处理逻辑中用参数过滤
    df = spark.read.table("raw_data").filter(f"date = '{filter_date}'")
    
  • 创建DLT流水线时,无需在流水线设置中硬编码参数(可留空或设全局默认值)。
  • 配置Job触发DLT任务时:
    • UI操作:找到DLT任务的「参数」配置项,添加键值对(如filter_date=2024-05-20)。
    • API触发:在请求体中指定parameters字段:
      {
        "pipeline_id": "your-pipeline-uuid",
        "parameters": {
          "filter_date": "2024-05-20"
        }
      }
      
    运行时传递的参数会自动覆盖流水线的默认参数值。

方法2:环境变量传递

适合需要传递敏感信息或更复杂参数的场景:

  • 在Job任务的「环境变量」配置中添加参数,比如FILTER_DATE=2024-05-20。
  • 在DLT笔记本中读取环境变量并设置默认值:
    import os
    filter_date = os.getenv("FILTER_DATE", "2024-01-01")
    df = spark.read.table("raw_data").filter(f"date = '{filter_date}'")
    

注意事项

  • 无论哪种方式,都建议给参数设置合理默认值,避免流水线单独运行时出错。
  • 确保执行Job的账号拥有DLT流水线的「运行」权限。
  • 使用widget时,Job传递的参数会自动映射到对应widget,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:27:23