大佬们Flink CDC中是不是oracle现在只能做源库不能做目标库?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在当前的Flink CDC支持中,Oracle数据库目前只能作为源库使用,而不能直接作为目标库。以下是详细说明和相关依据:
Flink CDC可以通过连接器实现从Oracle数据库捕获变更数据(CDC),并将这些数据同步到其他目标端系统中。例如,在PolarDB PostgreSQL版(兼容Oracle)的场景中,Flink CDC可以捕获Oracle数据库中的变更数据,并将其同步到其他目标存储(如Hologres或其他数据库)。
wal_level
参数设置为logical
。REPLICA IDENTITY
设置为FULL
。LOGIN
和REPLICATION
权限,并对订阅表具有SELECT
权限。根据现有文档,Flink CDC目前并不支持将Oracle数据库直接作为目标库写入数据。以下是一些相关的限制和说明: - 在实时计算Flink版中,目标端支持的数据库包括Hologres、MySQL等,但并未明确提到Oracle作为目标库的支持。 - 对于目标库的支持,通常需要特定的连接器实现。例如,Hologres和MySQL有专门的连接器支持数据写入,而Oracle目前没有类似的连接器支持。
如果需要将数据写入Oracle数据库,可以考虑以下替代方案: - 通过JDBC连接器间接写入:Flink提供了开源的JDBC连接器,可以通过手动上传Oracle的Driver(如ojdbc8
)来实现数据写入。需要注意的是,这种方式的性能和稳定性可能不如原生连接器,且需要自行测试和验证。 - 中间存储过渡:可以先将数据同步到支持的目标库(如Hologres或MySQL),再通过ETL工具或其他方式将数据导入Oracle数据库。
wal_level
和REPLICA IDENTITY
等参数正确配置,否则可能导致CDC无法正常工作。综上所述,Oracle目前仅能作为Flink CDC的源库,而不能直接作为目标库。如果需要将数据写入Oracle,可以通过JDBC连接器或中间存储的方式实现,但需注意性能和兼容性问题。