Apache IoTDB中LINEAR FILL仅填充数值列的原因及混合列填充疑问
回答
是的,IoTDB的填充机制确实是仅对与填充方法兼容的数据类型生效,且不会抛出类型不匹配的错误,这是设计上的既定行为:
LINEAR FILL(线性填充)依赖数值插值逻辑,仅支持INT、FLOAT、DOUBLE等数值类型列,对STRING这类非数值类型列直接返回NULL,不会执行填充操作。CONSTANT FILL(常量填充)要求指定的常量值与目标列类型匹配:如果你指定的是字符串常量,只有STRING类型的status列会被填充,数值类型的temperature列因类型不匹配保持NULL;反之若指定数值常量,仅数值列会被填充。
针对混合数值/字符串的结果集,确实需要拆分查询分别处理:
- 对数值类型列使用
LINEAR FILL(或其他数值兼容的填充方法)执行查询 - 对STRING类型列使用匹配类型的
CONSTANT FILL执行查询
之后可以根据时间戳将两个查询的结果关联合并,得到完整的填充后数据集。
内容的提问来源于stack exchange,提问作者Tampa Tommy
相关产品推荐
相关产品推荐

