2. Databricks 工作区与计算资源
在 Databricks 中,工作区(Workspace)是用户操作与协作的入口,而真正执行数据处理的,是工作区背后挂载的计算资源。理解“工作区负责组织资产、计算资源负责执行任务”这一分工,是后续所有批流一体开发的基础。本节围绕三类核心计算形态——通用集群、SQL 仓库、作业计算——讲清它们的定位、创建方式、关键参数,以及自动伸缩与 Photon 加速的配置逻辑。
一、三类计算资源的定位差异
Databricks 的计算资源并非只有一种。按使用场景划分,最常用的是以下三类:
- 通用集群(All-Purpose Cluster):面向交互式分析、Notebook 开发与调试。它长期存活、可多人共享,适合探索性工作,但成本相对较高。
- SQL 仓库(SQL Warehouse):专为 SQL 与 BI 查询优化,支持 Photon 引擎,按查询或按时间计费,适合仪表盘、报表和即席 SQL。
- 作业计算(Job Compute):由作业(Job)在运行时临时创建,任务结束即释放,适合生产调度与批处理,成本最可控。
三者的关键区别在于“生命周期”和“计费方式”:通用集群是常驻的,SQL 仓库是按需启动的,作业计算是随任务生灭的。选择哪一类,取决于当前是“人在探索”还是“机器在跑批”。
二、创建通用集群的关键参数
在左侧导航栏选择 Compute → Create Cluster,进入集群配置页。以下参数决定了集群的能力与成本:
- Cluster Mode:Single Node(单节点,适合小数据调试)或 Standard(多节点,含 Driver 与 Worker)。
- Databricks Runtime Version:如 14.3 LTS(长期支持版),生产环境优先选 LTS。
- Node Type:Driver 与 Worker 的机型,如 Standard_DS3_v2(4 核 14GB)。
- Workers:固定数量或启用自动伸缩,设置最小/最大 Worker 数。
- Auto Termination:空闲多少分钟后自动关闭,建议 30~60 分钟。
- Photon Acceleration:勾选后启用 Photon 向量化引擎。
一个典型的开发集群配置示例:Runtime 14.3 LTS、Driver 为 Standard_DS3_v2、Worker 最小 2 最大 8、空闲 45 分钟自动终止、启用 Photon。这套配置在保证交互响应速度的同时,避免了长期空转带来的浪费。
三、自动伸缩的工作机制
自动伸缩(Autoscaling)根据当前负载动态调整 Worker 数量。它的判断依据是集群中待处理任务(Task)的积压情况:当 Spark 任务队列变长、现有 Worker 处理不过来时,集群会向上扩容;当负载下降、Worker 空闲时,则向下缩容。
配置自动伸缩时有两个关键参数:Min Workers 和 Max Workers。Min 决定了最低保障能力,Max 决定了成本上限。需要注意的是,缩容并非立即执行,Databricks 会等待一段空闲时间后才释放节点,避免频繁抖动。对于流处理任务,建议 Min 不低于 2,以保证持续消费的稳定性。
四、SQL 仓库的创建与 Photon 加速
SQL 仓库在 SQL Warehouses → Create SQL Warehouse 中创建。核心参数包括:
- Cluster Size:从 2X-Small 到 4X-Large,决定单集群的计算能力。
- Auto Stop:空闲多久后停止,默认 10 分钟。
- Scaling:Min/Max clusters,支持多集群并发扩展。
- Photon:默认启用,加速 SQL 与 DataFrame 操作。
Photon 是 Databricks 用 C++ 重写的向量化查询引擎,它充分利用 CPU 的 SIMD 指令并行处理数据。对于扫描、过滤、聚合、Join 等操作,Photon 通常能带来数倍性能提升。在 SQL 仓库中 Photon 默认开启;在通用集群和作业计算中,需要在创建时手动勾选 Photon Acceleration。
需要注意的是,Photon 并非对所有场景都有效。对于大量使用 UDF、复杂 Python 逻辑或非向量化操作的任务,Photon 的收益有限,甚至可能因兼容性问题需要回退。因此建议在启用后对比查询耗时,用实际数据判断是否保留。
五、作业计算的配置方式
作业计算不单独创建,而是在定义 Job 时指定。在 Workflows → Create Job 中,为每个 Task 选择计算类型:
- Job Cluster:为该任务临时创建集群,任务结束释放,隔离性最好。
- Existing All-Purpose Cluster:复用已有通用集群,适合快速调试。
- Serverless:无需管理集群,由平台自动分配,适合轻量任务。
生产环境推荐使用 Job Cluster,并配置自动伸缩与 Photon。例如一个每日 ETL 作业:Runtime 14.3 LTS、Worker 2~10 自动伸缩、启用 Photon、任务失败重试 2 次。这样既能在数据量大时自动扩容,又能在任务结束后立即释放资源。
六、参数配置速查表
| 计算类型 | 生命周期 | 自动伸缩 | Photon | 典型场景 |
|---|---|---|---|---|
| 通用集群 | 手动启停 | 支持 | 可选 | Notebook 开发调试 |
| SQL 仓库 | 自动启停 | 多集群扩展 | 默认开启 | BI 报表、即席 SQL |
| 作业计算 | 随任务生灭 | 支持 | 可选 | 生产 ETL、流处理 |
掌握这三类计算资源的创建与参数配置,是构建批流一体管道的前提。实际工作中,建议先用通用集群完成开发与验证,再将逻辑固化为作业计算投入生产,SQL 仓库则服务于下游的查询与展示。自动伸缩控制成本弹性,Photon 提升执行效率,两者配合使用,才能在性能与开销之间取得平衡。