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

oracle11g cdc3.0 flink1.18 为啥任务启动后要等十多分钟才读到数据?

oracle11g cdc3.0 flink1.18 为啥任务启动后要等十多分钟才读到数据,表里面只有几条数据,有人知道不?image.png

展开
收起
真的很搞笑 2024-03-05 23:40:20 40 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Oracle 11g CDC 3.0和Flink 1.18环境中,任务启动后需要等待一段时间才能读取到数据,以下是一些可能的原因:

    1. 初始化过程:Flink任务在启动时会进行一系列的初始化工作,包括建立与数据源的连接、初始化状态后端等。在这个过程中,任务可能还没有开始实际的数据读取操作。
    2. 检查点机制:Flink的容错机制之一是检查点(Checkpointing),它会定期创建状态的快照。如果设置了检查点,任务在启动初期可能需要等待第一个检查点完成,这可能导致延迟。
    3. Schema注册与发现:Flink CDC在处理数据变更时,可能需要对新表进行Schema注册和发现。这个过程涉及到SchemaRegistry的操作,可能会有一定的时间消耗,直到Schema被成功注册和识别后,Flink任务才开始读取数据。
    4. 数据库结构扫描:Oracle数据库的逻辑结构较为复杂,CDC捕获变更前需要对数据库实例、表空间、数据段等进行扫描,以确定数据变更的起点。这个扫描过程可能会耗费一定的时间。
    5. 资源分配与调度:Flink集群在启动任务时,会根据资源配置和当前负载情况进行任务调度。如果集群资源紧张或者调度策略导致任务排队等待,也可能会有一段时间的延迟。
    6. 网络延迟:数据从Oracle数据库传输到Flink集群可能存在网络延迟,特别是在大数据量同步的场景下,网络传输速度可能会成为瓶颈。
    7. 自动加表功能:如果配置了自动化加表功能,Flink CDC会在读取到新表的数据后自动在目标端创建对应的表结构。这个过程需要时间来识别和同步上游的schema变更。

    综上所述,任务启动后等待一段时间才读取到数据可能是由于初始化过程、检查点机制、Schema注册与发现、数据库结构扫描、资源分配与调度、网络延迟以及自动加表功能等原因导致的。为了减少这种延迟,可以检查并优化上述各个方面的配置和资源分配。

    2024-03-08 23:10:30
    赞同 展开评论 打赏
  • 碰到过获取的慢是因为设置了lob.enabled为true。去掉这个配置就快了,你看看是不是配置了这个 ,此回答整理自钉群“Flink CDC 社区”

    2024-03-06 10:55:40
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

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

    相关镜像