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