第17天:在 Spark 中使用 Bronze–Silver–Gold 架构构建真实的 ETL 流水线

发布: (2025年12月18日 GMT+8 00:54)
2 min read
原文: Dev.to

Source: Dev.to

Cover image for Day 17: Building a Real ETL Pipeline in Spark Using Bronze–Silver–Gold Architecture

欢迎来到 Spark Mastery 系列的第 17 天。
今天你将构建大多数数据工程师在生产环境中实际使用的分层 ETL 流水线——使用 Spark 和 Delta Lake 的层级架构。

为什么使用 Bronze–Silver–Gold?

没有分层

  • 调试困难
  • 数据质量问题会传播
  • 重新处理非常痛苦

有分层

  • 每一层只承担一种职责
  • 故障被隔离
  • 流水线易于维护

Bronze 层 — 原始数据

目的

  • 按原样存储收到的原始数据
  • 不做任何转换
  • 仅追加写入

好处

  • 可审计性
  • 可重放性

Silver 层 — 清洗 & 规范化数据

目的

  • 去重
  • 强制 schema
  • 应用业务规则

这里是数据质量的所在。

Gold 层 — 业务指标

目的

  • 聚合指标
  • KPI
  • 事实表和维度表

使用方

  • BI 工具
  • 仪表盘
  • 机器学习特征

实际零售案例

层级示例转换
Bronzeorder_id, customer_id, amount, updated_at
Silver- 保留每个 order_id 的最新记录
- 删除负数金额
Gold- 日收入
- 每日订单总数

为什么 Delta Lake 在这里完美适配

  • ACID 写入
  • MERGE 用于增量加载
  • 时间旅行(Time travel)便于调试
  • Schema 演进
  • 非常适合分层 ETL

总结

  • Bronze–Silver–Gold 架构
  • 使用 Spark 的端到端 ETL
  • 使用窗口函数进行去重
  • 业务聚合逻辑
  • 生产环境最佳实践
Back to Blog

相关文章

阅读更多 »