flink sql 数据sink到mysql时,非空存在null值,插入mysql报错,配置下面的参数进行解决:
-- 默认值error
table.exec.sink.not-null-enforcer
对表的NOT NULL列约束强制执行不能将空值插入到表中。
Flink支持“error”(默认)和“drop”强制行为
- 默认情况下,当将空值写入NOT NULL列时,Flink将检查值并引发运行时异常。
- 用户可以将行为更改为“drop”,以在不引发异常的情况下静默删除此类记录。
- 同时会导致checkoutpoint失败
代码配置项
// instantiate table environment
val tEnv: TableEnvironment = ...
// access flink configuration
val configuration = tEnv.getConfig().getConfiguration()
// set low-level key-value options
configuration.setString("table.exec.sink.not-null-enforcer", "drop")