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

Flink CDC实时表数据在同一时间删除插入,会导致数据丢失么?

Flink CDC中在使用flink sql关联数据时,实时表数据在同一时间删除插入,会导致数据丢失么。数据删除插入在同一时间精确到毫秒。关联使用inner join,sql中还使用了lookup join用来关联纬度表?

展开
收起
cuicuicuic 2023-12-04 08:09:25 30 0
3 条回答
写回答
取消 提交回答
  • 在Flink CDC中,如果实时表中的数据在同一时间发生删除和插入操作,一般情况下不会导致数据丢失。核心思想就是捕获并记录数据库的所有变动,包括数据的插入、更新以及删除等。因此,无论是删除还是插入的变化,Flink CDC都能准确地捕获并处理。所以,需要确保Flink CDC作业正常运行,正确配置,并且下游系统支持必要的操作。同时,也需要针对具体的业务场景选择合适的CDC实现方式。

    2023-12-04 23:11:02
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC中,当实时表数据在同一时间进行删除和插入操作时,由于Flink SQL内部支持了完整的changelog机制,因此可以有效地避免数据丢失。即使在毫秒级别精确地进行数据的删除和插入,只要这些操作都在changelog的记录范围内,就不会有问题。

    在进行关联操作时,无论是使用inner join还是lookup join,都依赖于Flink SQL对join操作的处理机制。如果关联的数据源中存在删除和插入的情况,那么需要确保这些操作不会影响到关联结果的正确性。

    2023-12-04 14:10:11
    赞同 展开评论 打赏
  • 在Flink CDC中,当实时表数据在同一时间进行删除和插入操作时,由于Flink SQL内部支持了完整的changelog机制,所以并不会直接导致数据丢失。

    具体来说,Flink SQL的RowData数据结构上有一个元数据信息,称为RowKind。RowKind里面包括了插入、更新前、更新后、删除等类型,这与数据库里面的binlog概念十分类似。通过Debezium采集的JSON格式,包含了旧数据和新数据行以及原数据信息,op的u表示是update更新操作标识符,ts_ms表示同步的时间戳。因此,当同一时间发生删除和插入操作时,Flink CDC可以正确地处理这种情况,避免数据丢失。

    对于关联操作部分,无论是使用inner join还是lookup join,都主要取决于具体的业务需求和数据情况。如果源表中的数据在同一时间被删除并插入新数据,那么关联操作的结果可能会受到影响。因为关联操作通常需要基于某些共享的键值来进行匹配,如果这些键值在同一时间发生变化,可能会导致关联结果不准确。因此,在进行关联操作时,需要根据实际的数据情况和业务需求来选择合适的join类型,并进行充分的测试和验证。

    2023-12-04 11:49:14
    赞同 展开评论 打赏

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

相关产品

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

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