1、分层的目的
数仓分层是一套行之有效的数据组织和管理方法,使得数据体系更有序。
① 数据结构更清晰
每一个数据分层都有它的作用域和职责,在使用表的时候能更方便的定位和理解。
② 减少重复开发
规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
③ 统一数据口径
通过数据分层,提供统一的数据出口,统一对外输出的数据口径。
④ 复杂问题简单化
将一个复杂的任务分解成多个步骤完成,每一层解决特定的问题。
2、一种通用的数据分层设计
- ODS:存放原始数据
?直接接入的原始日期数据
?从业务库直接同步而来的数据 - DW:存放数仓中间层数据
?DWD:保留数据的原始粒度,在ODS的基础上,对数据进行加工和处理,提供更干净的数据
?DWM: 存放轻度汇总的数据,即保留的维度较多
?DWS:存放数据集市(宽表)数据,即高度汇总的数据
- APP:面向业务定制的应用数据
?业务个性化数据
?服务于特定的场景,复用性不强
3、各层涉及的计算引擎和存储系统

4、数据分层实现
我们常用的数据仓库的数据分层通常分为集市层、中间层、基础数据层上下三层结构。由传统的多层结构减少到上下三层结构的目的是为了压缩整体数据处理流程的长度,同时扁平化的数据处理流程有助于数据质量控制和数据运维。
在上下三层的结构的右侧,我们增加了流式数据,将其添加成数据体系的一部分。这是因为当前的数据应用方向会越来越关注数据的时效性,越实时的数据价值度越高。但是,由于流式数据集的采集、加工和管理的成本较高,一般都会按照需求驱动的方式建设;此外,考虑到成本因素,流式数据体系的结构更加扁平化,通常不会设计中间层。

4.1 数据基础层
- 数据采集:
- 数据清洗:
- 数据归类:
- 数据结构化:
- 数据规范化:
4.2 数据中间层
参考
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207543.html原文链接:https://javaforall.net
