如果没有事件,StreamInsight TumblingWindow 会触发吗?
我在这里看到的所有示例,每个窗口内总是有一个事件:http: //sqlblog.com/blogs/stream_insight/archive/2010/12/15/windows-in-streaminsight-hopping-vs-snapshot。 aspx
但问题是当特定窗口中没有事件时,它会触发吗?
如果没有事件,StreamInsight TumblingWindow 会触发吗?
我在这里看到的所有示例,每个窗口内总是有一个事件:http: //sqlblog.com/blogs/stream_insight/archive/2010/12/15/windows-in-streaminsight-hopping-vs-snapshot。 aspx
但问题是当特定窗口中没有事件时,它会触发吗?
如果窗口内没有触发事件,则 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();
}
快照窗口略有不同,因为它们是由于事件而不是固定时间窗口而触发的。
这有帮助吗。