[英]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.