ksql table 向 rowkey 添加额外的字符
ksql table adds extra characters to rowkey
我有一些 avro 格式的 kafka 主题,我创建了一个流和一个 table 以便能够与 ksql 连接,但连接的结果始终为空。
经过排查,我发现密钥前面有一些字符,这取决于字符串的长度。我想这与 avro 有关,但我找不到问题出在哪里。
CREATE TABLE entity_table ( Id VARCHAR, Info info )
WITH
(
KAFKA_TOPIC = 'pisos',
VALUE_FORMAT='avro',
KEY = 'Id');
select * from entity_table;
1562839624583 | 999999999.999999 | 99999999999.510136 | 1
1562839631250 | &999999999990.999999 | 99999999999.510136 | 2
您如何填充 Kafka 主题? 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,则无需指定架构。
我有一些 avro 格式的 kafka 主题,我创建了一个流和一个 table 以便能够与 ksql 连接,但连接的结果始终为空。
经过排查,我发现密钥前面有一些字符,这取决于字符串的长度。我想这与 avro 有关,但我找不到问题出在哪里。
CREATE TABLE entity_table ( Id VARCHAR, Info info )
WITH
(
KAFKA_TOPIC = 'pisos',
VALUE_FORMAT='avro',
KEY = 'Id');
select * from entity_table;
1562839624583 | 999999999.999999 | 99999999999.510136 | 1
1562839631250 | &999999999990.999999 | 99999999999.510136 | 2
您如何填充 Kafka 主题? 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,则无需指定架构。