Это нормально, это означает, что поле Random_key
является авро-записью типа Union
.С типом union
вы должны установить значение по умолчанию, соответствующее типу объединения, и в вашем случае ваш CDC интерпретируется как ограничение схемы поля базы данных как union { null, int}
.
Если поле не является нулевым, это означает, что оно является целым числом, а в avro, когда оно является объединением, вы должны указать, какой тип соответствует.Представьте, если у вас есть это: union {string, int, double}
.Здесь поле является правильным, когда оно представляет собой строку, целое или двойное число, но мы хотим знать для каждого поля, каков реальный тип этих данных.
К сожалению, это правильное поведение, но обычно вы этого не делаетезаботиться об этом.avro-console-consumer
используйте сериализатор json для печати данных, чтобы вы могли их прочитать.В вашем коде тип данных поля будет правильно интерпретирован так, как вы хотите.
РЕДАКТИРОВАТЬ: Если вам нужна абсолютная запись в формате json, есть человек, который хотел изменить представление в более читаемый json и разработал набор кодировщика / декодера, чтобы использовать вместо значения по умолчанию:
https://github.com/zolyfarkas/avro/commit/8926d6e9384eb3e7d95f05a9d1653ba9348f1966