数据仓库为什么分层
数据仓库分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:
- 数据血缘追踪:
当上层应用型数据出问题的时候,可以溯源到问题的根源,能快速定位问题所在。 - 减少重复开发:
分层后,中间层的数据可以供应用层重复使用,不用每次有新的需求都要从底层数据开始开发。 - 把复杂的问题简单化:
将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。 - 屏蔽业务的影响:
不必改一次业务就需要重新接入数据
数据仓库分几层
最近看了很多关于数据仓库分层的文章,有的说要分三层、有的四层、五层…我觉得吧,分多少层主要是看业务还有自己数据仓库的规模,但是最低也要有三层,分别是源数据层(ODS)、数据层库层(DW)和数据应用层(APP)。如果数据仓库的规模比较大,或者数据仓库业务比较复杂的话可以细分成更多层。
为什么最低分三层
为什么最低要分三层呢?在实际的生产环境中,数据仓库的数据一般会有多个来源,数据可能比较乱,有很多的脏数据,数据的单位可能会不一样等原因,我们要对数据进行分析或者对数据进行聚合等操作显然不那么方便,这时候我们在数据仓库设计一层专门存储原始数据,然后把数据进行ETL(数据抽取、数据转换和数据加载),然后再存储进数据仓库层,这样在数据仓库层的数据就比较干净、统一、比较好分析。如果没有原始数据层,数据采集回来直接进行ETL就进入数据仓库层,虽然是减少了数据的冗余度,但是当数据出现问题时,要溯源的话就很麻烦,所以原始数据层存在是很有必要的。
在数据仓库层的数据虽然比较干净、统一,但是这样的数据对于我们来说还是比较难看懂的,比如我们想要查看日活、月活等指标还是看不出来的,很难应用到实际问题中,所以我们要设计一层应用层,使得这层的数据我们拿来可以直接用的,所以我们可以在数据仓库层的基础上,再通过分析,得出更加详细的数据。
总结
通过上述三层模型,基本就能满足数据仓库的日常使用了,但是如果业务比较复杂的话,这样的设计肯定满足不了的,所以还要在此基础上再细分出更多层。