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

Flink CDC里我对某个字段做分组count的时候,source内容有变化,结果这样是为什么?

Flink CDC里我对某个字段做分组count的时候,source内容有变化,结果表只是做了insert,没有upsert,请问是什么原因,我ddl里有设置name为primary key(mysql里没有设置)1407ce15976ec1a1a11c8a997f19abe3.pnga989dc931cddec37e47cee06cfcaa677.png

展开
收起
小小鹿鹿鹿 2024-02-20 18:28:40 29 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC 是一个用于捕获数据库变更的工具,它可以将数据库的变更事件转换为流数据。当你对某个字段进行分组计数时,如果源内容发生变化,结果可能会受到影响。

    以下是可能导致结果变化的一些原因:

    1. 数据更新:如果源内容中的数据被更新了,那么分组计数的结果也会相应地发生变化。例如,如果一个字段的值从 A 变为 B,那么在分组计数中,A 的数量会减少,而 B 的数量会增加。

    2. 数据删除:如果源内容中的数据被删除了,那么分组计数的结果也会相应地减少。例如,如果一个字段的值被删除了,那么在分组计数中,该值的数量会减少。

    3. 数据插入:如果源内容中新增了数据,那么分组计数的结果也会相应地增加。例如,如果一个新的记录被插入到数据库中,并且该记录的字段值与你要分组计数的字段值相同,那么在分组计数中,该字段值的数量会增加。

    4. 数据重分区:如果你使用了 Flink 的 rebalance 操作或者进行了数据的重分区,那么分组计数的结果可能会发生变化。这是因为重分区会导致数据的重新分配和重新计算。

    总之,当源内容发生变化时,Flink CDC 会将相应的变更事件转换为流数据,并反映在分组计数的结果中。因此,如果你希望保持分组计数的结果不变,可以考虑使用 Flink 的窗口操作来处理数据,以便在指定的时间范围内进行分组计数。

    2024-02-20 22:07:52
    赞同 展开评论 打赏
  • 下游表需要设置业务主键 union key 也是name。就是说要在mysql里也给这个name字段添加唯一索引。此回答来自钉群Flink CDC 社区。

    2024-02-20 18:50:12
    赞同 展开评论 打赏

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

相关产品

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

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