我正在寻找将数据从Oracle 11g传输到Kafka的解决方案。我希望使用GoldenGate,但这似乎只适用于Oracle 12c。 Confluent平台是最好的方式吗?
谢谢!
答案 0 :(得分:2)
首先,一般的答案是:将Oracle(数据库)连接到Kafka的最佳方法是使用Confluent Platform和Kafka的Connect API以及GoldenGate的即用型连接器。请参阅https://www.confluent.io/product/connectors/中“认证连接器”部分中的GoldenGate / Oracle条目。列出的GoldenGate Kafka连接器由Oracle维护。
Confluent平台是最好的方式吗?
因此,一般来说,上述问题的答案是:“是的,确实如此。”
但是,正如您针对Oracle版本的特定问题所指出的,Oracle遗憾的是在其GoldenGate连接器的自述文件中包含以下信息:
支持的版本
Oracle GoldenGate Kafka Connect处理程序/格式化程序已编码 使用以下产品版本进行测试。
- Oracle GoldenGate for Big Data 12.2.0.1.1
- Confluent IO Kafka / Kafka Connect 0.9.0.1-cp1
Oracle GoldenGate Kafka Connect可能需要移植 处理程序/格式化程序与其他版本的Oracle GoldenGate一起使用 大数据和/或汇合IO Kafka / Kafka Connect
这意味着连接器不能与Oracle 11g一起使用,至少就我所知。
很抱歉,如果这不能解答您的具体问题。至少我想给你一些关于一般方法的反馈。如果我确实遇到了更具体的答案,我会更新此文本。
2017年3月15日更新:目前您最好的选择是使用Confluent's JDBC connector。该连接器无法为您提供与Oracle的原生GoldenGate连接器完全相同的功能集。
答案 1 :(得分:0)
Oracle GoldenGate
和Confluent Platform
无法比较。
Confluent Platform
提供完整的流媒体平台,是多个软件的集合,可用于流式传输数据,其中GoldenGate
是复制和数据集成软件。
同样GoldenGate
对于数据库复制非常可靠,因为它维护了事务完整性,目前Kafka Mirror Maker
或Confluent's Replicator
也不能这样说。
答案 2 :(得分:0)
如果您只需要纯事务处理-也请考虑使用OpenLogReplicator。它支持从11.2.0.1。版开始的Oracle数据库。
它可以以两种格式向Kafka进行交易:
经典格式-当每笔交易都是一条Kafka消息(每条Kafka消息有多个DMLS)
Debezium样式格式-事务被分割-每个DML都是一条Kafka消息
已经有一个工作版本。你可以尝试一下。
答案 3 :(得分:-1)
现在,我正在使用ojdbc6连接到Oracle 11g。这已经足够好,但并不完美,特别是在使用池模式检查原始表上是否有新更新时。
我也尝试使用某种模式读取所有表,但是效果不佳。
将Oracle DB连接到Kafka的最佳模式(特别是当表非常宽时,对于列而言)是对连接器使用查询。通过这种方式,可以确保选择正确的字段并对数字进行强制转换如果您使用的是Avro。