我们有一个使用kafka连接到源和接收器数据的用例。它就像一个典型的etl。我们想了解kafka connect是否能够识别先前流之间的增量变化。i、 e.我们只想将更改后的数据发送给客户端,而不是整个表或视图。另外,我们不希望通过查询源数据库和目标数据库来执行显式代码来识别更改。有什么更好的方法吗?
ss2ws0br1#
您是否考虑过cdc(更改数据捕获)方法。在数据库和流事件中,有几个连接器可以读取提交日志或类似的日志。使用这些事件,您将获得表中的所有更改。示例甲骨文金门-http://www.oracle.com/technetwork/middleware/goldengate/oracle-goldengate-exchange-3805527.html博士后-https://github.com/debeziummysql-https://github.com/debezium
unguejic2#
正如gasparms所说,使用cdc工具从数据库中提取所有更改事件。然后可以使用kafka流或ksql根据etl的要求进行过滤、连接和聚合。您想从哪个源系统获取数据?对于oracle(以及其他一些源代码),从goldengate 12.3.1开始,它们实际上将kafka connect处理程序捆绑为下载本身的一部分。您还有其他选项,如dbvisit。对于开源dbs,debezium绝对适合,这里有一个很好的教程。
2条答案
按热度按时间ss2ws0br1#
您是否考虑过cdc(更改数据捕获)方法。在数据库和流事件中,有几个连接器可以读取提交日志或类似的日志。使用这些事件,您将获得表中的所有更改。
示例
甲骨文金门-http://www.oracle.com/technetwork/middleware/goldengate/oracle-goldengate-exchange-3805527.html
博士后-https://github.com/debezium
mysql-https://github.com/debezium
unguejic2#
正如gasparms所说,使用cdc工具从数据库中提取所有更改事件。然后可以使用kafka流或ksql根据etl的要求进行过滤、连接和聚合。
您想从哪个源系统获取数据?对于oracle(以及其他一些源代码),从goldengate 12.3.1开始,它们实际上将kafka connect处理程序捆绑为下载本身的一部分。您还有其他选项,如dbvisit。
对于开源dbs,debezium绝对适合,这里有一个很好的教程。