甲骨文和卡夫卡如何整合

How to integrate Oracle and Kafka

我一直在努力寻找最 efficient/effective 的方法来捕获单个 Oracle 11g R2 实例中的更改通知并将这些事件传送到 Apache Kafka 队列,但我一直无法找到任何遵循这些原则的简单示例或教程。

我已经在 Oracle 方面看到了一些可能性(Streams、Change Data Capture、触发器(讨厌)等等),但我仍然不确定哪个是最好的追求。

这是一个在 GitHub 上利用 MySQL 和 Kafka 的项目,名为 mypipe,我只是没有看到任何类似的 Oracle。我不确定是否最好专注于为此编写一个 Oracle 程序包,或者类似于 mypipe 项目等的层..

如有任何建议、建议或示例,我们将不胜感激。谢谢。

我认为一种方法可能是将 Oracle GoldenGate 用于大数据(我自己对此进行了研究),显然它最有可能是一种昂贵的解决方案 ($)?

https://blogs.oracle.com/dataintegration/entry/introducing_oracle_goldengate_for_big

让我知道你是否对此有所了解,祝你好运......

目前只有一种工具是开源的并且对数据库的影响很小。这是 OpenLogReplicator.

  • 许可证是 GPL - 它是完全开源的

  • 它对源数据库的影响非常小 - 它不需要许可选项,只需在源上打开补充日志记录(与所有其他复制工具一样)

  • 它完全用 C++ 编写 - 因此它具有非常低的延迟和高吞吐量

  • 完全在内存中工作

  • 它支持自 11.2.0.1 以来的所有 Oracle 数据库版本(11.2、12.1、12.2、18、19)

它读取二进制格式的Oracle Redo 日志并将它们发送到Kafka。它可以在数据库主机上工作,但您也可以将其配置为使用来自另一台主机的 sshfs 读取重做日志 - 数据库负载最小。

免责声明 #1:我是此解决方案的作者

免责声明 #2:致其他 Whosebug 用户:请不要删除此答案。这个问题有很多重复。但这是第一个问题,其他重复项应在此处重定向并标记为重复项。不是相反。我已经删除了其他问题的所有其他答案,只留下这个答案作为主要答案。