Esper - 查询结果的数组表示

时间:2017-12-12 13:01:24

标签: sql arrays complex-event-processing esper

我们假设我有CallPOPDWH事件。该活动有4列。类型列,名称列,检测时间戳列和属性列。 Esper产生以下3个元组:

[Event, CallPOPDWH, 1456938481000, {call_start_date=7355448481000, calling_number=+3859121JMOYL, call_direction=I}]  
[Event, CallPOPDWH, 1456938481000, {call_start_date=5464538486000, calling_number=+3859121JMOYL, call_direction=I}]
[Event, CallPOPDWH, 1456938481000, {call_start_date=1456345351000, calling_number=+3859121JMOYL, call_direction=I}]

我想执行一个查询,该查询将收集调用号码和检测时间戳相同的所有不同call_start_date值。

例如:

[Event, NewEvent, 1456938481000, {call_start_date=[7355448481000, 5464538486000, 1456345351000], calling_number=+3859121JMOYL, call_direction=I}] 

我已经阅读过Esper的文档,虽然它说你可以创建一个模式来表示你可以将属性声明为数组的newEvent,但我还没有找到一个有效的例子。

我不知道我需要什么样的查询。我是否需要模式查询或带有子查询的特定属性的选择查询?任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

select window(call_start_date).distinctOf() from CallPOPDWH#keepall group by calling_number, detectionTimestamp

一些笔记

  • 用于记住所有值的#keepall可以是时间窗口或其他
  • 例如在不需要连续输出时添加“每X秒输出一次”