我们有一个使用案例,我们使用Kafka连接到Source和Sink数据。它就像一个典型的ETL。
我们想了解Kafka connect是否可以识别之前的流之间的增量变化。也就是说,我们只想将更改后的数据发送到客户端,而不是整个表或视图。此外,我们不希望通过查询源和目标数据库来执行显式代码来识别更改。
对此有什么更好的方法吗?
发布于 2017-10-11 16:04:35
正如gasparms所说,使用CDC工具从数据库中提取所有更改事件。然后,您可以使用Kafka Streams或KSQL根据ETL的需要进行过滤、连接和聚合。
您希望从哪个源系统获取数据?对于甲骨文(和其他几个来源),从GoldenGate 12.3.1开始,它们实际上将Kafka Connect处理程序捆绑为download本身的一部分。您还可以选择其他选项,如DBVisit。
对于开源数据库来说,Debezium绝对符合要求,而且有一个很好的tutorial here。
发布于 2017-10-11 03:23:31
您是否考虑过CDC (变更数据捕获)方法。有几个connectors读取数据库和流事件中的提交日志或类似日志。使用这些事件,您将获得表中的所有更改。
示例
甲骨文金门- http://www.oracle.com/technetwork/middleware/goldengate/oracle-goldengate-exchange-3805527.html
Postgres - https://github.com/debezium
MySQL - https://github.com/debezium
https://stackoverflow.com/questions/46674222
复制相似问题