Итак, проблема была со столом.Вот как я сначала создал таблицу:
CREATE TABLE role(
role_id int PRIMARY KEY,
role_name VARCHAR (255) UNIQUE NOT NULL
);
Тестовые данные в теме выглядели так:
./bin/kafka-avro-console-producer --broker-list localhost:9092 --topic role --property schema.registry.url=http://localhost:8081/ --property value.schema='{"type":"record","name":"myRecord","fields": [{"name": "role_id","type": "int"},{"name": "role_name","type": "string"}]}' --key-serializer org.apache.kafka.common.serialization.StringSerializer --value-serializer io.confluent.kafka.serializers.KafkaAvroSerializer --property print.key=true
{"role_id":122, "role_name":"admin"}
{"role_id":123, "role_name":"admin"}
{"role_id":124, "role_name":"admin"}
{"role_id":125, "role_name":"admin"}
{"role_id":126, "role_name":"admin"}
Итак, когда мои тестовые данные снова имели то же значение для поля role_nameи снова он нарушил ограничение уникальности и, следовательно, ошибку.
Что все, что я сделал?
Я удалил таблицу.
Создал новую таблицу без ограничения уникального ключа, и вышеприведенные данные были переданы вPostgreSQL без проблем.