每小时WSO2 CEP计入时间戳

时间:2015-05-08 14:23:16

标签: time wso2 series wso2cep

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

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

有人可以解释如何使用WSO2 CEP来实现这个目标吗?

由于 RP

3 个答案:

答案 0 :(得分:0)

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

你看过了吗?

答案 1 :(得分:0)

希望您使用的是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;

答案 2 :(得分:0)

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