K SQL Объединение потоков с условием на поле структуры - PullRequest
0 голосов
/ 13 марта 2020

У меня есть два потока, определенных каждый из topi c, в котором 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.

Разве невозможно объединить два потока на основе структуры поле? Нужно ли сначала публиковать sh поток, который выравнивает каждый исходный поток, прежде чем я смогу выполнить JOIN?

1 Ответ

1 голос
/ 13 марта 2020

Правильно, в настоящее время это невозможно. Не стесняйтесь сообщить о проблеме, отслеживая ее здесь: https://github.com/confluentinc/ksql/issues/4051

Как вы говорите, обходной путь - сначала сплющить его в другом потоке, а затем присоединиться к нему.

...