TumblingWindow会在没有事件时开火吗?

时间:2012-08-13 00:37:03

标签: c# streaminsight

如果没有事件,StreamInsight TumblingWindow会启动吗?

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

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

1 个答案:

答案 0 :(得分: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();

}

快照窗口略有不同,因为事件而非固定时间窗口会触发。

这有帮助。