KSQL 查询在键值前面有奇怪的键
KSQL queries have strange keys infront of the key value
我创建了一个这样的流:
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
您的密钥是Avro 格式,KSQL 尚不支持。
如果您可以控制数据生产者,请以字符串格式写入密钥(例如 Kafka Connect 使用 org.apache.kafka.connect.storage.StringConverter
)。如果没有,您需要使用密钥,例如要驱动 KSQL table,您需要使用 KSQL 重新键入数据:
CREATE STREAM TEST1_REKEY AS SELECT * FROM TEST1 PARTITION BY my_key_col
我创建了一个这样的流:
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
您的密钥是Avro 格式,KSQL 尚不支持。
如果您可以控制数据生产者,请以字符串格式写入密钥(例如 Kafka Connect 使用 org.apache.kafka.connect.storage.StringConverter
)。如果没有,您需要使用密钥,例如要驱动 KSQL table,您需要使用 KSQL 重新键入数据:
CREATE STREAM TEST1_REKEY AS SELECT * FROM TEST1 PARTITION BY my_key_col