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

Flink CDC2.4.1 flink1.14.6,sql left join一些表,这个咋解决?

Flink CDC2.4.1 flink1.14.6,sql left join一些表,非主键关键,会丢失delete同步,这个咋解决?

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

    如果您使用的是Flink CDC v2.4.1和Flint 1.14.6,可能是因为缺少合适的配置或者连接器导致删除事件无法及时捕获。
    针对这种问题,您可以在Flink SQL语句中加入WITH (key='id')关键字,以指定Join的主键字段,如:

    SELECT * FROM sourceTable AS src LEFT JOIN targetTable AS tgt ON src.id = tgt.id WITH (key='id')
    
    2023-11-15 14:44:45
    赞同 展开评论 打赏
  • 在Flink CDC中,如果使用非主键关键进行left join操作,可能会丢失delete同步。这是因为CDC Connector只能保证基于主键的变更捕获和同步,对于非主键的关键字段,无法保证其变更顺序和一致性。

    为了解决这个问题,可以考虑以下两种方案:

    1. 将非主键关键字段作为主键来处理。这样可以利用Flink CDC提供的基于主键的变更捕获和同步机制,确保数据的一致性和完整性。但需要注意的是,这可能需要对数据模型进行修改,并重新设计表结构。

    2. 采用其他方式来保证数据的一致性。例如,可以在应用程序中实现一些逻辑来处理非主键关键字段的变更,或者使用一些外部工具或服务来协调不同表之间的数据同步。但这种方式需要额外的开发和维护工作,并且可能会增加系统的复杂性和风险。

    在设计Flink CDC应用时,应该尽量遵循数据库的主键原则,以减少不必要的麻烦和风险。

    2023-11-15 09:15:43
    赞同 展开评论 打赏

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

相关产品

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

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