Appearance
ClickHouse 宽表和分层模型怎么选:一张大宽表不是所有场景都合适
做 ClickHouse 时,很多团队早期都会倾向于:
- 搞一张大宽表
原因也很简单:
- 查起来方便
- 看起来字段很全
- 接口开发很直接
但数据规模一大,这种设计会慢慢暴露问题。
先说结论
宽表适合:
- 固定口径
- 查询维度稳定
- 面向少数核心看板
分层模型更适合:
- 多种报表口径
- 明细追查和汇总分析并存
- 业务持续变化
一、宽表为什么前期很好用
因为它最大的优点就是:
- 简单
查数时不需要想太多层次,很多指标一张表就能出。
二、宽表为什么后期容易变重
因为一旦业务变化,宽表通常会不断出现:
- 字段膨胀
- 更新复杂
- 维护口径困难
最后很容易变成:
- 什么都想放
- 什么都能查
- 但什么都越来越重
三、分层模型的价值在哪里
分层并不是为了“看起来专业”,而是为了把职责拆开:
- 明细层留原始事实
- 汇总层承接固定指标
- 应用层直接服务看板
这样查询和维护边界会清楚很多。
四、什么时候更适合做分层
如果你已经出现这些情况,就很适合分层:
- 同一份数据要支持多类报表
- 明细查询和看板查询同时存在
- 指标口径经常调整
一句话总结
ClickHouse 里宽表不是不能用,但如果你已经在做长期数据链路,通常更稳妥的是:
- 宽表用在明确场景
- 分层用来承接长期演进