如何解决Flink-DataStream上的多事件依赖SQL查询
未得到预期的行为,我的flink应用程序遇到了实时事件,而触发条件则取决于两个事件ABC和XYZ。当两个事件都到达时,则触发通知。
应用程序正在使用StreamTableEnviornment
这是我正在使用的sql查询
SELECT *
from EventTable
where eventName in ('ABC','XYZ')
and 1 IN (select 1 from EventTable where name='XYZ')
and 1 IN (select 1 from EventTable where name='ABC')
用例:1
ABC事件到来->一切都没有发生(按预期并正在等待XYZ事件)
XYZ事件到->条件匹配和sql查询给出两个事件记录(ABC和XYZ),并触发通知(如预期)
再次,如果我发送“ ABC”事件,则sql查询会给出结果ABC事件和已触发的通知。
我期望查询不会给出结果,因为只有一个事件ABC到达并且将等待事件XYZ。你能帮我这个忙吗?我是否缺少某些东西以获得预期的结果?
解决方法
将第二个ABC添加到动态表时,第一个XYZ已经存在,因此满足条件。在输入表中添加第三行会导致在输出表中追加新一行。
请参阅文档中的Dynamic Tables,以获取有关基础模型的基本信息。SQL
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。