事实表基本结构
操作性事件中产生的可度量数值,存储在事实表中,事实表肯定会包含外键,用来与维度表进行关联,也包含可选的退化维度键和日期/时间戳。查询请求的主要目标是基于事实表开展计算和聚集的操作。
可加、半可加、不可加事实
事实表中的数字度量可划分为三类。最灵活、最有用的事实是完全可加,可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加事实,除了时间维度外,他们可以跨所有维度进行加法操作。另外,一些度量是完全不可加的,例如,比率。对非可加事实,一种好的方法是,尽可能存储非可加度量的完全可加的分量,并在计算出最终的非可加事实前,将这些分量汇总到最终的结果集合中。
事实表中的空值
事实表中可以存空值度量。所有聚集函数均可针对空值事实计算。但是事实表的外键不能存在空值,否则会导致违反参照完整性的情况发生。关联的维度表必须用默认行(代理键)而不是空值外键表示未知或无法应用的条件。
一致性事实
如果某些度量出现在不同的事实表中,需要注意,如果需要比较或计算不同事实表的事实,应保证针对事实的技术定义是相同的。如果不同的事实表定义是一致的,则这些一致性事实应该具有相同的命名,如果她们不兼容,则应该有不同的命名用于告诫业务用户和BI应用。
事务事实表
事务事实表的一行对应空间或时间上某点的度量事件。原子事务粒度事实表是维度化及可表达的事实表,这类健壮的维度确保对事务数据的最大化分片和分块。事务事实表可以是稠密的,也可以是稀疏的,因为仅当存在度量时才会建立行。这些事实表总是包含一个为维度表关联的外键,也可能包含精确的时间戳和退化维度表。度量数字事实必须与事务粒度保持一致。
周期快照事实表
周期快照事实表中的每行汇总了发生在某一标准周期,如某一天、某周、某月的多个度量事件。粒度是周期性的,而不是个体的事务。周期快照事实表通常包含许多事实,因为任何与事实表粒度一致的度量事件都是呗允许存在的。这些事实表其外键的魔都是均匀的,因为即使周期内没有活动发生,也会在事实表中为每个事实插入包含0或空值的行。
累积快照事实表
累积快照事实表的行汇总了发生在过程开始和结束之间可预测步骤内的度量事件。通常在事实表中针对过程中的关键步骤都包含日期外键。累积快照事实表中的一行,对应某一具体的订单,当订单产生时会插入一行。
无事实的事实表
无事实的事实表这类查询总是包含两个部分:包含所有可能事件的无事实覆盖表,包含实际发生的事件活动表。当活动从覆盖表中减除时,其结果是尚未发生的事件。
聚集事实表或OLAP多维数据库
聚集事实表是对原子粒度事实表数据进行简单的数字化上卷操作,目的是为了提高查询性能。这些聚集事实表以及原子事实表可以同时被BI层使用,这样BI工具在查询时可以平滑的选择适当的聚集层次。聚集事实表包含外键以缩小一致性维度,聚集事实的构建是通过对来自多个原子事实表的度量的汇总而获得的。最后使用汇总而度量聚集OLAP多维数据库一般与关系类型的聚集方法类似,但是OLAP多维数据库可以呗商业用户直接访问。
下一篇:主要介绍大数据时代建立数据仓库和实时数仓以及OLAP多维数据表的技术选型。