1

問題は非常に単純です。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には存在しない」を識別する方法に関する提案はありますか?

4

1 に答える 1