数值字段丢数据

Viewed 65

表结构:
create_date(Datetime),product_id(String),product_name(String),cpu(smallint),mem(smallint),disk(smallint),band(smallint),cnt(smallint)

  1. doris当前版本2.0.4
  2. 表为unique key表(create_date,product_id),按月进行分区
  3. 该表经历从1.2.4升级到2.0.4

现象:
整个表只有cpu,mem两列的少量行出现null的情况,而且全部集中在其中几十个相同的product_id,其它smallint的字段没有为null的情况

数据写入:

stream.map(p -> JSON.toJSONString(p, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullStringAsEmpty))
                    .sinkTo(dorisSink)

stream在转成json字符串过程中已经把为null的数值字段 默认设置为0了,所以正常来说写到doris不会存在null. 怀疑是丢了数据?

1 Answers

已解决,由于写入的数值超过了smallint的上限所以才变为null