org.apache.flink.table.api.TableException: Column 'cusid' is NOT NULL, however, a null value is being written into it. You can set job configuration 'table.exec.sink.not-null-enforcer'='drop' to suppress this exception and drop such records silently.
这个错误通常是因为在插入数据时,MySQL数据库中对应的主键列值为空。即使该列被定义为非空(NOT NULL),但如果没有提供有效的值,则会抛出此异常。
要解决这个问题,您可以尝试以下几种方法:
确保在插入数据之前,主键列的值已经被正确地设置。您可以使用SELECT语句来检查该列的值是否为空。
如果您的应用程序允许插入空值,则可以将“table.exec.sink.not-null-enforcer”配置项设置为“drop”。这将使Flink忽略非空约束并删除这些记录。但是请注意,这可能会导致数据丢失或不一致性问题。
您可以使用“table.exec.sink.ignore-nulls”配置项来禁用非空约束。这将使Flink接受任何值,包括空值。但是请注意,这可能会导致数据不一致性问题。
无论您选择哪种方法,都应该仔细考虑其影响,并确保您的应用程序能够处理可能出现的问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。