Apache IoTDB时间序列分段删除语句执行问题及用法咨询
Apache IoTDB DELETE语句用法排查
首先明确:IoTDB的DELETE语句支持两种操作,并非只能删除整个时间序列:
- 删除指定时间区间内的数据点:就是你使用的
DELETE FROM <路径> WHERE time <条件>语法,这是用来清除目标序列中符合时间范围的数据; - 删除整个时间序列:使用
DELETE FROM <路径>(不带WHERE子句),才会直接删除整个序列(类似删整列)。
你的语句写法本身是正确的,删不掉数据大概率是以下原因导致:
- 时间范围不匹配:检查目标数据的时间戳单位是否和IoTDB配置一致(默认是毫秒),如果你的数据时间戳是微秒/纳秒级,
100-120这个区间可能没有匹配的数据;或者确认数据的时间戳是否真的落在[100,120]内,可以用SELECT * FROM root.ln.wf02.* WHERE time >=100 and time <=120验证是否有数据存在。 - 路径匹配错误:
root.ln.wf02.*是否准确匹配到目标时间序列?IoTDB的路径大小写敏感,执行SHOW TIMESERIES root.ln.wf02.*确认路径下的序列是否存在、拼写是否正确。 - 数据已被删除:如果之前执行过相同或覆盖该区间的删除操作,该区间本身已经没有数据。
- 权限不足:当前执行语句的用户是否拥有
root.ln.wf02.*路径的DELETE权限,可通过LIST PRIVILEGES FOR <当前用户名>查看权限配置。
内容的提问来源于stack exchange,提问作者NKZ
相关产品推荐
相关产品推荐

