1. Databricks平台架构与AI集成全景
Databricks 的核心价值在于把数据工程、数据分析与机器学习统一到同一套 Lakehouse 架构之上。理解它的关键,不是记住一堆产品名,而是看清一条主线:数据从存储层进入,经计算层加工,由治理层统一管控,再通过 MLflow、Feature Store、模型服务与 AI Runtime 形成从特征到推理的闭环。本章先建立这张全景地图,后续章节再逐层深入。
Lakehouse:一套存储,两种负载
传统架构中,数据仓库负责 BI 报表,数据湖负责原始数据与机器学习,两者之间靠 ETL 反复搬运,导致数据冗余、口径不一致。Lakehouse 的思路是:底层用开放格式(Delta Lake)把数据存在云对象存储上,上层同时提供 SQL 数仓能力和 DataFrame/Spark 计算能力。Delta 表在目录里是一组 Parquet 文件加一份事务日志 _delta_log,日志记录每次提交的元数据,从而带来 ACID 事务、时间旅行(VERSION AS OF / TIMESTAMP AS OF)、Schema 演进和高效的 MERGE 更新。
对 AI 场景而言,Lakehouse 的意义在于:特征工程、训练数据准备、模型评估指标回写,都可以直接读写同一张 Delta 表,不需要在湖和仓之间同步副本。例如一张 ml.features.user_behavior 表,既可以被 SQL 分析师查询,也可以被 Spark 读取用于训练,还能被 Feature Store 注册为在线特征来源。
计算资源:按任务形态选择
Databricks 的计算资源主要分为几类,选择依据是“谁在用、要多快、跑多久”:
- All-Purpose Cluster(通用集群):交互式使用,适合 Notebook 探索、调试、小规模训练。启动后持续运行,成本较高,适合开发阶段。
- Job Cluster(作业集群):由 Job 调度创建,任务结束即释放,适合生产 ETL 和批量训练,成本更优。
- SQL Warehouse:面向 BI 与 SQL 查询,支持 Serverless 与 Photon 向量化引擎,适合报表和高并发查询。
- Serverless 计算:无需管理集群,秒级启动,适合 Notebook、Job、SQL 及模型服务等场景。
- GPU 集群:用于深度学习训练与微调,可选 A100/H100 等实例,配合 Horovod 或 TorchDistributor 做分布式训练。
一个常见的教学示例:开发阶段用 2 节点通用集群(Driver 1 台 + Worker 1 台,Standard_DS3_v2)调试特征逻辑;上线后改为 Job Cluster,Worker 扩到 4 台并开启自动伸缩(min_workers=2, max_workers=8),夜间跑批,成本显著下降。
工作区组件与 Unity Catalog
工作区(Workspace)是用户日常操作的入口,包含 Notebook、Repos(Git 集成)、Jobs、Clusters、SQL Editor、Dashboards、Experiments 等。它们共享同一份目录与权限体系。Unity Catalog 是跨工作区的统一治理层,采用三层命名空间 catalog.schema.table,例如 prod_ml.features.user_profile。它统一管理表、视图、Volume(非结构化文件)、函数和模型,并提供细粒度权限(SELECT、MODIFY、EXECUTE)、血缘追踪与审计日志。
对 AI 集成来说,Unity Catalog 还承担模型注册的职责:MLflow 训练出的模型可以注册为 catalog.schema.model_name,从而让模型也具备权限、版本和血缘,而不是散落在个人 Notebook 里。
MLflow、Feature Store 与模型服务
MLflow 负责实验追踪与模型生命周期:一次训练运行会记录参数(如 learning_rate=0.05、n_estimators=200)、指标(auc=0.87)、代码版本和产物(模型文件、conda 环境)。通过 mlflow.log_param、mlflow.log_metric、mlflow.sklearn.log_model 即可完成记录,再在 Experiments UI 中对比多次运行。
Feature Store 解决特征复用与训练/推理一致性:特征表注册后,既可作为离线训练输入,也可通过在线存储(如 DynamoDB、Cosmos DB)提供低延迟查询,避免“训练用批处理、推理用另一套逻辑”造成偏差。模型服务(Model Serving)把注册模型部署为 REST 端点,支持自动扩缩容;AI Runtime 则面向大模型场景,提供 GPU 优化推理、向量检索与 LangChain 集成,用于构建 RAG 类应用。
一次端到端示例:从特征到在线推理
把上述组件串起来,可以走一遍最小闭环。假设要做一个用户流失预测模型:
- 在
prod_ml.features下用 Delta 表保存用户行为特征,主键user_id,特征列包括days_since_login、orders_30d、avg_order_value。 - 用 Feature Store 注册该表,指定主键与时间戳列,生成训练集
create_training_set。 - 用 MLflow 训练 XGBoost,记录
max_depth=6、eta=0.1,指标auc=0.86,并把模型注册为prod_ml.models.churn_xgb。 - 将模型部署到 Model Serving,得到 REST 端点;在线请求携带
user_id,服务从在线特征存储取特征并返回churn_probability。 - 把预测结果与真实标签回写 Delta 表,用 MLflow 监控指标漂移,触发下一轮训练。
这张全景图的意义在于建立坐标系:后续讲 Delta 表设计时,你知道它属于存储层;讲集群选型时,你知道它属于计算层;讲模型上线时,你知道它要穿过 MLflow、Feature Store 与 Serving 三层。先有地图,再走细节,学习效率会高得多。