如何在c#中反序列化ksql查询的行键?

如何在c#中反序列化ksql查询的行键?,c#,avro,ksqldb,C#,Avro,Ksqldb,我想显示查询结果的行键。不幸的是,它没有被序列化,因为ksql目前不支持它。没问题,我可以自己做。但是我不知道怎么做 因此,如果我通过rest api执行此操作: SELECT ROWKEY FROM topic 如何将这个结果转化为我可以在C#中实际使用的东西 结果如何(例如:\u0000\u0000\u0000\u0000\u0000\u0001�\b\u0000�\f)结构化?它是否包含魔法字节或其他内容 我在这里尝试了以下解决方案: 都具有不同版本的结果字节[]。。。例如,添加了魔法

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

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

SELECT ROWKEY FROM topic
如何将这个结果转化为我可以在C#中实际使用的东西

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

我在这里尝试了以下解决方案:

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


编辑:我谈论的是一个使用C#的编程解决方案,而不仅仅是KSQL服务器。KSQL目前不支持字符串以外的任何键。不能通过KSQL将主题中的Avro密钥传递给消费者,然后消费者反序列化Avro


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

所以KSQL服务器只是在这里返回无用的数据?无法以某种方式反序列化此消息“\u0000\u0000\u0000\u0000\u0000\u0001”�\b\u0000�\f“如果我知道模式?请参阅上面的答案:)返回的字符串是什么”“\u0000\u0000\u0000\u0000\u0001?”�\b\u0000�\实际上呢?它从何而来?KSQL从消息的键中读取的是Avro数据,但KSQL使用字符串反序列化器,因此使用了奇怪的字符。KSQL正在改进对键的处理。退房