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

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



