数据仓库详解:包括概念、架构及设计

查看数: 28096 | 评论数: 7 | 收藏 10
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-4-2 19:52

正文摘要:

本帖最后由 fc013 于 2017-4-2 21:57 编辑 问题导读: 1.什么是数据仓库?2.数据仓库的架构是怎样的?3.怎样设计数据仓库的模型? 1. 什么是数据仓库 1.1 数据仓库的概念官方定义 数据仓库 ...

回复

pig2 发表于 2020-12-24 17:50:34
本帖最后由 pig2 于 2020-12-24 17:51 编辑

继续补充:


为什么要分层

我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

  • 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
  • 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  • 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  • 把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  • 屏蔽原始数据的异常。
  • 屏蔽业务的影响,不必改一次业务就需要重新接入数据。

数据仓库层:DW(Data Warehouse)
数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。DW层又细分为 DWD(Data Warehouse Detail)层、DWM(Data WareHouse Middle)层和DWS(Data WareHouse Servce)层。

1. 数据明细层:DWD(Data Warehouse Detail)

该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。

另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性,后文会举例说明。

2. 数据中间层:DWM(Data WareHouse Middle)

该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。

直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。

3. 数据服务层:DWS(Data WareHouse Servce)

又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。

一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。
acelearn 发表于 2017-4-10 15:02:46
算是不错的汇总了,不过还是需要看书才能见多识广,谢谢楼主分享!!!
醉半城 发表于 2017-4-5 14:11:40
不错不错
巅峰142斤 发表于 2017-4-4 12:35:39
nice 总结的很好,谢谢了
VictorZan 发表于 2017-4-3 17:00:13
谢谢分享
美丽天空 发表于 2017-4-3 13:45:50
感谢分享
DataNerd 发表于 2017-4-2 23:27:51
谢谢分享
关闭

推荐上一条 /2 下一条