mysql - 是否可以将 SMT(单一消息转换)仅应用于来自指定主题的消息

标签 mysql apache-kafka apache-kafka-connect debezium

我正在使用 Debezium MySql 连接器将数据库更改事件从 MySql 数据库流式传输到 Kafka。我需要对某些指定表中的记录(但不是其他表中的记录)应用特定的转换。有没有办法只使用 Kafka Connect 单消息转换(没有 Kafka Streams 或 KSQL)来做到这一点?我什至不介意编写自定义 SMT。但我找不到如何指定要应用 SMT 的表/主题的消息。谢谢。

[UPD] 经过简短的调查后,我决定使用 KSQL。谢谢大家的解答

最佳答案

您不能仅将 SMT 应用于特定主题。连接器(无论是接收器还是源)始终将定义的 SMT 应用于它处理的每条消息。

有一个选项,SMT 具有一些复杂的逻辑,并且取决于消息中的某些数据(主题名称分区号、键等)是否执行某些操作。不推荐使用Describe方法,因为SMT应该进行轻量级处理(对于更复杂的情况你应该使用Kafka Streams)。这就是为什么 org.apache.kafka.connect.transforms.* 的 SMT 没有这样的逻辑。

如果您只想将 SMT 应用到特定主题,您可以为每个表(主题)创建不同的连接器。

关于mysql - 是否可以将 SMT(单一消息转换)仅应用于来自指定主题的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55633590/

相关文章:

apache-kafka - 如何在kafka流中动态处理并发送到不同的主题

ssl - DataStax 接收器连接器 (kafka-connect-dse) 抛出 javax.net.ssl.SSLException : SSLEngine closed already

mongodb - 通过 debezium mongodb 连接器连接到 mongodb 时身份验证失败

mongodb - 当使用 debezium 从 mongoDB 读取时,KafkaConnect 生成具有空值的 CDC 事件

php - 如何创建如下表以及如何使用 PHP 将数据添加到这些表中?

mysql - SQL Like 不带 _

php mysql分组结果

mysql - 如何使用 phpmyadmin 复制 mysql 表和数据

java - KStream-KStream inner join 抛出java.lang.ClassCastException

apache-kafka - Kafka ksql 简单连接不起作用