将WSO2 CEP Siddhi事件聚合到单个json对象

将WSO2 CEP Siddhi事件聚合到单个json对象,wso2,complex-event-processing,wso2cep,siddhi,Wso2,Complex Event Processing,Wso2cep,Siddhi,我正在尝试构建一个执行计划,将不同的事件聚合为一个,并统计发生次数(CurrentEventId)。该计划如下所示: define stream inStream (correlation_EventName string, LastEventId int, CurrentEventId int); partition with (CurrentEventId of inStream) begin from inStream#window.timeBatch(10 sec)

我正在尝试构建一个执行计划,将不同的事件聚合为一个,并统计发生次数(CurrentEventId)。该计划如下所示:

define stream inStream (correlation_EventName string, LastEventId int, CurrentEventId int);

partition with (CurrentEventId of inStream)
begin

    from inStream#window.timeBatch(10 sec)
    select correlation_EventName as meta_Label, CurrentEventId as meta_Id, LastEventId as correlation_From, CurrentEventId as correlation_To, count(CurrentEventId) as correlation_Value
    insert into outStream

end;
实际上,我有以下输出:

Event: {"event":{"metaData":{"Label":"StartCalculationEvent","Id":2},"correlationData":{"From":2,"To":2,"Value":66}}}
Event: {"event":{"metaData":{"Label":"LoginEvent","Id":1},"correlationData":{"From":1,"To":1,"Value":693}}}
我每10秒只需要一个单个事件,而不是多个事件。此事件应具有以下格式:

[
    {
        "event":{"metaData":"..."}
    },
    {
        "event":{"metaData":"..."}
    }
]

您知道如何实现这一点吗?

对于siddhi分区,将为每个分区变量生成单独的事件(在本例中为
CurrentEventId
)。因为您有两个CurrentEventID,所以您会在outStream中接收两个事件。如果有三个CurrentEventID,您将分别收到3个事件

到目前为止,无法按照您的要求在siddhi中批处理事件。有一个与您期望的功能类似的相关功能