gpt4 book ai didi

java - Esper - 如果数据窗口中不存在基本事件,则捕获增量事件

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:41 26 4
gpt4 key购买 nike

假设我有一个命名窗口:

CREATE WINDOW TestWindow.std:unique(FieldA) AS SELECT * FROM TestEvent;

其中,TestEvent 是 RevisionEvent,TestEventBaseTestEventDelta 分别在 TestEvent 的基本事件和增量事件中定义。这里的关键是FieldA

目前,如果窗口中存在没有基本事件的增量事件,则 Esper 会默默地丢弃该增量事件。因此,例如,如果增量事件发生在基本事件之前,则窗口中行的状态将看起来仅像基本事件,因为增量被丢弃。

我的问题是,如果增量事件无法进入窗口,是否有办法捕获它,例如,在发生这种情况时进行特殊处理?

如果我的应用程序要求我不丢失消息,并且 Esper 默默地丢弃一些消息而不丢弃其他消息,那么我如何 100% 确定事件已进入窗口?

预先感谢您的帮助!

最佳答案

您可以使用单独的语句来检测没有基本事件的增量事件,即“从 TestDelta 选择 * 作为 td,其中不存在(从 TestEvent.first:unique(id) 选择 *,其中 te.id = td.id)”

增量事件专为基本事件始终首先到达且增量覆盖基本事件的用例而设计。如果不是这种情况,也许可以使用命名窗口和 on-merge 来代替,或者类似于上面的子查询进行合并。

关于java - Esper - 如果数据窗口中不存在基本事件,则捕获增量事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com