3. 目标架构设计

目标架构设计是迁移工程从“现状盘点”走向“落地实施”的关键桥梁。它要回答四个问题:数据以什么形态组织、计算与存储如何解耦、权限与血缘由谁统一治理、工作区与网络如何部署才能既安全又高效。本章围绕 Databricks Lakehouse 的四层结构展开,并给出可直接用于迁移方案评审的架构决策要点。

一、Lakehouse 分层:从原始落地到服务消费

Databricks Lakehouse 的核心思想是:用开放格式的云对象存储承载一份数据,同时支持 BI 的 SQL 分析、数据科学的 DataFrame/Python 处理以及流式增量加工,避免传统“数据湖 + 数据仓库”双份存储与双份治理。落地时通常按数据质量与用途划分为四层,每层对应独立的 Schema 与命名规范:

  • Bronze(原始层):与源系统结构基本一致,保留原始字段与原始时间戳,仅追加不覆盖,用于回溯与重放。示例:bronze.orders_raw,字段含 _ingest_ts、_source_file。
  • Silver(清洗层):完成去重、类型转换、空值处理、维度关联,形成可复用的明细事实与维度。示例:silver.orders_cleaned,主键 order_id,金额统一为 decimal(18,2)。
  • Gold(汇总层):面向业务口径的宽表与指标聚合,供 BI 与报表直接查询。示例:gold.daily_sales_by_region。
  • Platinum/Feature(服务层):面向机器学习特征、在线服务或对外数据产品的表,强调低延迟与版本可追溯。

分层不是形式主义,它直接决定迁移工作量:源系统表先映射到 Bronze,再按业务规则逐层加工。迁移评审时应确认每层的存储路径、表格式(Delta 或 Iceberg)、分区策略与保留周期,避免把源库的存储过程逻辑原样搬到 Gold 层造成口径混乱。

二、计算与存储分离:弹性与成本的关键

Lakehouse 的存储层是云对象存储(如 S3、ADLS Gen2、GCS),计算层是 Databricks 集群。两者通过 Delta 事务日志解耦,带来三个直接收益:计算可独立扩缩容、存储可独立生命周期管理、多计算引擎可并发读取同一份数据。迁移中需要重点确认的参数关系如下:

维度存储侧计算侧
扩缩容按容量与请求量扩展,通常无需停机按并发与数据量调整 Worker 数量,分钟级生效
成本构成存储费 + 请求费 + 跨区流量费DBU 计费 + 云虚拟机费
迁移关注点路径映射、权限继承、加密方式运行时版本、库依赖、Spark 配置

一个常见的误区是把“分离”理解为“存储与计算完全无关”。实际上,分区裁剪、文件大小(建议 128MB~1GB)、小文件合并(Optimize)都会显著影响计算扫描量。迁移后若查询变慢,优先检查表是否按过滤字段分区、是否存在大量小文件,而不是先加集群规格。

三、Unity Catalog:统一治理层

Unity Catalog(UC)是跨工作区的统一元数据与权限层,采用三级命名空间 catalog.schema.table。它把原先分散在各工作区 Hive Metastore 中的表、视图、函数、模型统一纳管,并提供列级与行级权限、数据血缘、审计日志。迁移时的关键动作包括:

  1. 为每个环境(dev/staging/prod)建立独立 Catalog,例如 prod_lakehouse、dev_lakehouse,避免环境串用。
  2. 用 Storage Credential 与 External Location 把云存储路径授权给 UC,再由 UC 授予 Schema 与表权限,替代原先的 IAM 直授。
  3. 把源库的账号角色映射为 UC 的 Group,遵循最小权限:分析师只读 Gold,数据工程师可写 Silver/Gold,Bronze 仅由摄取服务写入。
  4. 启用血缘与审计,确认从 Bronze 到 Gold 的上下游链路可追溯,满足合规与排障需求。
迁移检查点:若源系统使用数据库账号直连表,迁移后应改为“服务主体 + UC 授权”,避免把长期密钥写入 Notebook 或作业配置。

四、工作区与网络拓扑规划

工作区是用户、Notebook、作业与集群的组织单元,网络拓扑决定数据平面与控制平面的连通方式。生产环境推荐采用“客户托管 VPC/VNet + 私有链接”的部署模式:控制平面由 Databricks 托管,数据平面(计算集群)运行在客户自己的网络中,集群访问对象存储走 VPC Endpoint,避免流量经过公网。规划时需明确:

  • 区域选择:工作区区域应尽量靠近数据存储区域,减少跨区流量费与延迟。
  • 子网划分:为集群节点、Private Link Endpoint、NAT 网关分别划分子网,预留足够 IP 以支持弹性扩容。
  • 出站策略:限制集群对公网的出站访问,仅放行必要的包仓库与元数据端点。
  • 工作区隔离:按团队或环境拆分工作区,通过 UC 共享数据,而不是共享工作区凭据。

下面这张图把本节四个设计对象放在同一张拓扑中:存储层、计算层、UC 治理层以及工作区/网络边界,并标出数据流与授权流的方向,便于在方案评审时对照检查。

Databricks Lakehouse 目标架构与网络拓扑 客户托管 VPC / VNet(数据平面) 存储层(对象存储) Bronze 原始层 Silver 清洗层 Gold 汇总层 Delta / Iceberg 开放格式 计算层(弹性集群) SQL Warehouse(BI) Job Cluster(ETL) All-Purpose(探索) 按需扩缩容,分钟级生效 Unity Catalog 治理层 catalog.schema.table 列/行级权限 · 血缘 审计日志 · 服务主体 跨工作区统一授权 读 写 授权 External Location 授权访问存储路径 网络接入与安全边界 Private Link 控制平面私网接入 VPC Endpoint 对象存储私网访问 NAT 网关 受限出站白名单 子网划分 节点/端点分离 用户 / 作业 / BI 工具入口

评审这张图时,建议逐项确认:存储路径是否已通过 External Location 授权、计算集群是否运行在客户子网、UC 的 Catalog 是否按环境隔离、Private Link 是否覆盖控制平面与存储端点。任何一项缺失,都可能在迁移后表现为权限报错、跨区延迟或合规审计不通过。

五、迁移落地的架构决策清单

把上述设计固化为可执行的决策项,能显著降低迁移返工。以下清单可直接用于方案评审会:

决策项推荐取值(示例)判断依据
表格式Delta Lake(默认),跨引擎需求时评估 Iceberg是否需与外部引擎共享
Catalog 划分prod_lakehouse / dev_lakehouse环境隔离与权限边界
集群模式ETL 用 Job Cluster,BI 用 SQL Warehouse成本与并发特征
网络接入Private Link + VPC Endpoint合规与延迟要求
权限模型Group + 服务主体,最小权限审计与密钥管理

需要强调的是,目标架构不是一次性画完就冻结的图纸。迁移过程中若发现源系统存在大量存储过程、跨库 JOIN 或非标准数据类型,应回到分层与 UC 授权设计上做增量调整,而不是在 Gold 层堆叠临时逻辑。保持 Bronze 可重放、Silver 口径统一、Gold 面向消费,是 Lakehouse 迁移后长期可维护的基础。