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

Flink CDC这么多union。如果数据库删除数据,能正常把删除的同步过去吗?

Flink CDC这么多union。然后再和jdbc关联,如果数据库删除数据,能正常把删除的同步过去吗?

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

    Flink CDC 支持通过 UNION 操作将多个表的数据合并成一个流,然后再与 JDBC 关联。如果数据库删除数据,Flink CDC 也可以正常地将删除的数据同步过去。

    当使用 Flink CDC 进行数据同步时,它会监听源表中的数据变化,并将变化的数据以流的形式输出。如果源表中的数据被删除了,Flink CDC 也会感知到这个变化,并将删除的数据发送到下游的 JDBC 中进行处理。

    需要注意的是,在将 Flink CDC 输出的数据与 JDBC 关联时,需要确保 JDBC 能够正确处理删除数据的情况。具体来说,需要在 JDBC 中实现相应的逻辑来处理删除数据的操作,例如更新其他相关表中的数据或者执行其他的业务逻辑。

    2023-12-11 16:25:50
    赞同 展开评论 打赏
  • 你这个完全可以分成两个任务 执行,没有看出来 有union的必要,delete 当然没问题。 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-11 11:58:05
    赞同 展开评论 打赏
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    当使用Flink CDC同步数据库变更时,如果源表中的数据被删除,结果表中的数据是否能正常删除取决于多种因素:

    1. Flink CDC作业是否成功消费了deletion event。有时由于网络问题或其他错误,Flink CDC可能没有正常消费对应的delete change log event,导致结果表中的数据未被删除。
    2. Sink端是否支持数据删除。例如,如果下游系统如Kafka不支持删除数据,那么在结果表中就无法实施删除操作。
    3. Flink作业的配置是否正确。例如,watermark或event-time模式的配置错误可能导致无法track delete event。
    4. 数据是否超出了watermarks,可能需要回溯到更早的binlog才能找到删除事件。

    为了在结果表中同步删除数据,您可以采取以下方法:

    1. 使用Flink SQL中的DELETE语句从结果表中删除数据。例如:DELETE FROM result_table WHERE id IN (SELECT id FROM source_table WHERE data_deleted = '1')
    2. 确保Flink CDC作业配置正确,并监控DorisDB或其他数据库中的数据变更,以确保新增、修改、删除等操作都能同步到目标数据库中。
    2023-12-11 09:34:36
    赞同 展开评论 打赏

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

相关产品

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

    更多
    2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
    云时代的数据库技术趋势 立即下载
    超大型金融机构国产数据库全面迁移成功实践 立即下载