首页 > 解决方案 > 如何在 C# 中反序列化 ksql 查询的行键?

问题描述

我想显示查询结果的 ROWKEY。不幸的是,它没有被序列化,因为 ksql 目前不支持它。没问题我可以自己做。但我不知道如何..

因此,如果我通过 rest api 执行此操作:

SELECT ROWKEY FROM topic

我如何把这个结果变成我可以在 C# 中实际使用的东西?

结果(例如: \u0000\u0000\u0000\u0000\u0001�\b\u0000�\f )的结构如何?它是否包含魔术字节或其他内容?

我从这里尝试了解决方案:

使用 C# 反序列化 Avro 文件

都具有不同版本的结果字节[] ...例如附加魔术字节,从开头删除字节..将开头的字节替换为魔术字节等。

编辑:我正在谈论使用 C# 而不是单独使用 KSQL Server 的编程解决方案

标签: c#avroksqldb

解决方案


AFAIK你不能。KSQL 目前不支持字符串以外的任何键。您不能通过 KSQL 将主题中的 Avro 密钥传递给消费者,然后消费者再反序列化 Avro。

如果您需要获取密钥,则只需使用本地消费者使用支持 KSQL 流/表的 Kafka 主题并从那里反序列化它。


推荐阅读