数仓分层架构如何设计?
刚接触数据仓库之前,小白我就有一个疑问,数据仓库为什么分层?难道我一一层不能把所有逻辑都写完吗?大佬口中的ODS,DW到底是什么含义?经过长时间的工作,也有了自己的理解,跟着小白探索数据分层的真谛。
为什么要分层?
首先,数据仓库为什么分层?
- 对于较复杂的的逻辑处理,分层可以清晰的看出数据结构,每一个分层都有它的作用域,在开发人员使用表时能够方便的定位和理解;
- 分层利于开发人员快速定位问题,并清除问题的影响范围,可以快速追踪数据血缘;
- 规范化的分层,开发一些通用的中间层数据模型,能够减少极大的工作量,提供数据模型的复用性;
- 数仓分层可以用空间换时间,把一个复杂的问题分层次解决,在数仓的各层解决不同的问题。
分层的核心思想?
分层的核心思想就是解耦,把复杂的问题简单化,这直接影响了数据架构到底分几层。
数据架构分一层可以吗?
答案是可以。我们可以在一个脚本中进行多表加工融合,这也是当前很多“小作坊”比较流行的做法,但是这种逻辑会牵一发而动全身,如果一个点发生变化,都可能要修改