在siddhi聚合查询中如何使用“ select concat(col)”?

时间:2018-06-21 01:23:02

标签: wso2 complex-event-processing siddhi wso2sp

如何在聚合siddhi查询中获取一列的所有数据。例如,我的数据为:

column1 column2 column_uuid
1       a       uuid1
2       a       uuid1
3       a       uuid3
4       b       uuid4

我想将siddhi查询用作:

define stream Input (column1 int, column2 string, column_uuid string);

define stream Output (column2 string, amount long, uuid string);

@info(name='query')
from Input#window.time(30 sec)
select column2, count() as amount, concat(column_uuid) as uuid
group by column2
having amount > 2
insert into Output;

我想得到的结果是:

Event{timestamp=xxx, data=[a, 3, "uuid1,uuid2,uuid3"]}

1 个答案:

答案 0 :(得分:0)

在Siddhi中,有两种类型的功能。常规"function""aggregate-function"。由于str:concat()不是聚合函数,因此您不能使用它来获得所需的结果。

因此,您可能必须编写自己的custom:concat()聚合函数才能获得预期的结果。请参考以下示例,以编写自定义聚合函数(samples)。要获得上述输出,您只需在自定义属性聚合器中保留一个全局字符串变量,然后将其追加到processAdd(Object data)方法中即可(类似于this)。