我在WSO2 Siddhi CEP中关注了Source:
@source(type='kafka',
topic.list='userInfo',
partition.no.list='0',
threading.option='single.thread',
group.id="threadAccessor",
bootstrap.servers='localhost:9092',
@map(type='json', @attributes(USERID = '$.USERID', tst = '$.TST', ACTIVITY = '$.ACTIVITY', AVG_HBR = '$.AVG_HBR')))
define stream SweetProductionStream (USERID string, tst long, ACTIVITY string, AVG_HBR int);
有没有办法覆盖函数 eventTimestamp()
使用映射返回的值?有可能吗?我知道它适用于 externalTimeWindow
,但我想使用自己的时间戳进行模式查找 .
谢谢 .
1 回答
事件的时间戳是不可变的,您只能使用
eventTimestamp()
访问其时间戳 . 如果您需要使用自己的时间戳,请将其作为流中的属性并使用它 .我不确定你在源头上想要实现的目标 . 您可以在消息中传递时间戳并将其提取出来,并将其用作属性 . 您可以在处理externalTimeWindow时传递此属性,也可以在使用模式时使用该属性并定义时基条件以及其他条件 .