Как десериализовать ключ строки запроса ksql в c #? - PullRequest
0 голосов
/ 24 октября 2019

Я хотел бы отобразить ROWKEY результата запроса. К сожалению, он не сериализован, так как в настоящее время он не поддерживается в ksql. Нет проблем, я мог бы сделать это сам. Но я не знаю, как ..

Так что, если я делаю это через rest api:

SELECT ROWKEY FROM topic

Как мне превратить этот результат в то, что я могу фактически использовать в C #?

Как структурирован результат (например: \ u0000 \ u0000 \ u0000 \ u0001� \ b \ u0000� \ f)? Содержит ли он волшебный байт или что-то еще?

Я попробовал решения здесь:

Десериализовать файл Avro с C #

все с разнымиверсии результирующего байта [] ... например, с добавленным магическим байтом, с удалением байтов с начала ... замена байтов в начале на магический байт и т. д.

РЕДАКТИРОВАТЬ: я говорю о программированиирешение с использованием C #, а не только KSQL Server

1 Ответ

1 голос
/ 24 октября 2019

AFAIK вы не можете. В настоящее время KSQL не поддерживает никаких ключей, кроме строк. Вы не можете передать ключ Avro из раздела через KSQL и передать его потребителю, который затем десериализует Avro.

Если вам нужно получить ключ, просто используйте тему Kafka, которая лежит в основе потока / таблицы KSQL с помощью собственного потребителя, и отмените его десериализацию.

...