【问题标题】:How to load oracle table data into kafka topic?如何将oracle表数据加载到kafka主题中?
【发布时间】:2020-10-15 20:55:09
【问题描述】:

如何将oracle表数据加载到kafka topic中?我做了一些研究并知道,我应该使用 CDC 工具,但所有 CDC 工具都是付费版本,有人能建议我如何实现吗?

【问题讨论】:

标签: oracle apache-kafka cdc


【解决方案1】:

您会发现这篇文章很有用:No More Silos: How to Integrate your Databases with Apache Kafka and CDC

它详细介绍了您的所有选项和当前可用的工具。简而言之,您可以使用 Kafka Connect JDBC 连接器进行批量(或基于查询的 CDC),或者您可以使用基于日志的 CDC 方法以及支持 Oracle 作为源的多个 CDC 工具之一,包括 Attunity、GoldenGate、SQ数据和 IBM 的 IIDR。

您通常会发现,如果您为数据库(例如 Oracle、DB2 等)付费,您将不得不为基于日志的 CDC 工具付费。开源 CDC 工具可用于开源数据库。例如,Debezium 是开源的,可以很好地与 MongoDB、MySQL 和 PostgreSQL 配合使用。

【讨论】:

  • 谢谢@Robin的回复。如果没有Confluent Platform,是否可以通过jdbc源连接器从oracle表中获取cdc数据到Kafka connect?。
  • Kafka Connect 是 Apache Kafka 的一部分。 JDBC 连接器是开源的,可用standalone 或作为Confluent Platform 的一部分提供。
【解决方案2】:

您可能对Debezium 项目感兴趣,该项目为各种数据库提供开源 CDC 连接器。其中,我们提供one for Oracle DB。请注意,此连接器目前基于 Oracle 的 XStream API,它本身需要单独的许可,但我们希望尽快添加完全免费的替代方案。

免责声明:我是 Debezium 的负责人

【讨论】:

  • 您好 Gunnar,关于 Oracle CDC 连接器的免费替代方案的任何更新?感谢您开发 debezium。
  • 嗨 Gunnar,我阅读了 debezium 的内部结构,但如果在更新 bin 日志中的偏移量之前连接器出现故障,它也可以向 kafka 发送重复消息。在这种情况下,消费者需要是幂等的。有什么办法可以避免kafka中的重复消息
【解决方案3】:

请参考 kafka jdbc 源码连接器。下面是链接 https://docs.confluent.io/current/connect/connect-jdbc/docs/index.html

【讨论】:

  • 是否可以在没有confluent的情况下连接jdbc source connect?
  • 是的,那么您必须使用 kafka 连接框架编写自己的自定义 jdbc 连接器
  • 感谢 Liju 的回复,能否提供任何链接,以便我编写自定义 jdbc 连接器?
【解决方案4】:

您不需要更改数据捕获 (CDC) 工具即可将数据从 Oracle 表加载到 Kafka 主题中。

您可以使用 Kafka Confluent's JDBC Source Connector 来加载数据。

但是,如果您需要捕获删除和更新,则必须使用 CDC 工具,您需要为此付费。 Confluent 已对以下 CDC 工具(源连接器)进行了认证:

  1. Attunity
  2. Dbvisit
  3. Striim
  4. Oracle GoldenGate

【讨论】:

  • SQ Data 和 IBM 的 IIDR 也支持 Oracle 作为来源。
  • 谢谢 Giorgos,将尝试 Kafka Confluent 的 JDBC Source Connector。
【解决方案5】:

正如其他人所提到的,CDC 需要付费产品。如果您只是想尝试一下,Striim 可在前 30 天免费使用。

https://www.striim.com/instant-download/

包括 JDBC 在内的“免费”选项。但如果您真的想使用触发器来捕获更改,则会在数据库上引入大量负载。

免责声明:我在 striim 工作

【讨论】:

    【解决方案6】:

    这里有一个基于 logminer 的 Oracle 数据库自定义 Kafka 源连接器:

    https://github.com/erdemcer/kafka-connect-oracle

    此项目正在开发中。

    【讨论】:

      【解决方案7】:

      您可能对OpenLogReplicator 感兴趣。它是一个完全用 C++ 编写的开源 GPL 许可工具。它读取 Oracle Redo 日志的二进制格式并将它们发送到 Kafka。

      它非常快 - 您可以轻松实现低延迟,因为它完全在内存中运行。它支持自 11.2.0.1 以来的所有 Oracle 数据库版本,并且不需要额外的许可。

      它可以在数据库主机上工作,但您也可以将其配置为使用来自另一台主机的 sshfs 读取重做日志 - 数据库负载最小。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-26
        • 1970-01-01
        • 2017-11-07
        • 2021-10-23
        • 2021-06-26
        • 2021-08-04
        • 2021-09-02
        • 1970-01-01
        相关资源
        最近更新 更多