【问题标题】:How to integrate Oracle and Kafka如何集成 Oracle 和 Kafka
【发布时间】:2015-07-07 21:09:13
【问题描述】:

我一直在尝试找到在单个 Oracle 11g R2 实例中捕获更改通知并将这些事件传递到 Apache Kafka 队列的最有效/最有效的方法,但我无法找到任何简单的示例或教程沿着这些思路。

我在 Oracle 方面看到了一些可能性(Streams、Change Data Capture、triggers (yuck) 等),但我仍然不确定哪个是最好的选择。

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

任何建议、建议或示例将不胜感激。谢谢。

【问题讨论】:

  • 嗨,我也在做同样的事情。你搞定了吗?
  • 不幸的是我没有。解决方案将是实施类似 LinkedIn 的 DataBus(所有表上的触发器)或购买 GoldenGate。
  • 还有一些基于 logminer 的解决方案,比如 striim。我也在评估同样的情况。或者您可以创建自己的内部软件
  • 如果您只是关注事件并且不想复制数据,您不妨看看 oracle 的 Database Change Notification feature over jdbc thin driver docs.oracle.com/database/121/JJDBC/dbchgnf.htm

标签: oracle apache-kafka change-data-capture oracle-streams


【解决方案1】:

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

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

如果你有这个问题,请告诉我,祝你好运......

【讨论】:

    【解决方案2】:

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

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

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

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

    • 它完全在内存中工作

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

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

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

    免责声明 #2:致其他 StackOverflow 用户:请不要删除此答案。这个问题有很多重复。但这是第一个问题,其他重复项应在此处重定向并标记为重复项。不是其他方式。我已从其他问题中删除了所有其他答案,并将此答案作为主要答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-31
      • 2020-11-12
      • 2017-06-30
      • 2017-11-29
      • 2017-12-06
      • 2016-04-29
      • 2023-04-05
      • 2021-01-03
      相关资源
      最近更新 更多