数仓架构、模型设计与优化、开发规范

数仓架构

1、数仓架构分3部分:业务层、数仓层(细分:ods/dwd[dim]/dws/ads)、业务调用层
2、数仓层只做数据清洗、数仓建模,不涉及业务调用相关的内容
w’t# 模型设计思路总结
1、设计单一业务过程事实表扩展计算某个指标[事实表可能会进行维度退化,要结合查询性能和数据存储考虑(详细说说?待补充)]
2、设计大宽表计算跨多个业务过程的复杂指标[要考虑下游模型调用的频次、存储空间、查询性能来判断(详细说说?待补充)
3、周期快照表设计方式?(分区、字段设计),应用场景?
4、拉链表的设计方式?(分区、字段设计),应用场景?

5、设计大宽表时,把每个表的主键id加进去,方便排查和追溯
6、dws 层计算尽量不要要多事实表关联聚合,若需要跨多业务过程计算指标可以考虑库设计dwd明细宽表(特别是实时数仓,可以避免业务过程数据频繁更新导致状态过大和数据乱序问题)

数据存储设计

1、ods层:尽量与业务模型保持一致,使用行式存储与压缩(采用行级存储压缩的原因是因为dwd基于ods的计算一般都是全表扫描,使用行级存储可以加快查询与计算性能)
2、dwd层只包括明细指标、按列式存储压缩(dws基于dwd计算大多数情况下,只会查询部分字段进行聚合,而且可能会提前过滤数据,用列式存储可以加快数据过滤(因为列式存储有索引))
3、dws层:按通用维度做轻度聚合、按列存储压缩
4、ads层:因为提供外部应用查询,一般是按行查询,可以使用行式存储
行列存储参考:https://blog.csdn.net/weixin_36755535/article/details/126579818

开发规范

表名定义规范

/

字段命名(字段类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值