使用 ClickHouse 实现 Medallion 架构

图片

本文字数: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 层 -

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值