0

我有一个从数据库读取的输入流,其中包含来自不同设备的测量值。数据库中记录的事件不按时间顺序排列,但通常在 2 分钟窗口内到达。但是,有些设备可以在过去几天发送带有时间戳的数据。

当我在输入流中插入 CTI 以处理最多只有几分钟的“正常”数据时,如何处理比其余数据晚几天的设备的数据?

在我插入 CTI 之前,是否可以将输入流拆分为每个设备的 1 个流,这样“旧”流将具有独立于其他输入流的 CTI?

提前致谢。

4

2 回答 2

1

好问题。

StreamInsight 可以处理迟到的事件,您只需要了解 CTI 事件会提前应用程序时间。这意味着如果一个点事件的开始时间早于最后一个 CTI 事件,它将被丢弃。您需要配置提前时间设置以延迟 CTI 事件以允许迟到的事件。更多信息可以在这里找到:提前申请时间

至于为落后几天的设备处理数据的最佳方法,您最好在事件进入时记录它们,然后在所有数据到达后重新播放事件。根据您的需要,事件的开始时间可能始终是收到事件的时间戳,并且您可以在事件上拥有原始时间戳的属性。

您可以有多个流在不同的应用程序时间执行相同的查询逻辑,但它们必须具有单独的 CTI 事件。

于 2013-09-21T02:51:51.090 回答
0

我找到了一种将数据作为单独流获取的替代方法,它允许我读取从多个设备保存的数据,并使用subjects.

这对我的应用程序非常有效,因为数据源可以有不同的时间线,并且每个subject最终都有独立的应用程序时间线。

我不会在此处发布代码,因为完整的示例(包括示例项目)可以在DevBikers 博客上找到,他值得所有的功劳来回应我的(交叉发布的)MSDN 问题

于 2013-09-23T13:49:32.610 回答