数据仓库的分层

离线数仓

  • 一、数仓分层
    • 源数据层(ODS)
    • 数据仓库层(DW)
      • 1.明细层(DWD)
      • 2.中间层(DWM)
      • 3.业务层(DWS)
    • 公共维度层(DIM)
    • 数据展示层(DA层)

数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。
用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。

一、数仓分层

源数据层(ODS)

此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;
为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备,用来保管我们的原始数据的。
①保持数据原貌不做任何修改,起到备份数据的作用
②数据采用压缩,减少磁盘存储空间(如:原始数据100G,可以压缩到10G左右)
③创建分区表,防止后续的全表扫描

数据仓库层(DW)

DW层的数据是一致的、准确的、干净的数据,即对源数据进行了清洗(去除了杂质)后的数据。主要是用于面向数据分析的,大部分的工作,都是在这一层,写sql。其中DW层又可以被细分为三层:

1.明细层(DWD)

根据业务要求,将OSD数据抽取到DW层,形成一份最详细的明细数据,同时该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。
(本层能够存放事实表,保存各个业务过程最小粒度的操作记录)

2.中间层(DWM)

对DWD层的数据根据某些维度进行聚合操作,形成一份中间表数据。
例如: 我们按照对事实表分别按照 年 月 日 小时统计操作 (即周期快照事实表)
需求:
统计每年每月每天每小时的访问量

统计每年每月每天访问量

统计每年每月访问量

统计每年访问量

如果没有中间表,每一次都需要找事务事实表,进行一次聚合操作,如果有中间表,可以先在中间表为其按照小时聚合统计形成一份结果数据,后续统计每年每月每天访问量的时候,只需要将每小时对应累加在一起即可(即不再通过查表的具体时刻相聚和的形式)

3.业务层(DWS)

作用:主要是对DWD 和DWM层数据进行聚合统一操作,这一次聚合统计是需要将各个维度的数据都要细化统计出来,按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询。
(提醒:这一层在大多数情况已经是最终结果数据了)
(本层数据存储的是根据上层指标需求所构建出来的表,目的是为了减少重复计算,存储需求公用的数据表)

公共维度层(DIM)

基于维度建模理论进行构建,存放维度模型中的维度表,保存一致性维度信息。

数据展示层(DA层)

前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。数据的报表展示。

值得注意的是数仓的分层没有确定的层数,需要根据实际情况对数仓进行分层。

你可能感兴趣的:(数据仓库,数据库,大数据)