第17天:在 Spark 中使用 Bronze–Silver–Gold 架构构建真实的 ETL 流水线
发布: (2025年12月18日 GMT+8 00:54)
2 min read
原文: Dev.to
Source: Dev.to

欢迎来到 Spark Mastery 系列的第 17 天。
今天你将构建大多数数据工程师在生产环境中实际使用的分层 ETL 流水线——使用 Spark 和 Delta Lake 的层级架构。
为什么使用 Bronze–Silver–Gold?
没有分层
- 调试困难
- 数据质量问题会传播
- 重新处理非常痛苦
有分层
- 每一层只承担一种职责
- 故障被隔离
- 流水线易于维护
Bronze 层 — 原始数据
目的
- 按原样存储收到的原始数据
- 不做任何转换
- 仅追加写入
好处
- 可审计性
- 可重放性
Silver 层 — 清洗 & 规范化数据
目的
- 去重
- 强制 schema
- 应用业务规则
这里是数据质量的所在。
Gold 层 — 业务指标
目的
- 聚合指标
- KPI
- 事实表和维度表
使用方
- BI 工具
- 仪表盘
- 机器学习特征
实际零售案例
| 层级 | 示例转换 |
|---|---|
| Bronze | order_id, customer_id, amount, updated_at |
| Silver | - 保留每个 order_id 的最新记录- 删除负数金额 |
| Gold | - 日收入 - 每日订单总数 |
为什么 Delta Lake 在这里完美适配
- ACID 写入
MERGE用于增量加载- 时间旅行(Time travel)便于调试
- Schema 演进
- 非常适合分层 ETL
总结
- Bronze–Silver–Gold 架构
- 使用 Spark 的端到端 ETL
- 使用窗口函数进行去重
- 业务聚合逻辑
- 生产环境最佳实践