【问题标题】:WSO2 CEP per hour counts with timestampWSO2 CEP 每小时计数与时间戳
【发布时间】:2015-05-08 14:23:16
【问题描述】:

我们尝试实现每小时事件计数的时间序列。 我们想在 CEP 中进行每小时计数并将输出存储在数据存储/nosql 中。缺少的是我们想要存储给定日期每小时的计数。

为此,我们需要在每次时间批处理窗口到期时从 CEP 输出当前时间戳。

有人可以解释一下如何使用 WSO2 CEP 实现这一点吗??

谢谢 反相

【问题讨论】:

    标签: time wso2 series wso2cep


    【解决方案1】:

    我认为您应该使用 BAM 而不是 CEP,因为您正在尝试做的事情看起来更像是一个 map-reduce 工作。

    你看了吗?

    【讨论】:

      【解决方案2】:

      希望您使用的是 WSO2 CEP 3.1.0。目前 WSO2 CEP 4.0.0 正在开发中,一旦 WSO2 CEP 发布,就会有一个 RDBMS 发布者(输出适配器),您可以在其中指定连接并直接发布输出流值。

      您可以有一个带有 siddhi 查询的执行计划来实现时间戳逻辑。要了解有关 siddhi 查询语言的更多信息,请参阅 WSO2 Siddhi 文档。enter link description here

      以下是一个示例执行计划,其中包含 siddhi 查询,用于检查给定时间窗口(1 分钟)内的室温值,并将平均温度与房间号一起写入输出流。如果您想将它们存储在数据库中,您可以使用 RDBMS 发布者(输出适配器)作为输出流。

                   /* Enter a unique ExecutionPlan */
                  @Plan:name('testPlan')
      
                  /* Enter a unique description for ExecutionPlan */
                  -- @Plan:description('ExecutionPlan')
      
                  /* define streams and write query here ... */
      
                  @Import('inStream:1.0.0')
                  define stream inStream (temperature double, roomNumber int);
      
                  @Export('outStream:1.0.0')
                  define stream outStream (temperature double, roomNumber int);
      
                  from inStream#window.time(1 min)
                  select avg(temperature) as temperature,roomNumber
                  group by roomNumber
                  having temperature>= 70
                  insert into outStream;
      

      【讨论】:

      • 谢谢你试试看
      【解决方案3】:

      您可以在选择处使用time:currentTime() 扩展名来获取Siddhi 3.0/WSO2CEP 4.0 的时间窗口的到期时间。有关示例,请查看this test case

      【讨论】:

      • 谢谢,试试看
      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2020-08-13
      • 2020-02-19
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多