数据仓库与数据集市

数仓建模:关系建模,维度建模,范式建模

关系建模有点像维度建模里的雪花模型:关系模型主要应用与OLTP 系统中,为了保证数据的一致性以及避免冗余,所以大部分业务系统的表都是遵循第三范式的。
维度建模分为星形模型,雪花模型,星座模型:主要应用于OLAP 系统中,通常以某一个或多个事实表为中心进行维表的组织,主要面向业务,特征是可能存在数据的冗余,但是能方便的得到数据。

维度模型建模,把相关各种表整理成两种:事实表和维度表两种(维度表围绕着事实表)。

数据分层:数据模型分为三层:数据操作层(ODS)、数据仓库层(DW)和数据应用层(APP)
1)数据操作层(ODS)

数据操作层又叫数据运营层,英文:Opertional Data Source。数据操作层是最接近数据源中数据的一层,数据源中的数据,经过 ETL(即抽取、转换、装载),装入本层。本层中的数据,大多是按照源业务系统的分类方式而分类的。

由于该层是最接近数据源的,所以不建议对该层数据做过多的数据清洗工作,原封不动地接入原始数据就行,至于数据的去噪、去重、去异常值等操作可以放在后面的 DWD 层来做。

2)数据仓库层(DW)
数据仓库层,英文:Data Warehouse,是笔者在设计数据仓库时要核心设计的一层。在这里,从 ODS 层获得的数据按照主题建立各种的数据模型。DW 层又要细分为 DWD(Data Warehouse Detail)层、DWM(Data Warehouse Middle)层和 DWS(Data Warehouse Service)层,
(1)数据明细层(DWD)

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

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

(2)数据中间层(DWM)

数据中间层,英文:Data Warehouse Middle,该层会在 DWD 层的数据基础上,对数据做轻度的聚合,生成一系列的中间表,提升公共指标的复用性,减少重复加工。直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。

(3)数据服务层(DWS)

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

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

在实际计算中,如果直接从 DWD 或者 ODS 计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的中间表,然后再拼接成一张 DWS 的宽表。由于宽和窄的界限不易界定,也可以去掉 DWM 这一层,只留 DWS 层,将所有的数据放在 DWS 亦可。

3)数据应用层(APP)

数据应用层,英文:Application,该层主要提供给数据产品和数据分析使用的数据。该层的数据一般会存放在 Redis、PostgreSql 等共线上系统使用的系统,也可能会存放在 Hive、Druid 中供数据分析和数据挖掘使用,比如报表数据就可以存放在 Hive 中。

4)维度层(DIM)

维度层,英文:Dimension。建立一致数据分析维表,可以降低数据计算口径和算法不统一风险。以维度作为建模驱动,基于每个维度的业务含义,通过定义维度及维度主键,添加维度属性、关联维度等定义计算逻辑和雪花模型,完成属性定义的过程并建立一致的数据分析维表。同时笔者可以定义维度主子关系,子维度的属性将合并至主维度使用,进一步保证维度的一致性和便捷使用性。

维度层包含两个部分:

(1)高基数维度数据:一般是用户资料表、商品资料表类似的资料表,数据量可以上千万甚至上亿。

(2)低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维度表,数据量大概在几千到几万之间。

整个流程,首先是分层,再次建模,最后在建模里面选择模型

美团结构:
目前买菜数据组数仓有四个一级分层,分别为数据源,数据仓库,数据集市,数据应用

数据源接收四类数据:业务数据,业务日志,手工上传,配置信息;数据源不开放权限,也无对应的建模方式,只保存明细数据本身

数据仓库层使用维度建模的方式,将ODS的数据分别抽取成事实表和维表,且有基础主题层这个二级分层。基础主题层数据应尽可能减少维度退化,一般按照业务过程划分主题

数据集市层同样使用维度建模的方式,将DW的数据抽取成为面向分析需求的分析维度表和分析主题表,其中分析主题表多做维度退化

数据应用层的数据可能来自集市层或仓库层,主要是面向个性化的使用场景,一般来说不会涉及明细数据,通常上卷到特定维度的聚合值

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值