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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐