1.为什么要设计数据分层?
* 数据建设刚起步,大部分的数据经过粗暴的数据接入后就直接对接业务。
* 数据建设发展到一定阶段,发现数据的使用杂乱无章,各种业务都是从原始数据直接计算而得。
* 各种重复计算,严重浪费了计算资源,需要优化性能。
2.我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:
* 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
* 数据血缘追踪:简单来讲可以这样理解,我们最终给业务呈现的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
* 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
* 复杂问题简化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
* 屏蔽异常数据:定位、记录原始数据的异常、屏蔽业务的影响,不必每改一次业务重新接入一次数据,浪费资源。
3.数据体系中的各个表的依赖就像是电线的流向一样,我们都希望它是规整、流向清晰、便于管理的,如下图: