天天看点

B. 数据仓库 --- 建模技术 --- 基本概念B. 数据仓库 — 建模技术 — 基本概念

B. 数据仓库 — 建模技术 — 基本概念

基本概念

  • 收集业务需求与数据实现
  • 协作维度建模研讨:需要业务经验丰富的领域专家参与
  • 维度设计
  • 基于关系型数据的星型模式与OLAP多维数据库

事实表

  • 事实表结构
    • 一行对应一个度量事件
    • 外键,用于关联与之相关的维度,也包含可选的退化维度和日期/时间戳
  • 操作特性
    • 可加性度量:按照与事实表关联的任意维度汇总
    • 半可加性度量:对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加事实。
    • 不可加性度量:比如说比率。处理这种情况的方法之一,尽可能存储非可加度量的完全可加的分量,并在计算出最终的非可加事实前,将这些分量汇总到最终的结果集合中。
  • 事实表中的空值
    • 事实表中可以存在空值度量。所有聚集函数均可针对空值事实计算,但是外键不能存在空值
  • 一致性事实
    • 如果某些度量出现在不同的事实表中。如果不同的事实表定义是一致的,则这些一致性事实应该具有相同的命名,如果它们不兼容,则应该有不同的命名用于告诫业务用户和BI应用
  • 事实表分类
    • 事务事实表事务事实表的一行对应空间或时间上某点的度量事件
    • 周期快照事实表每行汇总了发生在某一个标准周期,如某一天、某周、某月的多个度量事件。
    • 累积快照事实表每行汇总了发生在过程开始和结束之间可预测步骤内的度量事件。管理或工作流过程具有定义的开始点、标准中间过程、定义的结束点,它们在此类事实表中都可以被建模。
    • 无事实的事实表一行仅仅记录一系列某一时刻的多维实体。但没有相关的度量
    • 聚集事实表对原子粒度事实表数据进行简单的数字化上卷操作,目的是为了提高查询性能
    • 合并事实表相同粒度表示的事实合并为一个单一的合并事实表,例如现货销售可以与销售预测合并为一张事实表

维度表

  • 维度表结构
    • 包含单一的主键列
    • 字段设计
      • 维度代理键:唯一主键。该主键不是操作型系统的自然键
      • 自然键:操作型系统建立的自然键,无法被DW/BI系统控制
      • 持久键:如果员工离职,自然键有可能发生变化,因此需要建立新的持久键以确保在此种情况下,雇员号保持持久性不会发生变化。
      • 超自然键:有时候持久键被称为持久性超自然键。最好独立于原始的业务过程,并以整数1开始进行分配。
  • 维度类型
    • 退化维度:化维度一般都是事务的编号,如订单编号、发票编号等。这类编号需要保存到事实表中,但是不需要对应的维度表,所以称为退化维度。退化维度经常会和其他一些维度一起组合成事实表的主键。
    • 非规范化扁平维度:相对于操作型数据库设计所带来的的规范化设计。非规范化维度能够实现维度建模的双重目标:简化及速度
    • 多层次维度:同一个维度中可以存在不同的层次。例如日历日期维度可以按照财务周期层次从天到周进行划分,也可能存在从天到月再到年的层次。位置密集型维度可能包含多个地理层次。
    • 文档属性的标识与指示器操作代码值所包含的意义应该分解成不同的表示不同描述性维度属性的部分。例如 code=0,code_desc=关闭。
    • 维度表中的空值属性推荐使用描述性字符串代替空置。例如:未知,Unknown。应该避免在维度属性中使用空值。因为不同的数据库系统在处理分组和约束时,针对空值的处理方法不一样。
    • 日历日期维度日历日期维度包含许多描述。例如,周数、月份名称、财务周期、国家假日等属性。
    • 扮演角色的维度不同的维度视图,即维度表中的列名被成为角色
    • 杂项维度一些列混杂,低粒度的标识和指示器,单独将这些不同的维度合并到一起形成杂项维度。
    • 雪花维度
      • 包含多重维度表层次,建立的多层次结构被成为雪花模式。
      • 这种维度可以很精确表示层次化的数据,但是会给用户带来理解上的困难,也会影响查询性能,不建议使用。
    • 支架维度
      • 维度表中包含对其他维度表的引用。被引用的维度称为支架维度。但是尽量少用。
      • 多数情况下,事实表和维度之间的关联应该由事实表来实现。

维度建模

  • 一致性维度:交付步骤
    • 标准化(Standardizing):标准化的目的是使不同数据源的数据编码方式,数据格式等相同,为下一步数据匹配打下基础(数据标准化中的代码标准化过程)。
    • 匹配(Matching and Deduplication):数据匹配的工作有两方面,一是将不同数据源的标识同一事物的不同属性匹配到一起(例如:客户的不同产品),使数据更完善;另一是将不同数据源的相同数据标识成重复,为下一步的筛选打下基础(例如:来源于不同数据源中重复的客户姓名)。
    • 筛选(Surviving)数据筛选的主要目的是选定一致性维度作为主数据(Master Data),也就是最终交付的一致性维度数据。

继续阅读