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

如何在Delta Live Tables(DLT)流水线定义中管理外部依赖?

Delta Live Tables(DLT)流水线外部依赖管理优化方案

方案1:使用requirements.txt配合工作库

  • 将所有依赖(含明确版本号)写入requirements.txt文件,上传至Databricks工作区指定路径
  • 修改DLT流水线的YAML配置,在libraries节点添加该文件作为依赖,示例:
resources:
  pipelines:
    bronze:
      name: ${var.stage_name}_bronze
      clusters:
        - label: default
          autoscale: ${var.default_dlt_cluster.autoscale}
          spark_conf: ${var.default_dlt_cluster.spark_conf}
      libraries:
        - notebook:
            path: ${workspace.file_path}/bronze
        - requirements:
            path: ${workspace.file_path}/requirements.txt
      target: ${var.schema_suffix}bronze
      development: false
      catalog: ${var.default_catalog}
  • 优势:集中管理依赖版本,流水线启动时自动批量安装,确保多环境依赖版本一致,支持精确版本锁定(如pandas==2.1.0)

方案2:构建自定义Wheel包并上传至工作库

  • 将项目依赖与自定义代码打包成标准Python Wheel包,上传到Databricks工作库
  • 在DLT流水线的libraries中引用该Wheel包,示例:
libraries:
  - notebook:
      path: ${workspace.file_path}/bronze
  - whl:
      path: ${workspace.file_path}/my_project_deps-0.1.0-py3-none-any.whl
  • 优势:完全封装依赖与自定义逻辑,避免跨项目依赖冲突,适合复杂项目的依赖管理,可通过CI/CD流程自动化构建上传

方案3:使用集群初始化脚本

  • 创建Shell脚本,在脚本中通过pip install命令安装指定版本的依赖,示例:
#!/bin/bash
pip install pandas==2.1.0 requests==2.31.0
  • 将脚本上传至工作区或DBFS,在DLT流水线的集群配置中添加初始化脚本:
clusters:
  - label: default
    autoscale: ${var.default_dlt_cluster.autoscale}
    spark_conf: ${var.default_dlt_cluster.spark_conf}
    init_scripts:
      - workspace:
          path: ${workspace.file_path}/init_deps.sh
  • 优势:适用于需要全局安装依赖的场景,可灵活配置安装逻辑,配合版本锁定确保环境一致性

方案对比与推荐

  • 小型项目/快速迭代:优先选方案1,配置简单,依赖管理清晰
  • 复杂项目/自定义代码多:推荐方案2,封装性强,减少依赖冲突风险
  • 需要全局环境配置:使用方案3,适合特殊依赖或系统级配置需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:49:56