StreamInsight输入适配器在多个查询之间共享事件

时间:2014-05-20 11:46:28

标签: c# .net streaminsight

我正在观察StreamInsight应用程序中非常奇怪的事件处理。 有一个InputAdapter将Stream分成TumblingWindows。然后我有多个查询同时运行。他们应该使用来自同一个Stream的所有相同的TumblingWindows。我使用此代码来定义窗口:

var atgs = new AdvanceTimeGenerationSettings(config.Input.EventCount, 
                    TimeSpan.FromSeconds(config.Input.Delay), true);
                var ats = new AdvanceTimeSettings(atgs, null, AdvanceTimePolicy.Adjust);

                var dstream = CepStream<Dataclass>.Create("Data Input Stream", typeof (InAdapterFactory),
                    config.Input, EventShape.Point, ats);

 var unfilteredtumbling = dstream.TumblingWindow(TimeSpan.FromSeconds(processinginterval),HoppingWindowOutputPolicy.ClipToWindowEnd);

然后我从这个流中执行两个不同的查询。使用此代码:

var count = from row in unfilteredtumbling 
                         select new
                         {
                             value= row.Count(),
                             qind = 10,
                             stat = "Calculated Count"

                         };
var count2 = from row in unfilteredtumbling 
                         select new
                         {
                             value= row.Count()*2,
                             qind = 10,
                             stat = "Calculated Count2"
                         };

将每个绑定到他们自己的OutputAdapter,如下所示:

Query querycount = count.ToQuery(myApplication, "Count Output Query", "Output Count",
                        typeof (OutputAdapterFactory), config.Output, EventShape.Point, StreamEventOrder.FullyOrdered);
Query querycount2 = count2.ToQuery(myApplication, "Count Output Query2", "Output Count2",
                        typeof (OutputAdapterFactory), config.Output, EventShape.Point, StreamEventOrder.FullyOrdered);

以下链接显示我收到的输出。

https://dl.dropboxusercontent.com/u/15482726/outputissue.jpg

遗憾的是,我收到的输出并不是我所期望的。 看起来每个查询都有自己的inputadapter。消息将分发给两个输入适配器。即使dstream仅创建一次,但工厂被调用两次。但是为什么以及何时?怎么可能?如果我只使用一个查询,一切都很完美。

我使用了此链接中的说明http://technet.microsoft.com/en-us/library/ff518536.aspx 认为它应该这样工作。

非常欢迎任何帮助。

最好的问候乔

1 个答案:

答案 0 :(得分:1)