我是 NEsper/Esper 的新手。我想在两个事件发生的时间小于 3 秒时捕获该事件,换句话说,当两个事件之间的时间戳差异小于 3 秒时。如何定义 EPL 语句?例如,事件是一个 Tick(包含属性 - 符号、价格和时间戳)。当一个 Tick 发生在前一个 Tick 少于 3 秒之后,应该捕获第二个 Tick。如何编写 EPL 语句“select * from StockTick(symbol='anySymbol')....”?提前致谢。纳尔苏
问问题
59 次
1 回答
0
有很多方法。让我们使用匹配识别。它似乎做你想做的事。
select * from SymbolTick
match_recognize (
partition by symbol
measures E1 as e1, E2 as e2
pattern (E1 E2)
define
E2 as E1.timestamp.before(E2.timestamp, 3)
)
您可以阅读 "before" 和 "after"。我想也许我没有做对,所以请检查和测试。对于数字时间戳,可以改为“E2.timestamp - E1.timestamp <= 3000”。
于 2020-10-06T11:22:20.743 回答