数据仓库数据分层
刚开始学习,希望多多指教!
先谈谈为什么要进行数据分层?
- 用空间换时间。通过大量的预处理来提升应用系统的效率。
- 如果不分层的话,源业务系统的业务需求发生变化时,会影响整个数据的清洗过程,到时候工作量特别大。
- 可以简化数据清洗的过程。就好比把原先的一整块分成了好多小片,逐一进行清理,很明显能够使清理过程条理更加清晰。
数据仓库数据分层总共有四层:ODS(临时存储层),PDW(数据仓库层),DM(数据集市层),APP(应用层)
ODS:
接口数据的临时存储层,简化后续数据处理加工的工作,数据粒度(类似数据库中的字段)属于最小。因为与数据库的结构一样,满足范式,所以数据粒度属于最小。其中又分了两种:一种用来存储当前需要加载的数据,一种用来存储处理后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存;
PDW:
对原系统进行了清洗后的数据,PDW层的数据应该是一致的、准确的、干净的数据。在PDW层会保存BI(商务智能)系统中所有的历史数据,例如保存10年的数据。
DM
通常时星型或雪花结构。面向主题来组织数据的。从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。主要的目的是为了满足用户分析的需求。
APP
为了满足具体的分析需求而构建的,也就是面向具体的软件实现。从数据粒度来说是高度汇总的数据。实际实施时需要根据实际情况确定数据仓库的分层,不同类型的数据也可能采取不同的分层方法。