使用 mongo-kafka 作为接收器连接器,如何将主题记录的值字段映射到另一个值?
Using mongo-kafka as sink connector, how do I map a topic record's value field to another value?
我是 Kafka Connect 和 MongoDB 的新手。我在 Kafka 主题中有一个值为 { "Id": "foo" }
的记录,我希望 Id
在作为文档存储在 mongo 的集合中时映射到 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 接收器创建的配置:https://github.com/mongodb/mongo-kafka/blob/11bac7636f0d6b0e3313c84445777253d36c2042/docker/run.sh#L108。
请求顺利通过,在 mongodb 中创建了记录,但未按预期进行映射。
您应该能够使用单个消息转换(https://www.confluent.io/blog/simplest-useful-kafka-connect-data-pipeline-world-thereabouts-part-3/), specifically the ReplaceField 转换。您可以将其添加到您的连接器配置中:
"transforms": "RenameField",
"transforms.RenameField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameField.renames": "Id:BAR"
我是 Kafka Connect 和 MongoDB 的新手。我在 Kafka 主题中有一个值为 { "Id": "foo" }
的记录,我希望 Id
在作为文档存储在 mongo 的集合中时映射到 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 接收器创建的配置:https://github.com/mongodb/mongo-kafka/blob/11bac7636f0d6b0e3313c84445777253d36c2042/docker/run.sh#L108。
请求顺利通过,在 mongodb 中创建了记录,但未按预期进行映射。
您应该能够使用单个消息转换(https://www.confluent.io/blog/simplest-useful-kafka-connect-data-pipeline-world-thereabouts-part-3/), specifically the ReplaceField 转换。您可以将其添加到您的连接器配置中:
"transforms": "RenameField",
"transforms.RenameField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameField.renames": "Id:BAR"