如何使用Kafka JDBC Connector跟踪具有特定列值的行(按ID)?

时间:2019-04-07 08:24:19

标签: apache-kafka apache-kafka-connect

我有一个包含大量记录的表。有一个列定义记录的类型。我想在该列中收集具有特定值的记录。种类:

Select * FROM myVeryOwnTable WHERE type = "VERY_IMPORTANT_TYPE" 

我注意到,当我选择增量(+ timestamp)模式时,不能在自定义查询中使用WHERE子句,否则,如果我自己进行过滤,则需要小心。 我想要实现的背景是,我使用Logstash将某些类型的数据从MySQL传输到ES。通过使用可以包含where子句的查询,可以轻松实现这一点。但是,使用Kafka,在DB中插入新行后,我可以更快(几乎立即)传输数据。

感谢您的任何提示或建议。


感谢@wardziniak,我能够进行设置。

query=select * from (select * from myVeryOwnTable p where type = 'VERY_IMPORTANT_TYPE') p
topic.prefix=test-mysql-jdbc-
incrementing.column.name=id

但是,我期待一个主题test-mysql-jdbc-myVeryOwnTable,所以我已经为此注册了我的消费者。但是,由于跳过了使用上面显示的查询的表名,因此我的主题的命名与上面定义的前缀完全相同。因此,我刚刚更新了属性topic.prefix=test-mysql-jdbc-myVeryOwnTable,它似乎运行良好。

1 个答案:

答案 0 :(得分:1)

您可以在Jdbc源连接器的fun String.swapCase() = map { when { it.isUpperCase() -> it.toLowerCase() it.isLowerCase() -> it.toUpperCase() else -> it } }.joinToString("") println("HEllo WoRLd".swapCase()) // heLLO wOrlD 属性中使用子查询。

示例JDBC Source Connector配置:

query
相关问题