Таблица ksql добавляет дополнительные символы в rowkey - PullRequest
0 голосов
/ 11 июля 2019

У меня есть несколько тем kafka с форматом avro, я создал поток и таблицу, чтобы можно было присоединиться с помощью ksql, но результат объединения всегда равен нулю.

После устранения неполадок я обнаружил, что к ключу добавляется какой-то символ, который зависит от длины строки.Я полагаю, что это связано с Avro, но я не могу найти, в чем проблема.

CREATE TABLE entity_table ( Id VARCHAR,    Info info )
WITH
(
KAFKA_TOPIC = 'pisos',
VALUE_FORMAT='avro',
KEY = 'Id');

select * from entity_table;
1562839624583 | $99999999999.999999 | 99999999999.510136  | 1                
1562839631250 | &999999999990.999999 | 99999999999.510136  | 2

1 Ответ

1 голос
/ 12 июля 2019

Как вы заполняете тему Кафки? В настоящее время KSQL поддерживает только строковые ключи. Если вы не можете изменить способ заполнения темы, вы можете сделать следующее:

CREATE STREAM entity_src WITH (KAFKA_TOPIC = 'pisos', VALUE_FORMAT='avro');

CREATE STREAM entity_rekey AS SELECT * FROM entity_src PARTITION BY ID;

CREATE TABLE entity_table with (KAFKA_TOPIC='entity_rekey', VALUE_FORMAT='AVRO');

Кстати, вам не нужно указывать схему, если вы используете Avro.

...