我创建了这样的流:
CREATE STREAM TEST1 WITH (KAFKA_TOPIC='TEST_1',VALUE_FORMAT='AVRO');
然后我通过CLI查询这样的流:
SELECT * FROM TEST1;
结果看起来像这样:
1571225518167 | \u0000\u0000\u0000\u0000\u0001\u0006key | 7 | 7 | blue
我想知道为什么密钥要这样格式化。我的查询有误吗?该值应如下所示:
1571225518167 | key | 7 | 7 | blue
答案 0 :(得分:2)
您的密钥为Avro格式,KSQL尚不支持。
如果您可以控制数据生产者,则以字符串格式编写密钥(例如,使用org.apache.kafka.connect.storage.StringConverter
使用Kafka Connect)。如果不是,则需要使用密钥,例如要驱动KSQL表,您需要使用KSQL重新输入数据:
CREATE STREAM TEST1_REKEY AS SELECT * FROM TEST1 PARTITION BY my_key_col