数据仓库分层模型

1.为什么分层?

1.空间换时间

2.便于计算

3.逻辑清晰

2.分层划分

业务数据库(mysql,mongdb,oracle数据源)===>也叫src层

ODS(可操作数据层)

DW(数据仓库层)

DWD层 (数据明细层)

    负责数据的最细粒度的数据

    经过了ODS层清洗(去空),去重,去燥,去除大于或者小于一定阈值的明细数据。

DWM层 (数据中间层)

      在DWD层基础上,进行轻度汇总,结合常用维度(时间,地点,组织层级,用户,商品等)

DWS层(数据汇总层)宽表

    面向主题的汇总,维度相对来说比较少

   高度聚合的指标

    电商为例,以人这个主题。人(用户):当前人登录次数,浏览次数,购买次数,访问频度等。

DAS(数据应用服务层)

    业务主题,提供业务应用的数据准备。

BDM 层(源数据层):缓冲数据,源数据的直接映射         

FDM 层(对 BDM 源数据层的数据进行清洗和预处理):基础数据层,数据拉链处理、分区处理    GDM 层(对 FDM 层数据 进行统计一些指标数据):通用聚合

ADM 层(对 GDM 层指标数据 进行指标数据的业务汇总分析):高度聚合

2.Hive(十)Hive性能调优总结

Hive(十)Hive性能调优总结 - Frankdeng - 博客园

Hive调优(语法与参数层面优化)_吃果冻不吐果冻皮-CSDN博客

3.数据仓库分层实现

基于大数据的数据仓库分层实现 - CXY的大数据实践田

详解大数据数据仓库分层架构_慕课手记

4.数仓建模

数据仓库之数据模型 – lxw的大数据田地

2.1为什么分层

为什么要分层?

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

ODS层

ODS(Operational Data Store)操作数据存储

是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层;一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。

ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。

历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存;

数据在装入本层前需要做以下工作:

  • 去噪(例如去掉明显偏离正常水平的银行刷卡信息)
  • 去重(例如银行账户信息、公安局人口信息中均含有人的姓名,但是只保留一份即可)
  • 提脏(例如有的人的银行卡被盗刷,在十分钟内同时有两笔分别在中国和日本的刷卡信息,这便是脏数据)
  • 业务提取
  • 单位统一
  • 砍字段(例如用于支撑前端系统工作,但是在数据挖掘中不需要的字段)
  • 业务判别

DW层

数据仓库层(DW),是数据仓库的主体

通常按照主题建立各种数据模型,如:星形或雪花结构等;

有关维度建模的方法及星型、雪花模型等请参考《维度建模法

在PDW层会保存BI系统中所有的历史数据,例如保存10年的数据。

DM层

数据集市层(DM)date market,又称DWS, data warehouse service或主题层,存放的是轻度聚合的数据。

通常根据业务需求,划分成流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。

从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。从数据的时间跨度来说,通常是DW层的一部分,主要的目的是为了满足用户分析的需求,而从分析的角度来说,用户通常只需要分析近几年(如近三年的数据)的即可。从数据的广度来说,仍然覆盖了所有业务数据。

APP层

数据产品层(APP),这一层是提供为数据产品使用的结果数据。

从数据粒度来说是高度汇总的数据。从数据的广度来说,则并不一定会覆盖所有业务数据。从极端情况来说,可以为每一张报表在APP层构建一个模型来支持,达到以空间换时间的目的。

应用层是根据业务需要,由前面三层数据统计而出的结果,可以直接提供查询展现,或导入至Mysql中使用。

需要一个管理元数据信息的系统 能够提供方便的元数据的操作和查询操作

主要是提供给数据产品和数据分析使用的数据,一般会存放在es、mysql等系统中供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用

我们经常说的报表数据,或者说那种大宽表,一般就放在这里

数据仓库的标准分层只是一个建议性质的标准,实际实施时需要根据实际情况确定数据仓库的分层,不同类型的数据也可能采取不同的分层方法。

三层模型

Buffer数据缓存层

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

其它两次与四层模型类似,只是把更多逻辑放在了DW层里

  • 4
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值