KDT#42 周期快照事实表和累计快照事实表(二)
累计快照事实表的这种最简单的实现方法中没有给出保留中间点的历史信息的方法,如订单本身的变化。
至少有三种方法可以用来捕获这种中间的状态的变化:
1.在诸如月末等的固定时间间隔对累计快照再进行快照处理,即联合使用周期快照和累计快照技术。这种累计快照的周期快照事实表应该被建立为单独的事实表,可以降低应用的复杂性。在这样建立的快照表中,好处是在订单存活期间,每个月可以得到这个订单变化的一条记录,坏处是只能在月末才能看到这条快照记录。
2.建立另外一张事实表,当订单变化发生时,将累计快照信息保存在这个事实表中。这种方法给出了订单完整的历史信息。它产生的记录数和下面的第三种方法相同。
3.在交易粒度事实表上维护完整的订单信息,然后添加一个交易维度到累计快照事实表中,来记录订单的变化信息。使用这种方法时需要小心,有些交易数据是非可加性的。例如,如果订单上的一个条目被取消,又添加了两个新的条目,在这些交易后需要重新计算累计快照表中的相关数据。这个计算相对来说比较麻烦,所以一般来说,第2条中的方法是最好的方法。