开发者社区 > 大数据与机器学习 > 正文

Flink CDC中,之前数据库是max模式。然后改成了row模式,并且重新做了一个binlog.,

Flink CDC中,之前数据库是max模式。然后改成了row模式,并且重新做了一个binlog.,但是会报错我里面有max这类形式image.png

展开
收起
提个问题! 2023-07-20 15:46:36 67 0
1 条回答
写回答
取消 提交回答
  • Flink CDC 在使用最新的 canal 版本时,如果数据库之前是 max 模式,在改成 row 模式后,需要对历史数据进行修复,否则会出现类似 Invalid row metadata, expected 'max', but found 'row' 的错误。

    修复历史数据的方法如下:

    使用 canal 提供的命令 canal-admin change-metadata-mode 将数据库的元数据模式从 max 更改为 row。
    使用 canal 提供的命令 canal-admin delete-database 删除数据库的所有历史数据。
    使用 canal 提供的命令 canal-admin create-database 重新创建数据库的数据。
    重建历史数据后,再尝试使用 Flink CDC 读取数据即可。

    另外,也可以使用 canal 提供的命令 canal-admin drop-table 删除数据库中所有表的数据,然后重新创建表和数据。

    希望以上信息对您有所帮助。

    2023-09-27 17:27:30
    赞同 展开评论 打赏

大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。

相关产品

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

    更多
    Flink峰会 - 徐榜江 立即下载
    Flink CDC Meetup PPT - 龚中强 立即下载
    PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载