Flink CDC中如果MySQL 字段设置了默认值,字段值为空时,捕获到的变更数据为默认值??
已找到解决版本可以对cdc的数据自己转换格式Struct 类提供了 getWithoutDefault(String fieldName)函数,可以获取原始值。
public Object getWithoutDefault(String fieldName) {
Field field = lookupField(fieldName);
return values[field.index()];
}
我之前一直用的get(Field field)函数,原始值为空会使用默认值。
public Object get(Field field) {
Object val = values[field.index()];
if (val == null && field.schema().defaultValue() != null) {
val = field.schema().defaultValue();
}
return val;
}
赞39
踩0