按日期拆分输入事件蒸汽

时间:2013-09-19 20:53:12

标签: complex-event-processing streaminsight

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

好问题。

StreamInsight可以处理迟到的事件,您只需要了解CTI事件可以延长应用时间。这意味着如果一个点事件以比最后一个CTI事件更早的开始时间到达,它将被删除。您需要配置提前时间设置以延迟CTI事件以允许迟到的事件。有关详细信息,请访问:Advancing Application Time

对于处理数天的设备的最佳处理方式,您可能最好只记录事件进入,然后在所有数据到达后重新播放事件。根据您的需要,事件的开始时间可能始终是收到事件的时间戳,您可以在事件中拥有原始时间戳的属性。

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

答案 1 :(得分:0)

我找到了另一种方法,可以将数据作为单独的流来获取,这样我就可以在从多个设备保存数据时读取数据,并使用subjects从主输入流创建单独的流。

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

我不会在此处发布代码,因为完整的示例(包括示例项目)可以在DevBikers Blog上找到,他应该得到所有信用以回复我的(交叉发布)MSDN question

相关问题