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

Flink这个问题怎么解决?

Flink这个问题怎么解决?数据库的binlog 是 先删除后新增,但是 cdc 解析到的是先新增后删除,使用的方式是,用flink sql 读取mysql binlog, 然后写入到kafka, cdc 的版本 2.2.1 2.4.2 都出现这个问题,flink 版本是 1.15。flink 的并行度调整成1 还是会偶尔出现,不是必现的。github 上也没有搜索到相关的issue。

展开
收起
三分钟热度的鱼 2023-12-28 18:41:02 28 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于Flink SQL读取MySQL binlog时,解析到的数据顺序与实际数据库中的顺序不一致导致的。为了解决这个问题,你可以尝试以下方法:

    1. 在Flink SQL中,使用ROW_FORMAT=DYNAMIC参数来确保binlog中的行格式与实际数据库中的行格式一致。这样,Flink SQL在解析binlog时,会按照正确的顺序处理数据。

    2. 调整Flink的并行度。虽然将并行度设置为1可能会导致偶尔出现的问题,但这可以帮助减少资源竞争和提高数据处理的稳定性。你可以尝试增加并行度,例如将其设置为4或8,以找到最佳的并行度设置。

    3. 检查Flink和MySQL的版本是否兼容。确保你使用的Flink版本(1.15)与MySQL版本(2.4.2)兼容。如果不兼容,你可能需要升级或降级其中一个组件的版本。

    4. 在GitHub上搜索类似的问题。如果其他用户已经遇到了类似的问题,你可以查看他们的解决方案,或者在GitHub上提交一个新的issue,详细描述你遇到的问题。

    2023-12-29 16:07:29
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    使用 Flink SQL 从 MySQL binlog 读取数据,然后将其写入 Kafka,但是 CDC 解析到的数据与 MySQL binlog 的顺序不一致
    检查CDC 配置是否正确,确保它与 MySQL binlog 的顺序一致。您可以通过观察 CDC 生成的 CDCEvent 序列来检查 CDC 的解析结果是否正确。
    检查Flink SQL 配置是否正确,确保可以正确地读取和写入 MySQL binlog。尝试将并行度调整为更高的值,以提高 Flink 的性能和处理速度。
    使用的是 MySQL,您可以尝试将 CDC 配置中的“MysqlStorageEngine”参数设置为“innodb”,以确保 CDC 能够正确地解析 MySQL binlog。image.png
    ---来自实时计算 Flink版产品文档

    2023-12-29 14:49:42
    赞同 展开评论 打赏

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载