开发者社区 > 大数据与机器学习 > 正文

请教下大家 有使用flinkcdc同步tidb数据吗 ? 测试发现小表是可以同步的 大表的话一直卡

请教下大家 有使用flinkcdc同步tidb数据吗 ? 测试发现小表是可以同步的 大表的话一直卡在read snapshot events 读全量数据上面 ?

展开
收起
真的很搞笑 2023-06-11 15:43:32 135 0
7 条回答
写回答
取消 提交回答
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    使用分区表。在TiDB中,可以将表分为多个分区,每个分区只包含一部分数据。使用分区表可以减少Flink CDC需要读取的数据量,从而提高同步效率。
    调整Flink CDC的参数。Flink CDC提供了多个参数,可以根据实际情况进行调整。例如,可以调整fetch.size参数来控制每次从数据库中读取的数据量,从而减少读取全量数据的时间。
    优化数据库性能。如果数据库性能较差,读取全量数据的时间会更长。可以尝试优化数据库性能,例如增加硬件资源、优化SQL语句等。

    2023-08-28 18:35:20
    赞同 展开评论 打赏
  • 在使用 FlinkCDC 同步 TiDB 数据时,如果遇到大表一直卡在 "read snapshot events" 读全量数据上的问题,可能有几个原因:

    1、数据量大:如果大表的记录数很多,全量数据的读取可能会耗费大量的时间和资源,导致同步过程变得缓慢。这种情况下,可以考虑优化查询语句或者分批读取数据。

    2、网络延迟:如果 FlinkCDC 节点与 TiDB 数据库之间的网络连接较慢或者存在较大的延迟,会导致数据传输速度变慢,从而影响同步过程。可以尝试优化网络连接或者增加网络带宽。

    3、系统资源不足:如果 FlinkCDC 节点或者 TiDB 数据库的硬件资源不足,例如内存、磁盘I/O 或者 CPU 等,也会影响同步速度。可以尝试增加硬件资源或者优化系统配置。

    4、TiDB 数据库配置问题:如果在 TiDB 数据库中存在一些配置问题,例如并发限制、网络连接数限制等,也会影响同步速度。可以尝试检查 TiDB 数据库的配置文件或者调整相关参数。

    2023-08-22 20:34:14
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,我了解到阿里云Flink CDC是一种数据同步工具,可以将数据从一个数据源同步到另一个数据源,同时保持数据源之间的一致性。而针对你的问题,如果小表能够同步,但是大表卡在read snapshot events读全量数据上面,可能是因为以下原因:

    1. 数据量过大导致读取时间过长,可以尝试增加网卡速率、增加读取最大行数限制等方案来优化。

    2. 网络环境不稳定,如果遇到网络抖动等情况,可能会导致数据同步失败。

    3. 数据源的性能不足,如果同步的数据源本身的性能不足,可能会导致read snapshot events阶段耗时过长。

    4. CDC工具的参数设置不合理,比如读取的最大行数、并发度等参数设置不合理,可能会导致同步效率低下,甚至失败。

    建议优化方案:

    1. 调整参数,尝试增加读取最大行数限制和并发度等参数,可以优化同步效率。

    2. 检查网络环境和数据源的性能,保证网络和数据源的稳定性。

    3. 尝试使用其他同步工具或者手写同步工具,根据实际情况优化同步方案。

    2023-08-21 11:27:20
    赞同 展开评论 打赏
  • Flink CDC 可以用于将 TiDB 数据同步到其他数据存储中。根据您的描述,小表可以同步,但大表会卡在读取快照事件上,这可能是由于读取全量数据所致。
    为了解决这个问题,您可以尝试使用 Flink CDC 的增量同步模式。增量同步模式只会将最新的变更数据同步到目标存储中,而不是全量数据。这样可以大大减少同步所需的时间和资源。另外,您也可以考虑调整 Flink CDC 同步任务的配置参数,比如增加并行度、调整内存大小等,来优化同步性能。

    2023-08-16 08:49:53
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    使用Flink CDC同步TiDB数据时,大表读取全量数据会卡住,是一个常见问题:

    TiDB采用行存储引擎,大表数据量大面临更巨大压力。

    Flink CDC会尝试一次性读取全表数据做批处理同步。

    读大量数据需要更多内存、网络带宽等资源。

    一些优化方法:

    适当增加Flink/TiDB资源,如内存、CPU、网络带宽。

    分割大表为多个更小的表进行同步。

    配置CDC读取全量数据的批大小,减少每次处理的数据量。

    将同步任务并行数设置得更高,利用更多核心提升整体吞吐。

    查看TiDB端事务日志容量是否足够提供稳定吞吐。

    尝试优化TiDB相关配置如事务日志同步等参数。

    最后确认是否存在TiDB或Flink端的性能瓶颈。

    2023-08-14 17:09:12
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    如果您在使用Flink CDC同步TiDB数据时,发现小表可以同步,但是大表一直卡在read snapshot events读取全量数据上面,那么可能是由于以下原因:

    数据源表的数据量过大:如果您的数据源表的数据量过大,那么可能会导致Flink CDC无法正确读取和写入数据。在这种情况下,您可以尝试增加Flink CDC的并行度,以提高数据处理和同步的效率和稳定性。
    数据源表的索引发生了变化:如果您的数据源表的索引发生了变化,那么可能会导致Flink CDC无法正确读取和写入数据。在这种情况下,您需要在Flink CDC的配置文件中,指定数据源表的索引,以确保Flink CDC能够正确读取和写入数据。
    数据源表的字典发生了变化:如果您的数据源表的字典发生了变化,那么可能会导致Flink CDC无法正确读取和写入数据。在这种情况下,您需要在Flink CDC的配置文件中,指定数据源表的字典,以确保Flink CDC能够正确读取和写入数据。
    需要注意的是,如果您在生产环境中使用Flink CDC同步TiDB数据,那么您需要考虑Flink CDC的资源使用情况。例如,您需要确保Flink CDC有足够的内存和CPU资源,以保证数据处理和同步的效率和稳定性。同时,您还需要确保Flink CDC的数据备份和恢复机制,以保证数据的安全性和可靠性。

    2023-08-14 13:42:24
    赞同 展开评论 打赏
  • 关于使用Flink CDC从TiDB同步数据,确实有一些需要注意的地方。首先,对于大数据量的表,全量同步可能会导致性能瓶颈。为了避免这种情况,建议采用增量同步的方式。其次,在处理大型表时,可能需要更多的计算资源和时间。因此,我们应该确保有足够的计算资源和耐心等待结果。
    86fa7b79a5eccac1422f13a00d5a8fc3_640_wx_fmt=png.png

    关于您提到的问题,一直卡在“read snapshot events”读全量数据上,可能有以下几个原因:

    1. 网络延迟:网络延迟可能会影响数据同步的速度。您可以检查网络连接是否正常,或者尝试更换更稳定的网络环境。

    2. CPU或内存资源不足:如果系统的CPU或内存资源不足,可能会导致数据同步的速度变慢。您可以检查系统的CPU和内存资源使用情况,看看是否有资源不足的问题。
      797eb1fc7c4843cb62e1981b34e375a2_8cb7806d62caf439d517c341e46ef974.png

    3. 数据量过大:如果数据量非常大,那么数据同步的时间可能会相对较长。在这种情况下,您可以考虑使用增量同步的方式,而不是全量同步,以提高数据同步的速度。

    4. 数据库配置问题:如果您使用的数据库配置有问题,也可能会影响数据同步的速度。您可以检查数据库的配置是否正确。

    b50fe42c0403d4028b1f1e3b7b967d75_c71e25ccac68830c709568af35732566.png

    2023-08-14 10:52:21
    赞同 展开评论 打赏
滑动查看更多

大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载