为什么要分层:
- 简化复杂问题
如果不使用分层架构,那么系统操作的数据都是原始数据,基于这样数据源编写的SQL语句会复杂庞大,且在发生错误的时候不易定位源头
- 减少重复开发
通过数据分层,可以对中间层数据进行规范,能够减少大量的重复计算,增加结果的复用性。
- 隔离原始数据
解耦真实数据和计算数据
如何分层:
- ODS(原始数据层):用于存放用户使用业务系统,做相应操作产生的原始数据(日志数据、业务数据),不对数据做任何操作
- DWD(明细数据层):存储明细数据,对原始数据层的数据进行清洗整理,如去空值、脏数据、脱敏等。
- DWS(服务数据层):以DWD为基础提供一种公共的聚合程度,服务于下层业务需求,按天进行汇总。
- DWT(数据主题层):以DWS为基础,按特定主题(即累计值)进行汇报。
- ADS(数据应用层):为各种统计报表提供数据。
注意:数仓分层的方式并不是固定的,可以根据业务场景灵活设计。例如可以在DWD层后插入DWM(数据中间层,可以作为DWD和DWS之间的过渡层,对数据进行进一步的加工和整合)并去除DWT。
数据集市和数据仓库的区别:
数据集市是一种微型的数据仓库,存储的数据、主题、历史数据都更少一些,常在部门级进行使用。
数据仓库是企业级的,能为整个企业的各个部门提供支持