事实表基础

事实表的类型

  1. 事务事实表
  2. 周期快照事实表
  3. 累计快照事实表

事实表的设计原则

  1. 尽快能多的包含于业务过程相关的事实
  2. 只选择与业务相关的事实
  3. 分解不可加事实为可加的组件
  4. 在选择维度和事实之前必须先声明粒度
  5. 在同一个事实表中不能含有不同粒度的事实
  6. 事实的单位要保持一致
  7. 对于事实的null值要进行处理
  8. 使用退化维度提高事实表的易用性

事实表的设计方法

  1. 选择业务过程及确定事实表类型
  2. 声明粒度
  3. 确定维度
  4. 确定事实
  5. 冗余维度

事物事实表

设计过程

  1. 选择业务过程
  2. 确定粒度
  3. 确定维度
  4. 确定事实
  5. 冗余维度

单事务事实表

  1. 即针对每一个业务过程建立一个事实表

多事务事实表

  1. 即不同的事实放在同一个事实表中,通常有两种处理方式
    a. 不同业务过程的事实使用不同的事实字段进行存放;例如支付时间、下单时间
    b. 不同业务过程的事实使用同一个字段存放,但是加业务过程标识来进行区分。例如是否支付
  2. 两种处理方式选择依据
    a. 当不同的业务过程度量比较相似,差异不大时,采用第二种方式
    b. 相反差异较大的时候选择第一种处理方式

单事务事实表与多事务事实表的对比

  1. 业务过程:需要看业务之间是否有关联关系,是否有相似性
  2. 粒度和维度:必须是相同的粒度,需要有相似的维度。
  3. 事实:如果单业务过程事实较多,同时不同业务过程事实又不相同,使用单事务事实表。
  4. 下游业务使用:单事务事实表下游使用更易理解。
  5. 计算存储成本:
    维度建模之事实表

事实的设计准则

  1. 事实的完整性
  2. 事实的一致性
  3. 事实的可加性

周期快照事实表

一些特性

  1. 有些事实是需要累计之前的事实才可以得到,比如账户余额等,买卖家等级等,
  2. 事务事实表的粒度有多种方式表达,但快照事实表一般以维度的形式表达,比如历史至今,本年至今等
  3. 事务事实表是稀疏的,快照事实表是稠密的
  4. 事务事实表是可加的,但快照事实表至少包含一个半可加事实
  5. 一般都可以使用事务事实表进行汇总产出。

一些实例

  1. 单维度的每天快照事实表,比如单种维度历史至今,自然月至今等
  2. 混合维度的每天快照事实表
  3. 全量快照事实表,比如淘宝评价事实表

注意事项

  1. 事物与快照成对设计
  2. 附加事实
  3. 周期到日期的度量

累计快照事实表

设计过程

  1. 概念,用于解决时间之间的时间间隔需求,类似于生命周期模型
  2. 选择业务过程,一般是选择完成的多个业务过程
  3. 确定粒度
  4. 确定维度
  5. 确定事实
  6. 退化维度

特点

  1. 数据不断的更新
  2. 多业务过程日期

物理实现

  1. 全量表的形式
  2. 全量表的变化形式,选择一个合适的时间间隔
  3. 以业务实体的结束时间分区
    a. 以业务实体的结束标志
    b. 与前端业务确定口径或使用全段归档策略

三种事实表的比较

维度建模之事实表

无事实事实表

  1. 事件类的,记录时间的发生。比如日志类的事实表。
  2. 条件、范围或资格类的,记录维度与维度多对多之间的关系。

聚集型事实表

  1. 其实就是汇总层数据
  2. 基本原则
    a. 一致性
    b. 避免但仪表的设计,不要再同一个表中处处不同层次的聚集数据
    c. 聚集粒度可以不同
  3. 聚集的基本步骤
    a. 确定聚集维度
    b. 确定一致性上钻
    c. 确定聚集事实

总结自《阿里大数据之路》

相关文章:

  • 2021-12-25
  • 2021-07-31
  • 2022-01-20
  • 2021-11-26
  • 2021-09-19
  • 2021-12-04
猜你喜欢
  • 2021-11-25
  • 2022-02-09
  • 2022-01-29
  • 2021-12-17
  • 2022-12-23
相关资源
相似解决方案