文档章节

数据仓库分层

 张欢19933
发布于 2016/09/12 11:48
字数 1241
阅读 255
收藏 4

为什么要对数据仓库分层:
a)用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;

b)如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大

c)通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。


数据仓库标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、MID(数据集市层)、APP(应用层)


ODS层:
为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存;


PDW层:
为数据仓库层,PDW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。这一层的数据一般是遵循数据库第三范式的,其数据粒度通常和ODS的粒度相同。在PDW层会保存BI系统中所有的历史数据,例如保存10年的数据。

MID层:
为数据集市层,这层数据是面向主题来组织数据的,通常是星形或雪花结构的数据。从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。从数据的时间跨度来说,通常是PDW层的一部分,主要的目的是为了满足用户分析的需求,而从分析的角度来说,用户通常只需要分析近几年(如近三年的数据)的即可。从数据的广度来说,仍然覆盖了所有业务数据。


APP层:
为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。从数据粒度来说是高度汇总的数据。从数据的广度来说,则并不一定会覆盖所有业务数据,而是MID层数据的一个真子集,从某种意义上来说是MID层数据的一个重复。从极端情况来说,可以为每一张报表在APP层构建一个模型来支持,达到以空间换时间的目的数据仓库的标准分层只是一个建议性质的标准,实际实施时需要根据实际情况确定数据仓库的分层,不同类型的数据也可能采取不同的分层方法。

---【补充】
数据缓存层:
用于存放接口方提供的原始数据的数据库层,此层的表结构与源数据保持基本一致,数据存放时间根据数据量大小和项目情况而定,如果数据量较大,可以只存近期数据,将历史数据进行备份。此层的目的在于数据的中转和备份。

核心数据层:
此层的数据在数据缓存层的基础上做了一定程度的整合,称之为数据集市,存储上仍是关系模型。此层的目的在于进行必要的数据整合为下一步多维模型做准备。


分析应用层:
此层的数据为根据业务分析需要构造的多维模型数据。数据可以直接用于分析展现。
说明:数据层次的划分可以根据实际项目需要进行裁剪,如果业务相对简单和独立,可以将核心数据层与分析应用层进行合并。另外,分析应用的数据可以来自多维模型的数据,也可以来自关系模型数据甚至原始数据。

本文转载自:http://ierda.blog.163.com/blog/static/77469587201326105956470/

上一篇: ODS
粉丝 46
博文 538
码字总数 247200
作品 0
海淀
私信 提问
数仓的一些基本概念、处理流程及基础架构

BI/数据仓库/数据分析 基础入门:一些常见概念解释 什么是数据仓库? 数据仓库的架构 数据仓库多维数据模型的设计 数据仓库的架构以及数据分层 数仓的基本操作 数据仓库模型 数据建模相关 数...

hblt-j
2018/07/06
267
0
数据仓库实践之业务数据矩阵的设计

0x00 概述 数据仓库的设计不能完全依赖于业务的需求,但又必须服务于业务的价值。那么,该如何地从业务的角度出发,设计一套切实可行的数据仓库呢? 本文将分享数据仓库实践中的业务数据矩阵...

木东居士
03/10
0
0
数据仓库中的DWD DWB DWS

DW :data warehouse 翻译成数据仓库 DW数据分层,由下到上为 DWD,DWB,DWS DWD:data warehouse detail 细节数据层,有的也称为 ODS层,是业务层与数据仓库的隔离层 DWB:data warehouse ba...

张欢19933
2016/09/09
3.1K
0
数据仓库的架构与设计

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有: 什么是数据仓库? 数据...

Trigl
2017/04/01
0
0
宇润/YurunPHP

简介 YurunPHP是一款MVC开源PHP框架,它的一切都是根据实际项目需求总结归纳而出,力争减少开发者在项目开发中的重复工作量。它经历了许多大小项目的考验(其中不乏年销售额上亿的系统),不...

宇润
2017/01/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
4
0
程序性能checklist

程序性能checklist

Moks角木
昨天
6
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
5
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
6
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部