0°

Flink这个问题怎么解决?[阿里云]

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

以下为热心网友提供的参考意见

这个问题可能是由于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,详细描述你遇到的问题。

以下为热心网友提供的参考意见

使用 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。
—来自实时计算 Flink版产品文档

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====