开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flinkcdc采集oracle数据,存量阶段,哪位知道怎么解决这个问题呢?

flinkcdc采集oracle数据,存量阶段,checkpoints一直在等待程序把存量数据采集完之后再进行checkpoint,但是这样会导致checkpoints失败,哪位大佬知道怎么解决这个问题呢?

展开
收起
真的很搞笑 2024-01-01 09:00:59 87 0
3 条回答
写回答
取消 提交回答
  • image.png
    文档这里有写的,https://ververica.github.io/flink-cdc-connectors/release-2.4/content/connectors/oracle-cdc.html ,此回答整理自钉群“Flink CDC 社区”

    2024-01-02 03:50:26
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    要解决这个问题,可以尝试以下方法:

    1. 增加并行度:通过增加Flink CDC的并行度,可以加快数据采集的速度,从而减少存量阶段的时间。可以通过调整--parallelism参数来实现。

    2. 调整checkpoint间隔:将checkpoint间隔设置得更短,可以更快地触发checkpoint,从而减少存量阶段的时间。可以通过调整--checkpoint-interval参数来实现。

    3. 使用异步IO:Flink CDC默认使用同步IO,这可能会导致数据采集速度受到限制。可以尝试使用异步IO来提高数据采集速度。可以通过在flink-conf.yaml中添加以下配置来实现:

    execution.checkpointing.synchronous: false
    
    1. 优化数据处理逻辑:检查数据处理逻辑是否存在瓶颈,如过滤、转换等操作,尽量优化这些操作以提高数据处理速度。

    2. 如果以上方法仍无法解决问题,可以考虑将存量数据分批次进行处理,每次处理一部分存量数据后进行checkpoint,逐步完成整个存量数据的采集和处理。

    2024-01-01 13:03:48
    赞同 展开评论 打赏
  • Flink CDC Oracle是利用Flink实现的对Oracle数据库的数据变更进行实时采集的功能,其内部使用了debezium框架和Oracle数据库自带的logminer技术。在处理checkpoint过程中出现问题时,你可以考虑以下两种策略:

    首先,你可以在Flink任务运行的过程中设置异常恢复机制,例如当checkpoint失败次数超过配置阈值时,Flink任务可以自动重启并恢复到最近的正常状态。

    其次,对于存量数据读取和增量数据读取的问题,你可以尝试在全量读到增量读的切换过程中增加一个额外的Checkpoint,以确保在所有全量数据已经成功写入下游后再开始读取增量数据,这样可以避免由于部分数据未能成功写入而导致的读取错误。

    2024-01-01 10:58:56
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像