我需要从一组相关的Oracle 11g表(父子节点和多个子节点)捕获任何已更改/删除/添加的数据,并在文件中捕获这组表数据。创建文件后,我可以重置捕获窗口,稍后(批处理模式)重复该过程。这些文件可以提供给感兴趣的各方。我不想创建自己开发的东西,而是想利用Oracle中的某些东西,比如CDC或同等的东西来执行这项任务。但是,我不确定Oracle CDC或等效功能是否可以捕获一组相关的表(即父项发生更改,所有子项数据也会被捕获,或者子项和父项都发生更改其他儿童数据被捕获),或11g / 12c(即将升级)中的许多功能中的哪一个最能满足要求。
将来我们希望将这些信息发布给一个或多个订阅者,一些是实时的,一些是批量的,这样我就可以确保所有订阅者在收到之前都收到了全套的更改数据。 ; s自动删除。
对上述两种情况的任何建议都将不胜感激。到目前为止,我还没有能够跟上所有Oracle的进步。作为一个说明,我们还有SSIS和Informatica,它们可以帮助解决方案。
答案 0 :(得分:0)
我不确定你是否还有任何解决方案。
最近,我评估了Oracle黄金门和一些使用oracle log miner在源头捕获变更数据的自定义解决方案提供商(ATTUnity,Striim)。
Oracle golden gate允许您指定整个架构或特定表来捕获更改。在您的情况下,您可以指定父子或所有相关表,并开始捕获更改。
在发布方面,他们有一些适配器,比如最近他们有大数据适配器,包括Kafka适配器。您还可以为任何特定需求编写自定义适配器。
黄金门工作的方式,它捕获来自DB的更改并写入其自己的文件调用跟踪文件。执行此操作的过程称为提取。 他们还有另一个进程replicat / pump,它读取跟踪文件并将其应用于目标数据库或发布到消息传递系统或大数据。
我已经使用oracle golden gate,kafka和spark源与oracle在源和目标上为我的客户开发了实时数据流应用程序。
只有问题与oracle黄金门是昂贵的。
请告诉我是否有帮助。
由于