如何使用smt转换不同主题的重命名字段

6l7fqoea  于 2021-07-15  发布在  Kafka
关注(0)|答案(1)|浏览(436)

我有多个主题需要在它显示的模式状态中重命名字段 Caused by: org.apache.kafka.connect.errors.ConnectException: Table: topic2 is missing field ([SinkRecordField{schema=Schema{STRING}, name='stand_user', isPrimaryKey=false}] 所以我的配置是

"topics":"topic1, topic2",
"transforms":"RenameField",
"transforms.RenameField.type":"org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameField.renames":"user:stand_user, user:session_user",

其中stand\u用户是topic1的一部分,而session\u用户是topic2的一部分,此时topic2出错,因为即使stand\u用户应该只在topic1中,它也不能确定stand\u用户。我试着把它分开

"topics":"topic1, topic2",
"transforms":"RenameTopic1Field, RenameTopic2Field",
"transforms.RenameTopic1Field.type":"org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameTopic1Field.renames":"user:stand_user",
"transforms.RenameTopic2Field.type":"org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameTopic2Field.renames":"user:session_user",

但是在rename中的下一个字段失败了相同的错误,任何建议都不能将主题rename分开

3duebb1j

3duebb1j1#

转换应用于配置文件中的所有主题
如果无法将特定转换应用于该连接器使用的单个主题,则会阻止连接器读取所有其他主题,因此必须创建单独的配置以隔离所需的行为

相关问题