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

用cdc接数据 删除的数据目标表不会同步删除吗?

用cdc接数据 删除的数据目标表不会同步删除吗?

展开
收起
wenti 2023-02-06 17:03:49 236 0
3 条回答
写回答
取消 提交回答
  • 是的,使用 Flink CDC 时,已删除的数据通常不会自动同步删除到目标表。这是因为 CDC 主要用于捕获对源表的更改,而不是执行与源表相同的事务。

    以下是一些可能导致此问题的原因:

    事务语义: Flink CDC 不会执行与源表相同的事务。这意味着,如果在源表中删除了数据,但该事务随后回滚,则该删除操作不会反映在目标表中。
    主键: 如果目标表没有与源表相同的主键,则 Flink CDC 可能无法正确匹配已删除的记录。
    解决方法:

    有几种方法可以处理已删除数据的同步:

    使用表分区: 将目标表分区成较小的块。当源表中的数据被删除时,只需删除目标表中相应的分区即可。
    使用时间戳或水印: 为目标表中的记录添加时间戳或水印。当记录的时间戳或水印低于某个阈值时,可以将其标记为已删除。
    使用自定义处理函数: 创建一个自定义处理函数,它在收到删除事件时执行额外的逻辑,例如删除目标表中的相应记录。
    建议:

    对于需要严格一致性的情况,我们建议使用分布式事务或消息队列等其他机制来同步已删除的数据。

    2024-02-27 17:06:16
    赞同 展开评论 打赏
  • 不会的

    2023-02-06 22:53:59
    赞同 展开评论 打赏
  • 不会,cdc只会多一条记录,after是空的——该回答整理自钉群“Flink CDC 社区”

    2023-02-06 20:40:56
    赞同 展开评论 打赏

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载