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")