Flink CDC中,之前数据库是max模式。然后改成了row模式,并且重新做了一个binlog.,但是会报错我里面有max这类形式
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 删除数据库中所有表的数据,然后重新创建表和数据。
希望以上信息对您有所帮助。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。