数据仓库【纬度建模】

一、基本概念

1、基本概念

    维度建模是由 Ralph Kimball 提出,他提出将数据仓库中的表划分为事实表和维度表两种类型,专门用于分析型数据库、数据仓库、数据集市建模的方法,数据集市可以理解为是一种"小型数据仓库”。

2、事实表

2.1 事实表概述

    事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值、半可加事实和不可加事实。事实表产生于业务过程中而不是业务过程的描述性信息。它一般是行多列少,占了数据仓库的90%的空间。在维度模型中也有表示多对多关系的事实,其他都是维度表。 

2.2 事实表粒度  

    在事实表的设计时,一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。

2.3 事实表设计原则

  • 尽可能包含所有业务与业务过程相关的事实
  • 只选择与业务过程相关的事实
  • 分解不可加性事实为可加的组件
  • 在选择维度和事实之前必须声明粒度
  • 在同一个事实表中不能有多种不同粒度的事实
  • 事实的单位要保持一致
  • 对事实的null值要处理
  • 使用退化维度提高事实表的易用性

2.4 事实表的分类

  • 维度建模数仓领域中的事实表分以下三种:事务事实表,周期快照事实表,累计事实表。
  • 事务事实表:它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表。
  • 周期快照事实表:它是按照良好的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充,而非替代品。
  • 累积快照事实表:它用于描述业务过程中某个不确定时间跨度里的活动,它随着业务活动的发生会不断的更新。
2.4.1 事务事实表
    事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。由于事实表具有稀疏性质 ,因此只有当天数据才会进入 当天的事实表中,相当于每个分区里面都是每天的数据,不包含之前的数据。 
说明1: 什么是稀疏表,什么是稠密表?
    稀疏表:当天只有发生了操作才会有记录
    稠密表:当天没有操作也会有记录,便于下游使用
说明2:为什么事务事实表具有稀疏性质?
    事实表一般围绕着度量来建立,当度量产生的时候,事实记录就生成了。度量可以是销售数量、交易流水值、月末节余等数值。如果同时生成多个度量值的话,我们可以在一个事实表中建立多个事实。当我们的事实表中的事实比较多时,有可能多个事实不同时发生,如果同时生成的几率很小,我们称之为稀疏事实表(Sparse Facts)。
2.4.2 周期快照事实表
    周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,时间间隔如每天、每月、每年等等。典型的例子如销售日快照表、库存日快照表等。它统计的是间隔周期内的度量统计,如历史至今、自然年至今、季度至今等等。
    周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表,比如说时间周期是1周,那么这个周期快照事实表的一条记录就是这一周的对于某个度量的统计值。
    周期快照事实表的维度个数比事务事实表要少,但是记录的事实要比事务事实表多(为什么记录的事会比事务事实表表多呢:事务事实表是稀疏表,周期快照表是稠密表)
2.4.3 累计快照事实表
    累积快照事实表和周期快照事实表有些相似之处,它们存储的都是事务数据的快照信息。但是它们之间也有着很大的不同,周期快照事实表记录确定的周期数据,而累积快照事实表记录的不确定的周期的数据。
    周期快照事实表记录的是重复的可预测到的时间间隔的事实,例如帐户月结余事实表,用来记录每个月末的帐户结余信息。一般周期快照的数据会按报表需要的周期进行记录,比较适合周期长一些的情况。
    而累计快照适用于较短周期,有着明确的开始和结束状态的过程,如一个订单执行的过程,并记录过程中每个步骤的执行时间,使分析人员对执行的过程有整体的把握。周期快照事实表记录上每个步骤的执行时间是逐步建立的,随着执行的过程逐步更新的事实表中。
2
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
维度建模和范式建模在数据建模中有一些区别。维度建模是面向分析场景而生的,它重点关注快速、灵活地解决分析需求,并提供大规模数据的快速响应性能。维度建模不需要完整地梳理企业业务流程和数据,实施周期根据主题边界而定,容易快速实现,适合互联网行业的特点。维度建模主要采用星型模型,其中包含一个中心事实表和多个维度表,维度表包含与事实表相关的维度属性。\[3\] 范式建模则强调实体-关系模型,它通过将数据分解为多个关系表来消除冗余和数据不一致性。范式建模能够保证数据的一致性,但在分析场景下可能会导致数据口径不一致的问题。例如,如果将省份和城市作为单独的维度进行建模,可能会导致数据结果不准确。\[2\] 在实际应用中,可以将维度建模和范式建模进行混合使用,以发挥它们各自的优势。这样可以在满足分析需求的同时保证数据的一致性。混合建模方式可以根据具体情况来选择,以达到最佳的数据建模效果。\[4\] #### 引用[.reference_title] - *1* *3* [我对维度建模和范式建模的一点理解](https://blog.csdn.net/hsl971105/article/details/108165215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [维度建模和范式建模对比](https://blog.csdn.net/wj1298250240/article/details/115705755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值