我们有一个用例,我们使用融合的Kafka连接到源和接收数据。它就像一个典型的ETL。使用融合kafka连接的ETL
我们想了解卡夫卡连接是否可以识别先前流之间的增量变化。即我们只想将改变的数据发送给客户端而不是整个表或视图。另外,我们不希望执行显式代码来通过源和目标数据库上的查询来识别更改。
有没有其他的首选方法呢?
我们有一个用例,我们使用融合的Kafka连接到源和接收数据。它就像一个典型的ETL。使用融合kafka连接的ETL
我们想了解卡夫卡连接是否可以识别先前流之间的增量变化。即我们只想将改变的数据发送给客户端而不是整个表或视图。另外,我们不希望执行显式代码来通过源和目标数据库上的查询来识别更改。
有没有其他的首选方法呢?
你看过一个CDC(更改数据捕获)方法。有几个connectors在数据库和流事件中读取提交日志或类似内容。使用这些事件你会得到表中的每一个变化。
实例
甲骨文金门 - http://www.oracle.com/technetwork/middleware/goldengate/oracle-goldengate-exchange-3805527.html
的Postgres - https://github.com/debezium
MySQL的 - https://github.com/debezium
正如gasparms说,使用CDC吨ool从数据库中提取所有更改事件。然后,您可以使用Kafka Streams或KSQL按照ETL的要求过滤,加入和聚合。
你想从中获取数据的源系统是什么?对于Oracle(以及其他几个来源),从GoldenGate 12.3.1开始,他们实际上将Kafka Connect处理程序捆绑为download本身的一部分。您还有其他选项,例如DBVisit。
对于开放源代码数据库,Debezium绝对符合法案,并且有一个不错的tutorial here。