我正在使用debeziummysql连接器将数据库更改事件从mysql数据库流式传输到kafka。我需要对某些指定表(而不是其他表)中的记录应用特定的转换。有没有办法只使用kafka connect单个消息转换(没有kafka流或ksql)?我甚至不介意写一个自定义smt。但我找不到如何指定要应用smt的表/主题的消息。谢谢您。
[upd]经过简短的调查,我决定使用ksql来实现这一点。谢谢大家的回答
我正在使用debeziummysql连接器将数据库更改事件从mysql数据库流式传输到kafka。我需要对某些指定表(而不是其他表)中的记录应用特定的转换。有没有办法只使用kafka connect单个消息转换(没有kafka流或ksql)?我甚至不介意写一个自定义smt。但我找不到如何指定要应用smt的表/主题的消息。谢谢您。
[upd]经过简短的调查,我决定使用ksql来实现这一点。谢谢大家的回答
2条答案
按热度按时间kxe2p93d1#
如果您正在实现一个定制的smt,那么您可以简单地检查传入记录的主题,并返回那些您不希望应用转换逻辑的主题的未更改的记录。
3wabscal2#
smt不能只应用于特定的主题。连接器无论是接收器还是源,总是将定义的smt应用于它处理的每条消息。
有一个选项,smt有一些复杂的逻辑,并且依赖于消息中的一些数据(主题名、分区号、键等)来做一些工作。不建议使用“描述”方法,因为smt应该进行轻量级处理(对于更复杂的处理,应该使用kafka流)。这就是为什么smt
org.apache.kafka.connect.transforms.*
我没有这样的逻辑。如果只想将smt应用于特定的主题,可以为每个表(主题)创建不同的连接器。