avro - ksql 表向行键添加了额外的字符
问题描述
我有一些 avro 格式的 kafka 主题,我创建了一个流和一个表以便能够与 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
解决方案
您如何填充 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,则无需指定架构。
推荐阅读
- javascript - 更改文本颜色或将其显示在路径顶部,以便路径不会覆盖它
- flutter - Flutter Nested Listviews 设计在内容增长时浮动
- jq - 使用 jq 转换日期值,然后按它过滤
- matlab - 卡尔曼滤波器 [Matlab]
- c# - 由于变量地址的变化,删除对象导致错误
- sql - 在 SQL 中识别不同的行集
- powershell - 以另一个用户身份在 powershell 脚本中运行命令
- android - 非活动类的BottomSheetDialog
- javascript - 在第二次角度重新加载后,点击被检测到两次。第一次它工作正常
- charts - 如何在 Power BI 的条形图中添加“总计”列