flink sql 数据sink到mysql时,非空存在null值,插入mysql报错,配置下面的参数进行解决:

-- 默认值error
table.exec.sink.not-null-enforcer   

对表的NOT NULL列约束强制执行不能将空值插入到表中。

Flink支持“error”(默认)和“drop”强制行为

  • 默认情况下,当将空值写入NOT NULL列时,Flink将检查值并引发运行时异常。
  • 用户可以将行为更改为“drop”,以在不引发异常的情况下静默删除此类记录。

代码配置:

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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐