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

Flink CDC里mysql做为CDC源,写入到kafka时报错,无法处理有更新和删除的数据咋办?

Flink CDC里mysql做为CDC源,写入到kafka时报错,无法处理有更新和删除的数据。这个问题怎么解决?除了upsert-kafka连接器,正常的kafka连接器是不支持删除和更新的,而数据库支持增删改,所以才不能写入到kafka。但是如果有数据库写入到kafka的需求,不知道该怎么处理?27e23633e2387d2bb7f3d3e12a1ebcdb.png

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

    这个问题可以通过使用Flink CDC的upsert-kafka连接器来解决。该连接器支持将MySQL中的增删改操作写入到Kafka中,并且能够正确处理更新和删除的数据。

    具体来说,在使用upsert-kafka连接器时,需要指定一个Kafka主题和一个键值格式。当MySQL中有数据发生变化时,Flink CDC会将变化的数据以消息的形式发送到指定的Kafka主题中。同时,还需要指定一个主键字段,用于标识每条数据的唯一性。

    在消费者端,可以使用Flink CDC来订阅Kafka主题中的消息,并将消息解析为数据流。然后,可以使用Flink的窗口操作和聚合函数来对数据进行处理和分析。

    需要注意的是,使用upsert-kafka连接器时,需要确保Kafka和MySQL之间的网络连接稳定可靠,以避免数据丢失或延迟等问题。此外,还需要考虑数据一致性和事务性问题,以确保数据的完整性和可靠性。

    2024-01-19 15:38:54
    赞同 展开评论 打赏
  • 类似这样的你研究一下。CDCDebeziumDeserializationSchema这个是我自己写的序列化类,你可以用依赖中自带的。6ae480d665bdbcf9987c63d8dc220e3c.pngJsonDebeziumDeserializationSchema,StringDebeziumDeserializationSchema,这些官方案例很多的。或者你这个changelog流使用upsert kafka 类型的connector就可以了。此回答来自钉群Flink CDC 社区。

    2024-01-18 10:43:06
    赞同 展开评论 打赏

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

相关产品

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

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

    相关镜像