簡體   English   中英

KSQL 在結構字段上加入帶有條件的流

[英]KSQL Join streams with condition on struct field

我從一個主題中定義了兩個流,每個流都發布了 JSON 消息,有點像這樣:

{"payload": {"some_id": "123"}}

它們對應的流定義如下:

CREATE STREAM mystream
  (payload STRUCT <someid varchar>)
WITH (kafka_topic='mytopic', value_format='JSON')

當我嘗試將兩個流連接在一起時:

SELECT
  s.payload->some_id,
  o.payload->other_id
FROM mystream s
LEFT JOIN otherstream o ON s.payload->some_id = o.payload->other_id;

我收到以下錯誤:

Invalid comparison expression 'S.PAYLOAD->SOME_ID' 
in join '(S.PAYLOAD->SOME_ID = O.PAYLOAD->OTHER_ID)'.
Joins must only contain a field comparison.

是否無法基於結構字段連接兩個流? 在我可以執行 JOIN 之前,我是否首先需要發布一個扁平化每個源流的流?

正確,這目前是不可能的。 請隨時在此處對跟蹤它的問題進行投票: https : //github.com/confluentinc/ksql/issues/4051

正如您所說,解決方法是先在另一個流中將其展平,然后再加入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM