遇到过这种bug吗https://github.com/ververica/flink-cdc-connectors/issues/824
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的链接,该问题是在使用Flink CDC Connectors时遇到的特定错误,具体表现为在同步PostgreSQL数据库时,如果表的REPLICA IDENTITY
设置不是FULL
,则可能导致更新或删除操作的消息中“before”字段为null,进而引发异常。此问题的具体错误信息与知识库中的报错描述相匹配。
用户在使用Flink CDC Connectors同步PostgreSQL数据库时,遇到错误提示:“The "before" field of UPDATE/DELETE message is null”。
REPLICA IDENTITY
未设置为FULL
级别,这导致Debezium无法捕获到更新或删除操作前的行数据,从而在消息中缺失“before”图像。修改表的REPLICA IDENTITY设置:
REPLICA IDENTITY
设置为FULL
。命令示例为:
ALTER TABLE your_schema.your_table REPLICA IDENTITY FULL;
your_schema
和your_table
需要替换为实际的数据库模式和表名。重启或重新部署Flink作业:
REPLICA IDENTITY
设置后,通过监控或小范围测试验证Flink CDC作业是否正常运行,确认更新和删除事件能够正确捕获并处理。通过以上步骤,可以解决因REPLICA IDENTITY
设置不当导致的“before”字段为空的问题。如果问题仍然存在,建议查阅Flink CDC Connectors的官方文档或直接在GitHub项目中查找相似问题的解决方案,甚至考虑提交一个新的issue来获取维护者的帮助。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。