ETL子系统与技术详解
1. 累积快照事实表加载器
累积快照粒度代表具有明确开始和结束的流程的当前演变状态,这类流程通常持续时间较短,不适合采用定期快照。订单处理就是累积快照的经典示例,订单在一个报告期内完成下单、发货和付款。事务粒度会将细节分散到各个事实表行中,而定期快照也不适合此类数据的报告。
累积快照的设计和管理与前两种事实表类型有很大不同。所有累积快照事实表都有一组描述典型流程工作流的日期。例如,一个订单可能有订单日期、实际发货日期、交付日期、最终付款日期和退货日期,这五个日期以五个独立的日期值外键代理键形式出现。当订单行首次创建时,第一个日期是明确的,但其他日期可能尚未发生。随着订单在处理流程中推进,会不断修改该事实行,覆盖日期外键并更新各种事实。通常第一个日期保持不变,因为它描述了行的创建时间,而其他日期可能会被多次覆盖。
许多关系型数据库管理系统(RDBMS)采用可变行长度,对累积快照事实行的反复更新可能会因可变行长度导致行增长,影响磁盘块的驻留。为提高性能,在更新活动后偶尔删除并重新加载行是值得的。
累积快照事实表是表示具有明确开始和结束的有限流程的有效方式,但它本质上是最新视图。通常,结合使用三种事实表类型来满足不同需求是有意义的。定期历史数据可以通过定期提取捕获,而流程中涉及的所有无限细节可以在关联的事务粒度事实表中捕获。如果存在许多违反标准场景或涉及流程反复循环的情况,则不适合使用累积快照。
2. 代理键管道子系统
每个ETL系统都必须包含一个步骤,用适当的维度代理键替换传入事实表行中的操作自然键。参照完整性(RI)意味着事实表中的每个外键在相应的维度表中都有一个条目。例如,如果销售事实表中有一
超级会员免费看
订阅专栏 解锁全文
1288

被折叠的 条评论
为什么被折叠?



