1

我是 Kafka Connect 和 MongoDB 的新手。我在 Kafka 主题中有一条记录,其值为 ,{ "Id": "foo" }我希望将其作为文档存储在 mongo 的集合中时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\"}]"类似于 mongo sink 创建的配置:https ://github.com/mongodb/mongo-kafka/blob/11bac7636f0d6b0e3313c84445777253d36c2042/docker/run.sh#L108 。请求顺利通过,在 mongodb 中创建记录,但未按预期映射。

4

1 回答 1

2

您应该能够使用单个消息转换 ( 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"
于 2019-10-14T20:15:37.240 回答