自学内容网 自学内容网

IoTDB 数据类型相关问题

指定数据类型

问题 1

IoTDB 通过 tools/import-data.sh 导入数据时,发现默认推断类型配置没有生效,请问是什么原因?

现象

在这里插入图片描述
在这里插入图片描述

解决方案

通过 tools/import-data.sh 命令导入数据时,需要指定 -typeInfer 参数,用于指定类型推断规则,如:<srcTsDataType1=dstTsDataType1,srcTsDataType2=dstTsDataType2,…>

  • srcTsDataType 包括 boolean,int,long,float,double,NaN;
  • dstTsDataType 包括 boolean,int,long,float,double,text;
  • 当 srcTsDataType 为 boolean,dstTsDataType 只能为 boolean 或 text;
  • 当 srcTsDataType 为 NaN, dstTsDataType 只能为 float, double 或 text;
  • 当 srcTsDataType 为数值类型, dstTsDataType 的精度需要高于 srcTsDataType。

设置举例:-typeInfer boolean=text,float=double。

数据小数点位数是否影响查询性能

问题 2

存 double 型数据,截短保留 2 位小数和不截短,在查询效率和速度上有没有区别?

回答

没有,double 的长度和小数位数没太大关系。

升级后数据转换问题

问题 3

在这里插入图片描述
上面的查询在 1.0 版本是没问题的,1.3.2 版本就提示转换错误,这个可以设置吗,还是新版本只能这样转换?

回答

这个是因为尝试将字符串 ‘bad’ 转成 float 时出错了。
在这里插入图片描述
也可用正则表达式替换处理:

select avg(cast(regexreplace(v, 'regex'='^[A-Za-z]+$', 'replace'='1', 'limit'='2'), 'type'='FLOAT')) as V, 
avg(cast(regexreplace(v1, "regex"="^[A-Za-z]+$", "replace"="0", "limit"="1"), 'type'='FLOAT')) as V1 from root.ln.d2 where time>=2024-11-20 00:00:00 and time<=2024-11-26 00:00:00 group by ([2024-11-20T00:00:00,2024-11-26T00:00:00 ),1d)

原文地址:https://blog.csdn.net/qiaojialin/article/details/145207897

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!