各位大佬 有没有遇到过这样一个问题 flink cdc 读取oracle 只读到了第一次flinksql读取的位置,后续在客户端插入数据 flink cdc接收不到数据 、重新读取数据也读不到新增的数据 flink 1.15.3 oracle 19c flink cdc 2.3.0
set execution.checkpointing.interval=3000; CREATE TABLE tb_car ( ID STRING NOT NULL, CAR_NO STRING, PORTED BOOLEAN, DRIVER STRING, PHONE STRING, CAR_TYPE TINYINT, CREATE_USER_NO STRING NOT NULL, CREATE_DATE_TIME STRING NOT NULL, UPDATE_USER_NO STRING, UPDATE_DATE_TIME STRING, COMPANY_ID STRING NOT NULL, PRIMARY KEY(ID) NOT ENFORCED ) WITH ( 'connector' = 'oracle-cdc', 'scan.startup.mode' = 'initial', 'hostname' = 'xxx', 'port' = '1521', 'username' = 'xxx', 'password' = 'xxx', 'database-name' = 'oatest', 'schema-name' = 'hcuser', 'table-name' = 'TB_CAR' );
从您的描述来看,您遇到了一个问题:Flink CDC 在读取 Oracle 数据时,只能读取到第一次启动 Flink SQL 任务时的数据,后续新增的数据无法被 Flink CDC 接收到。您使用的版本为 Flink 1.15.3 和 Flink CDC 2.3.0,以及 Oracle 19c。
可能的原因和解决方案如下:
1. Flink CDC 版本兼容性:Flink CDC 2.3.0 版本的 Oracle Connector 使用基于 Oracle LogMiner 的实现方式,可能与 Flink 1.15.3 版本存在不兼容的问题。建议尝试升级 Flink CDC 到 2.4.0 或更高版本,其中 Debezium Connector 的实现方式已得到改进,能更好地处理增量数据变化。
2. Oracle Connector 配置:请确保正确配置了 Oracle Connector 的参数,包括用户名、密码、连接地址、表名等。如果配置不正确,可能导致 CDC 无法正确读取 Oracle 数据库中的数据。
3. Oracle 数据库日志模式:Flink CDC 的 Oracle Connector 依赖于 Oracle 数据库的日志模式。请确保您的 Oracle 数据库已启用归档日志模式,并正确设置了日志保留时间和归档比率。
4. Flink CDC 任务并行度:Flink CDC 任务的并行度设置可能会影响 CDC 的读取速度和效率。根据实际情况,调整 Flink CDC 任务的并行度可能有助于提高数据读取性能。
综上所述,您可以尝试升级 Flink CDC 版本、检查 Oracle Connector 配置、确认 Oracle 数据库日志模式以及调整 Flink CDC 任务的并行度来解决只读到第一次数据的问题。如果问题仍然存在,请进一步排查日志和错误信息,以便更好地定位问题。
从您的问题描述来看,可能是由于 Flink CDC 2.3.0 在读取 Oracle 数据库时,没有正确识别到增量数据的变化,导致无法接收新增的数据。这可能与 Flink CDC 2.3.0 版本的实现方式有关,因为 Flink CDC 2.3.0 版本使用的是基于 Oracle LogMiner 的实现方式,而不是基于 Debezium 的实现方式。
为了解决该问题,您可以考虑以下几个方案:
升级 Flink CDC 版本
Flink CDC 2.3.0 版本的 Oracle Connector 实现方式与 Flink 1.15.3 版本可能存在不兼容的问题,因此建议您升级到 Flink CDC 2.4.0 版本及以上,使用基于 Debezium 的实现方式。在 Flink CDC 2.4.0 版本及以上,Debezium Connector 的实现方式已经得到了改进,可以更好地处理增量数据的变化。
检查 Oracle Connector 配置
在使用 Flink CDC 时,需要正确配置 Oracle Connector 的参数,包括用户名、密码、连接地址、表名等。如果配置不正确,可能会导致 CDC 无法正确读取 Oracle 数据库中的数据。请确保您的 Oracle Connector 配置正确。
检查 Oracle 数据库日志模式
Flink CDC 的 Oracle Connector 依赖于 Oracle 数据库的日志模式,如果日志模式设置不正确,可能会导致 CDC 无法读取增量数据的变化。请确保您的 Oracle 数据库已开启归档日志模式,并配置了正确的日志保留时间和归档比率。
检查 Flink CDC 任务的并行度
Flink CDC 任务的并行度设置可能会影响 CDC 的读取速度和效率。请根据实际情
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。