flinkcdc oracle connector 源库有600万数据,flinkui显示只有60万,这个是咋回事呢,flinkcdc2.2版本,flink1.13版本,oracle19?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,Flink CDC Oracle Connector 在源库中有 600 万数据,但 Flink UI 显示只有 60 万数据。这种情况可能由以下几个原因导致:
Flink CDC 在读取 Oracle 数据时分为两个阶段:全量阶段(Snapshot Phase) 和 增量阶段(Binlog Phase)。如果全量阶段未能正确完成,可能会导致部分数据未被读取。
chunk.size
,以优化全量阶段的读取效率。例如:
'chunk.size' = '10000'
这将控制每个分片的大小,避免因分片过大或过小导致的问题。
在全量阶段完成后,Flink CDC 会切换到增量阶段,通过 Oracle 的 Redo Log 或 Archive Log 捕获增量数据。如果增量阶段的数据消费速度较慢,可能导致 Flink UI 显示的数据量与实际数据量不符。
SHOW PARAMETER ARCHIVE_LAG_TARGET;
ALTER SYSTEM SET ARCHIVE_LAG_TARGET=1800 SCOPE=BOTH;
Flink CDC 在读取数据时,可能会对数据进行过滤或转换。如果配置了过滤条件或自定义的 DeserializationSchema,可能导致部分数据被丢弃。
Flink UI 显示的数据量是基于 Source 端的统计信息。如果统计信息更新延迟,可能导致显示的数据量与实际数据量不符。
execution.checkpointing.interval: 60000
execution.checkpointing.mode: EXACTLY_ONCE
您提到使用的是 Flink CDC 2.2 版本和 Flink 1.13 版本。可能存在版本兼容性问题,导致数据读取异常。
根据上述分析,建议您按照以下步骤排查问题: 1. 检查全量阶段是否成功完成,并调整分片大小参数。 2. 检查增量阶段是否存在反压或 Log 文件清理问题。 3. 确认是否存在数据过滤或转换问题。 4. 观察 Flink UI 数据统计是否延迟,并优化 Checkpoint 配置。 5. 考虑升级到更高版本的 Flink CDC 和 Flink。
如果问题仍未解决,请提供更详细的日志信息,以便进一步分析。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。