将数据从 Oracle 11g 流式传输到 Kafka

Streaming data from Oracle 11g to Kafka

我正在寻找将数据从 Oracle 11g 流式传输到 Kafka 的解决方案。我希望使用 GoldenGate,但这似乎只适用于 Oracle 12c。 Confluent 平台是最好的选择吗?

谢谢!

Oracle GoldenGateConfluent Platform 没有可比性。

Confluent Platform 提供完整的流媒体平台,是可用于流式传输数据的多个软件的集合,其中 GoldenGate 是复制和数据集成软件。

此外,GoldenGate 对于数据库复制来说是高度可靠的,因为它保持了事务的完整性,目前不能对 Kafka Mirror MakerConfluent's Replicator 说同样的话。

首先,一般的答案是:将 Oracle(数据库)连接到 Kafka 的最佳方法确实是将 Confluent Platform 与 Kafka 的 Connect API 结合使用,并结合 GoldenGate 的即用型连接器.请参阅 https://www.confluent.io/product/connectors/ 部分 "Certified Connectors" 中的 GoldenGate/Oracle 条目。列出的用于 GoldenGate 的 Kafka 连接器由 Oracle 维护。

Is the Confluent platform the best way to go?

因此,一般来说,上述问题的答案是:"Yes, it is."

但是,正如您针对有关 Oracle 版本的具体问题指出的那样,不幸的是,Oracle 在其 GoldenGate 连接器的自述文件中包含以下信息:

Supported Versions

The Oracle GoldenGate Kafka Connect Handler/Formatter is coded and tested with the following product versions.

  • Oracle GoldenGate for Big Data 12.2.0.1.1
  • Confluent IO Kafka/Kafka Connect 0.9.0.1-cp1

Porting may be required for Oracle GoldenGate Kafka Connect Handler/Formatter to work with other versions of Oracle GoldenGate for Big Data and/or Confluent IO Kafka/Kafka Connect

这意味着连接器不适用于 Oracle 11g,至少据我所知。

抱歉,如果这不能回答您的具体问题。至少我想给你一些关于一般方法的反馈。如果我确实遇到更具体的答案,我会更新此文本。

2017 年 3 月 15 日更新: 你目前最好的选择是使用 Confluent's JDBC connector。不过,该连接器无法为您提供与 Oracle 的本机 GoldenGate 连接器完全相同的功能集。

现在我正在使用 ojdbc6 连接到 Oracle 11g。它足够好但并不完美,尤其是在使用池模式检查原始表上是否有新更新时。

我也尝试使用特定模式读取所有表格,但这效果不佳。

将 Oracle 数据库连接到 Kafka 的最佳模式(尤其是当表非常宽、按列排列时,是对连接器使用查询。这样,您可以确保选择正确的字段并进行一些转换如果您使用的是 avro,则为数字。

如果您只需要纯事务 - 请考虑使用 OpenLogReplicator。它支持 11.2.0.1 版本的 Oracle 数据库。

它可以生成两种格式的 Kafka 交易:

  • 经典格式 - 当每个事务都是一个 Kafka 消息时(每个 Kafka 消息有多个 DMLS)

  • Debezium 风格格式 - 交易被分割 - 每个 DML 是一个 Kafka 消息

已经有一个工作版本。你可以试试。