【问题标题】:continious output streaminsight连续输出流洞察
【发布时间】:2013-04-01 18:02:45
【问题描述】:

是否可以通过 streaminsight 获得连续的输出流?我的问题是,当我使用跳跃/翻滚窗口对输入流进行查询时,当没有输入事件时,查询不会给我任何输出。这听起来很正常,但是在没有输入事件的情况下,是否有可能获得一个每 5 秒输出一次的窗口机制?

这是我的代码,也许问题在此之后变得清晰:

var inputStream = CepStream<ServiceBusMessage>.Create("Inputstream Portal Orders");

// Counts the number of messages in a window of 5 seconds
var countStream = from w in inputStream.TumblingWindow(outputConfig.windowSize)
                  select w.Count();

var queryTemplate = app.CreateQueryTemplate("Count Window Portal Orders", "des...", countStream);

var queryBinder = new QueryBinder(queryTemplate);
queryBinder.BindProducer<ServiceBusMessage>("Inputstream Portal Orders", inputAdapter, config, EventShape.Point);

// Just an simple outputadapter
queryBinder.AddConsumer<long>("output", outputAdapter, outputConfig, EventShape.Point, StreamEventOrder.ChainOrdered);

var query = app.CreateQuery("Counter portal orders", "des...", queryBinder);

query.Start();

我想要的输出让我们说这个输入:

example input
input time 1: x
input time 2: x
input time 6: x
input time 16: x

expecting output:
2 events in last 5 seconds
1 events in last 5 seconds
0 events in last 5 seconds
1 events in last 5 seconds

希望这种窗口机制在 streaminsight 中是可能的,我在 Google 上搜索了很多东西,阅读了开发人员指南,但注意到处理有争议的输出或类似的东西。 希望有人可以帮助我!

【问题讨论】:

    标签: streaminsight


    【解决方案1】:

    没有具有您想要的行为的窗口机制。

    您如何使用输出?可能有另一种方法来解决这个问题。

    【讨论】:

    • 我正处于使用 streaminsight 的学习阶段,所以我的输出仅用于在我的控制台中进行调试,但将来,我将在其上耦合另一个系统,该系统需要输出来计算关于当前值的预测.我正在考虑将数据写入 csv 文件,以便其他系统可以从该文件中读取最后的值。但是当由于窗口机制而没有事件时,文件不是最新的。耦合系统将通过数据挖掘系统,如神经网络或支持向量机。
    • 我在考虑插入虚拟事件,以便窗口一直在计数,然后过滤掉那些虚拟事件,之后我就有了计数窗口。感谢您的帮助
    • 您的活动具有决定活动是否有效的开始时间和结束时间。可以肯定地说,如果您正在查看的时间没有有效事件,那么该时间的计数显然为零。
    • 如果您正在将输出写入文件,并且您希望每 5 秒有一个新的计数值,您可以使用输出适配器/接收器为您写入丢失的零值。跨度>
    猜你喜欢
    • 2023-03-10
    • 2012-12-10
    • 2021-08-29
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多