0

如果没有事件,StreamInsight TumblingWindow 会触发吗?

我在这里看到的所有示例,每个窗口内总是有一个事件:http: //sqlblog.com/blogs/stream_insight/archive/2010/12/15/windows-in-streaminsight-hopping-vs-snapshot。 aspx

但问题是当特定窗口中没有事件时,它会触发吗?

4

1 回答 1

2

如果窗口内没有触发事件,则 StreamInsight 不知道窗口已经过去。StreamInsight 没有内部“时间”,因此如果没有“滴答”的东西,它永远不会知道窗口是否已经过去

您可以构建一个每 1 小时触发一次的可观察集合并创建 10 分钟的跳跃窗口。您不会看到 6 个结果。

void Main(){

var startTime = DateTime.UtcNow;

//Create an arbitrary number of events.
var source = Application.DefineEnumerable(() => Enumerable.Range(0, 60).Select(i => PointEvent.CreateInsert(startTime.AddHours(i * 1 ), (double)1)));
var input = source.ToStreamable(AdvanceTimeSettings.StrictlyIncreasingStartTime);

//Create a tumbling window that is 10 seconds wide
var query = from i in input.TumblingWindow(TimeSpan.FromSeconds(10))
    select i.Count();

query.Dump();

}

快照窗口略有不同,因为它们是由于事件而不是固定时间窗口而触发的。

这有帮助吗。

于 2012-08-14T18:51:17.943 回答