繁体   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