问题很简单:使用 Esper 引擎从 2 个不同的流中只提取不存在的记录。
ID 存在于 streamA 中,但不存在于 streamB 中。
在 SQL 中,它看起来像这样:
SELECT *
FROM tableA
WHERE NOT EXISTS (SELECT *
FROM tableB
WHERE tableA.Id = tableB.Id)
我已经尝试过 Esper 风格,但它不起作用:
SELECT *
FROM streamA.win:ext_timed(timestamp, 5 seconds) as stream_A
WHERE NOT EXSITS
(SELECT stream_B.Id
FROM streamB.win:ext_timed(timestamp, 5 seconds) as stream_B
WHERE stream_A.Id = stream_B.Id)
可悲的是,如果 stream_A.Id 在 stream_B.id 之前插入,它将回答查询条件并且查询将不起作用。
关于如何使用 Esper 识别“ID 存在于 streamA 但不在 streamB 中”的任何建议?