2. Databricks工作区与计算资源准备

在 Databricks 上构建 AI 批流数据管道之前,必须先完成工作区导航、计算资源选型和成本模型的准备。这一节的目标不是把每个按钮都点一遍,而是让你清楚:进入工作区后,哪些对象是后续管道要反复使用的,集群类型如何影响运行方式,DBU 成本如何估算,以及 AI 运行时与 GPU 实例在什么场景下才真正必要。

工作区导航:先认清四类核心对象

登录 Databricks 工作区后,左侧导航通常包含 Workspace、Catalog、Compute、Jobs & Pipelines、Marketplace 等入口。对数据管道开发而言,最需要先建立认知的是四类对象:

  • Workspace:存放 Notebook、文件夹、Git 仓库和实验代码,是开发入口。
  • Catalog:管理 Unity Catalog 中的元数据,包括 catalog、schema、table、volume、model、function 等,是数据与模型的治理边界。
  • Compute:提供执行代码的计算资源,分为 All-purpose 集群、Job 集群、SQL Warehouse 和 Serverless 计算等。
  • Jobs & Pipelines:承载批处理任务、流式管道和编排调度,是生产运行的落点。

一个常见的开发路径是:在 Workspace 中编写 Notebook,通过 Catalog 读取和写入表,在 Compute 上选择合适集群执行,最后把逻辑封装进 Jobs 或 Lakeflow 管道。理解这条路径,比记住菜单位置更重要。

集群类型选择:按用途而非按习惯

Databricks 的集群选择直接影响成本、启动速度和并发能力。All-purpose 集群适合交互式开发、探索和调试,支持多人共享,但单价较高;Job 集群由 Job 调度自动创建和销毁,适合生产批处理,成本更低;SQL Warehouse 面向 BI 和 SQL 分析,优化了并发查询;Serverless 计算则把资源管理交给平台,适合不希望维护集群配置的团队。

选择时可以先问三个问题:这段代码是交互式调试还是定时运行?是否需要 GPU?是否要求秒级启动和弹性伸缩?如果是交互式调试,用 All-purpose;如果是生产批处理,优先 Job 集群;如果是 SQL 报表,用 SQL Warehouse;如果希望减少运维,考虑 Serverless。对于 AI 训练或推理,再叠加 GPU 实例类型。

DBU 成本模型:把“用量”和“单价”分开看

Databricks 的计费单位是 DBU(Databricks Unit),它衡量的是 Databricks 平台侧的计算用量,而不是底层云主机的直接费用。实际账单通常由两部分组成:云厂商的虚拟机或存储费用,加上 Databricks 的 DBU 费用。DBU 单价取决于工作区所在云平台、区域、集群类型和 SKU 等级(如 Standard、Premium、Enterprise)。

估算成本时,可以用一个简化公式:

总成本 ≈ 云主机费用 + DBU 数量 × DBU 单价
DBU 数量 ≈ 集群节点数 × 运行小时数 × 每节点每小时 DBU 消耗

例如,假设某区域 Premium 工作区中,一个 Job 集群使用 2 个 worker 节点,每节点每小时消耗 2 DBU,运行 1 小时,则 DBU 用量约为 2 × 1 × 2 = 4 DBU。若该 SKU 的 DBU 单价为 0.55 美元,则 Databricks 侧费用约为 2.2 美元,再加上云主机费用。这个例子中的参数是教学假设,实际单价和 DBU 消耗需以工作区账单和官方定价为准。

优化成本的关键不是一味选最便宜的集群,而是让集群生命周期与任务生命周期匹配:Job 集群随任务创建和销毁,避免 All-purpose 集群长时间空转;对可中断的批处理使用 Spot 实例;对延迟不敏感的任务设置自动终止。

AI 运行时与 GPU 实例配置

当管道涉及深度学习训练、大模型微调或 GPU 推理时,需要选择 AI 运行时和 GPU 实例。Databricks Runtime ML 预装了 PyTorch、TensorFlow、Hugging Face、MLflow 等库,适合机器学习工作负载;GPU 集群则提供 NVIDIA GPU 资源。常见 GPU 实例包括单卡和多卡机型,选择时关注显存、GPU 数量、CPU 与内存配比,以及是否支持 NVLink 等互联能力。

配置 GPU 集群时,通常需要设置:

  • Runtime:选择带 GPU 支持的 Databricks Runtime ML 版本。
  • Worker 类型:选择 GPU 实例,如单卡或多卡机型。
  • Driver 类型:小规模训练可用 CPU driver,大规模分布式训练建议 driver 也具备足够内存。
  • Autoscaling:按负载伸缩 worker 数量,但 GPU 集群伸缩通常比 CPU 慢,需预留启动时间。
  • Spark 配置:如 spark.task.resource.gpu.amount,控制每个任务占用的 GPU 资源。

如果只是数据预处理、特征工程或轻量推理,CPU 集群往往更经济;只有当模型训练或推理确实需要 GPU 加速时,才应引入 GPU 实例。否则,GPU 集群的高单价会迅速推高成本。

Databricks 工作区对象与计算资源选择关系 Workspace Notebook / Git / 实验 开发入口 Catalog 表 / 卷 / 模型 / 函数 治理边界 Compute All-purpose / Job SQL Warehouse / Serverless Jobs 批 / 流 编排调度 集群类型选择:按用途匹配 All-purpose 交互开发 / 调试 Job 集群 生产批处理 / 低成本 SQL Warehouse BI / 并发 SQL Serverless 免运维 / 弹性 DBU 成本模型 总成本 ≈ 云主机费用 + DBU 数量 × DBU 单价 DBU 数量 ≈ 节点数 × 小时数 × 每节点 DBU 示例:2 worker × 1h × 2 DBU = 4 DBU AI 运行时与 GPU 实例 Runtime ML:PyTorch / TensorFlow / MLflow GPU 实例:显存 / 卡数 / NVLink 仅训练或推理需要时启用,避免空转 选择顺序:先定用途 → 再选集群类型 → 最后估算 DBU 与 GPU 成本

一个可复用的准备清单

在正式开发管道前,可以按下面这份清单逐项确认,避免中途返工:

检查项 确认内容 判断依据
工作区权限 能否访问目标 Catalog、Schema 和 Volume 在 Catalog 中能看到对应对象并具备读写权限
集群类型 开发用 All-purpose,生产用 Job 集群 任务是否需要交互式调试、是否定时运行
DBU 预算 估算单次运行 DBU 用量与月度上限 节点数 × 小时数 × 每节点 DBU × 单价
AI 运行时 是否需要 ML Runtime 和 GPU 是否涉及模型训练、微调或 GPU 推理
自动终止 All-purpose 集群设置空闲自动终止 避免长时间空转产生额外 DBU

完成以上准备后,你就具备了进入下一阶段的条件:在明确的工作区、计算资源和成本边界内,开始设计批流数据管道。后续的 Notebook 开发、Job 编排和管道监控,都会建立在这一节的资源选择之上。