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

Flink CDC中我想用cdc同步新增的数据但是在测试的时为什么写入到目标库的时候数据减少了很多?

Flink CDC中我想用cdc同步新增的数据,更新和删除的不管, 但是在测试的时候发现,写入到目标库的时候数据减少了很多 ,有知道可能是什么原因的吗?
6d7fe97c79b13f3a77cc7b0bd35f2c0e.png
没对数据做任何出处理, 就是 source - filter - sink。
bc9744da8e069b70bb3189da8892bcb1.png

展开
收起
十一0204 2023-07-24 21:40:01 171 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在使用 Flink CDC 进行数据同步时,数据丢失的原因可能有很多,以下是一些可能的原因和解决方案:
    数据源的 binlog 模式不一致:如果源数据的 binlog 模式为 STATEMENT,而目标数据的 binlog 模式为 ROW,可能会出现数据丢失的情况,因为 STATEMENT 模式下更新语句可能不包含所有的列,导致部分数据丢失。建议将源数据和目标数据的 binlog 模式设置为相同的模式。
    目标表的主键或唯一键重复:如果目标表的主键或唯一键已经存在相同的值,可能会导致部分数据插入失败,从而出现数据丢失的情况。建议检查目标表的主键或唯一键是否正确,以及是否存在重复的值。
    CDC 配置不正确:如果 CDC 的配置不正确,可能会导致部分数据丢失。例如,如果 CDC 的过滤条件不正确,可能会导致部分数据没有被采集到。建议检查 CDC 的配置是否正确,并根据实际情况进行调整。
    数据源和目标数据的时区不一致:如果源数据和目标数据的时区不一致,可能会导致时间戳数据出现偏差,从而出现数据丢失的情况。建议在 CDC 中使用统一的时区,并根据实际情况将时间戳数据转换为 UTC 时间。
    CDC 任务的并发度设置不正确:如果 CDC 的并发度设置过高或过低,可能会导致部分数据丢失。如果并发度设置过高,可能会导致资源浪费和竞争冲突,从而导致数据丢失。如果并

    2023-07-29 18:44:36
    赞同 展开评论 打赏
  • 存在即是合理

    这可能是由于 Flink CDC 的同步策略导致的。Flink CDC 是基于时间戳进行同步的,如果目标表中的数据没有按照时间戳排序,那么 Flink CDC 就无法正确地识别新增、更新和删除的数据。可以尝试在目标表中创建一个时间戳列,并将其设置为自动递增,然后将该列作为主键。这样,Flink CDC 就可以根据时间戳来识别新增、更新和删除的数据了。

    2023-07-25 17:13:53
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载