You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Druid中为INT和LONG类型字段导入null值

Druid导入JSON时保留INT/LONG类型的Null值配置方法

Druid默认会把数字类型的null转成0,要保留原始null值,得从解析配置和字段定义两处入手,具体步骤如下:

1. 开启解析器的Null值保留开关

不管用JSON还是其他格式的解析器,必须在parseSpec里设置keepNullColumns: true,确保Druid解析时不丢弃null字段。示例JSON解析配置片段:

"parseSpec": {
  "format": "json",
  "keepNullColumns": true,
  "timestampSpec": {
    "column": "event_time",
    "format": "yyyy-MM-dd HH:mm:ss"
  },
  "dimensionsSpec": {
    "dimensions": ["user_id", "order_id"]
  }
}

2. 字段类型与聚合器的正确配置

  • 维度字段:如果是INT/LONG类型的维度,直接定义类型为int或long即可,开启keepNullColumns后,null值会被正常存储,不会转为0。
  • 指标字段:默认的longSum/intSum这类聚合器会把null当0处理,要保留null的话,必须使用nullableLong或nullableInt类型的聚合器。示例metrics配置:
"metricsSpec": [
  {
    "type": "nullableLong",
    "name": "user_id",
    "fieldName": "user_id"
  },
  {
    "type": "nullableInt",
    "name": "product_num",
    "fieldName": "product_num"
  }
]

3. 验证配置是否生效

导入完成后,用Druid SQL查询验证:

SELECT user_id, product_num FROM your_datasource WHERE user_id IS NULL

如果能返回包含null值的记录,说明配置生效。

注意事项

  • 低版本Druid(0.20之前)对nullable类型的支持有限,建议升级到0.20+版本以获得更好的兼容性。
  • 部分聚合器(比如count)仍会统计null值,需根据业务需求选择合适的聚合类型。

内容的提问来源于stack exchange,提问作者Rahul Kumar Gond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 06:52:14