数仓分层(原因,结构及实践理解)

Posted on 2021-03-13 19:21  SinkingInBigData  阅读(808)  评论(0)    收藏  举报

数仓分层

 

分层原因

1.复杂问题简单化:

将一个复杂的任务分解成多个步骤完成,每一层只处理单一的步骤。

2.数据结构清晰:

每一个数据分层都有它的作用域,这样在使用表的时候更方便定位和理解。

同时也便于维护数据准确性,当数据出现问题,不用修复所有数据,只需要修复有问题的分层。

3.提高数据复用性:

规范数据分层,通过中间层数据,能极大地减少重复计算。

 

数仓常用分层结构

1.ods层:

原始数据层,存放原始数据,不做任何处理

2.dwd层:

结构,粒度与ods一致,但进行了清晰,数据质量有保证

3.dws层:

dwd层为基础进行轻度汇总(一般汇总到日周月,用户等)

4.dm

统计报表,面向实际需求

 

 

维度建模理论下的数仓分层

1.ODS层:如果来源为数据库,一般会遵循范式建模,数据不冗余

2.DW层: 维度建模

i.设计原则:

一致性维度规范:公共层的维度表中相同维度属性在物理表中的字段名称,字段类型,数据内容需保持一致

维度组合与拆分:将业务描述相关性强的字段在一个物理维表实现。

ii.DWD层:

将数据清洗,规范化,加工成面向数仓的基础明细表。在DWD 层会根据维度模型,设计事实表和维度表。

iii.DWS层:

轻度聚合(从ODS或DWD),粒度比明细稍粗

iv.DIM维度层:

大量的维表构成,包括稳定维度维表(如时间)和渐变维度维表(如用户)。

维度表设计的核心是确定维度字段,维度字段是查询约束条件(where)、分组条件(group)、排序 (order),与报表标签的基本来源。同时维度表一般为单一主键,通常比较宽。

3.DM层(APP层):

根据业务需要,由前面数据统计而来的结果,导出使用。