
本文字数:5739;估计阅读时间:15 分钟
作者: PME Team
本文在公众号【ClickHouseInc】首发

在大规模数据工程中,高效地整理、转换和分析数据集是核心任务。Medallion 架构是一种广泛应用的数据工作流设计模式,利用分层转换方法来组织数据并提高其质量。传统上,人们使用 Spark 和 Delta Lake 等工具来实现这一流程,从原始、杂乱的数据中系统地提取出干净且高质量的数据集,供最终用户分析和使用。
本文将探讨如何通过原生的 ClickHouse 功能来实现 Medallion 架构,从而完全摆脱对外部框架或工具的依赖。凭借其卓越的查询性能、对多种数据格式的广泛支持,以及内置的数据管理与转换能力,ClickHouse 可以高效支持该架构的每个阶段。
本文主要从理论上介绍如何使用 ClickHouse 构建 Medallion 架构的三个阶段。在后续文章中,我们将通过 Bluesky 数据集的实时流,实际演示这一过程。Bluesky 数据集包含许多常见的数据问题,例如事件格式错误、高重复率和时间戳不一致,是展示本文所述流程的理想案例。
什么是 Medallion 架构?
Medallion 架构是一种被广泛采用的数据工作流设计模式,通过分层结构逐步提升数据质量。在这一架构中,数据会依次经过不同的处理阶段,最终转变为高质量数据。虽然 Medallion 架构常用于数据湖仓 (data lake house),但它也适用于实时数据仓库,可用于实现高效的数据管理与转换。

这一架构分为三个主要层级 (或阶段),每一层在数据管道中都承担着不同的任务:
-
Bronze 层 - 这一层是原始数据的“着陆区”,直接从数据源导入,类似“暂存区”。数据以其原始结构存储,仅经过最小化的转换,并附加了必要的元数据。该层设计侧重于快速的数据摄取,同时还充当源数据的历史存档,可随时用于重新处理或调试。
关于是否需要在 Bronze 层存储所有数据,业界尚有争议。一些用户倾向于对数据进行初步处理,例如展平 JSON、重命名字段或过滤掉不合格的数据。我们建议将此层优化为仅供 Silver 层使用,而不是直接为其他消费者提供数据。
-
Silver 层 -

最低0.47元/天 解锁文章
1370

被折叠的 条评论
为什么被折叠?



