Я новичок в Kafka Connect и MongoDB. У меня есть запись в теме Кафки со значением { "Id": "foo" }, и я бы хотел, чтобы Id отображался на BAR при сохранении в виде документа в коллекции в монго. Ожидаемый результат будет { "BAR": "foo" }. Что я должен попробовать, или как мне настроить это?
{ "Id": "foo" }
Id
BAR
{ "BAR": "foo" }
Я использую это как ссылку: https://github.com/mongodb/mongo-kafka/blob/master/docs/sink.md
Я пытался добавить "field.renamer.mapping": "[{\"oldName\":\"Id\", \"newName\": \"BAR\"}]" и "field.renamer.mapping": "[{\"oldName\":\"value.Id\", \"newName\": \"BAR\"}]" кКонфигурация, аналогичная созданию раковины Монго здесь: https://github.com/mongodb/mongo-kafka/blob/11bac7636f0d6b0e3313c84445777253d36c2042/docker/run.sh#L108. Запрос проходит без ошибок, создает запись в mongodb, но не соответствует ожидаемому.
"field.renamer.mapping": "[{\"oldName\":\"Id\", \"newName\": \"BAR\"}]"
"field.renamer.mapping": "[{\"oldName\":\"value.Id\", \"newName\": \"BAR\"}]"
Вы должны иметь возможность использовать преобразование одного сообщения (https://www.confluent.io/blog/simplest-useful-kafka-connect-data-pipeline-world-thereabouts-part-3/),, в частности преобразование ReplaceField . Вы должны добавить это в конфигурацию вашего соединителя:
"transforms": "RenameField", "transforms.RenameField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value", "transforms.RenameField.renames": "Id:BAR"