Debezium SMT 转换重新路由关键字段设置不起作用

Posted

技术标签:

【中文标题】Debezium SMT 转换重新路由关键字段设置不起作用【英文标题】:Debezium SMT transform reroute key field setting is not working 【发布时间】:2021-10-17 01:38:52 【问题描述】:

我正在尝试使用以下配置。重新路由到一个主题效果很好。但是,配置为关键字段的字段“tableType”不会添加到架构中。

我也尝试只使用“transforms.Reroute.key.enforce.uniqueness=true”来获取默认表名,但它也不起作用。

transforms="Reroute"
transforms.Reroute.type="io.debezium.transforms.ByLogicalTableRouter"
transforms.Reroute.topic.regex="(.*)\\.([A-Z]3,5+)\\.(.*)$"
transforms.Reroute.topic.replacement="$1.tables.$3"
transforms.Reroute.key.field.name="tableType"
transforms.Reroute.key.field.regex="(.*)\\.([A-Z]3,5+)\\.(.*)$"
transforms.Reroute.key.field.replacement="$2"
transforms.Reroute.key.enforce.uniqueness=true

key.converter="io.confluent.connect.avro.AvroConverter"
value.converter="io.confluent.connect.avro.AvroConverter"
...

https://issues.redhat.com/browse/DBZ-3871

【问题讨论】:

【参考方案1】:

显然,它正在工作,但它保存在键中 - 而不是值中,这导致了混乱。

【讨论】:

以上是关于Debezium SMT 转换重新路由关键字段设置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Debezium 连接器发件箱转换

使用 Debezium 提取密钥的转换中不存在字段

Debezium 时间戳问题,无法转换为本地时区

Kafka SMT ValueToKey - 如何使用多个值作为关键?

如何设置 Kafka 连接器以在 Debezium 中使用自定义转换?

使用debeziumkafka-connect将postgres数据实时同步到kafka中,表topic重新路由