我想构建一个Kafka Connector,以便几乎实时地从数据库中检索记录。我的数据库是Oracle Database 11g
企业版11.2.0.3.0版,表中有数百万条记录。首先,我想使用CDC向数据库添加最小负载。其次,我想基于LastUpdate字段检索记录,该字段在特定日期后具有值。
在汇合处搜索时,我发现的唯一开放源代码连接器是“Kafka Connect JDBC”
。我认为该连接器没有CDC机制,并且在该连接器首次启动时无法检索数百万条记录。我认为替代解决方案是Debezium,但是Confluent站点上没有Debezium Oracle Connector,我相信它是beta版。
您会建议哪种解决方案?我对Kafka Connect JDBC或Debezium Connector的假设有问题吗?还有其他解决方案吗?
答案 0 :(得分:0)
对于效率较低的基于查询的CDC,可以使用JDBC source connector。对于基于日志的CDC,我知道几个选项,但是其中一些需要许可证:
1)Attunity Replicate,允许用户使用图形界面创建从生产者系统到Apache Kafka的实时数据管道,而无需进行任何手动编码或编写脚本。我使用Attunity Replicate for Oracle-> Kafka已有两年了,对此感到非常满意。
2)Oracle GoldenGate,需要许可证
3)Oracle Log Miner不需要任何许可证,并且由Attunity和kafka-connect-oracle都使用,这是一个Kafka源连接器,用于从Oracle捕获所有基于行的DML更改并将这些更改流式传输到Kafka。变更数据捕获逻辑基于Oracle LogMiner解决方案。
答案 1 :(得分:0)
我们有许多客户使用IBM的IIDR(信息领域数据复制)产品将Oracle数据库(以及Z大型机,I系列,SQL Server等)中的数据复制到Kafka中。
无论使用哪种来源,都可以将数据标准化为Kafka中的多种格式之一。包含的可选格式的示例是...
该解决方案具有高度的可扩展性,并且经过测量可以将更改复制到每秒100,000行中。
我们还具有将与Kafka并行写入的数据重构回其原始源顺序的专有能力。因此,尽管数据已写入多个分区和主题,但原始总顺序还是可以知道的。此功能称为TCC(交易一致的使用者)。
在此处观看视频和幻灯片... https://kafka-summit.org/sessions/exactly-once-replication-database-kafka-cloud/