3

我需要将追溯事件合并到我的事件流中,但我不确定实现它的最佳方式。

我们需要保持原始事件流不变以进行审计和所有其他标准好处。事件流本质上也是暂时的,使我们能够查看历史上任何一点的值。即 x 的值在 6 月 1 日下午 5 点为 10.00。有时我们会在 6 月 5 日发现 x 的值实际上是 6 月 1 日下午 5 点的 12.00。在这种情况下,我们将 10.00 称为“as-at”值,将“12.00”称为 as-of 值,并在事件流中跟踪这两个值。

为 as-at 值重建状态是直接查询 6 月 1 日下午 5 点之前的最新快照以及 6 月 1 日之前的所有事件。

我犹豫的地方是重建现状。如果对模型进行了 as-of 更正,那么默认情况下应该使用它而不是 as-at,但是如果不读取整个事件流,我看不到任何方法来确定是否存在 as-of更正从时间点到现在(这可能很大),并且大多数更改都无关紧要,因为它们将与未来的更改相关,而不是相关的时间点。

我应该在这里看看不同的方法吗?

谢谢,克里斯

4

1 回答 1

8

我认为您指的是双时态数据模型。也就是说,您不仅可以回答“谁赢得了 2000 年美国总统大选”,还可以回答“我们认为谁赢得了 2000 年选举日晚上的美国总统大选”。

通常,您的事件流不一定是为了有效地回答您的所有查询和双时态查询而构建的。它只是你所学到的事实的历史。如果您今天了解有关去年的事实,它仍然属于您的事件流的末尾,但标有相关日期。

查询此数据的最佳方式取决于您要回答的问题类型。有几篇关于如何构建时态和双时态数据库模式的好论文,这些模式将由从事件流馈送的投影仪填充。

于 2012-05-15T02:47:08.150 回答