引言
在工业物联网场景中,时序数据如潮水般涌入。一条智能生产线每天生成数 TB 的时序数据。若不实施科学的数据删除策略,将导致存储成本激增、查询性能恶化、系统稳定性下降。Apache IoTDB 作为专为物联网设计的时序数据库,提供了从单点精准删除到企业级数据生命周期管理的完整解决方案。
数据删除
使用 DELETE 语句可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带、*路径对某一个时间区间内的数据进行删除。
在 JAVA 编程环境中,您可以使用 JDBC API 单条或批量执行 DELETE 语句。
注意:常规的数据删除命令(DELETE FROM 语句)执行后不会立即释放磁盘空间,而是先对数据进行标记,依靠后台任务逐步地去释放空间。调小参数 inner_compaction_task_selection_disk_redundancy 和 inner_compaction_task_selection_mods_file_threshold 可以加快该过程。删除数据库命令(DROP DATABASE 语句)可以立即释放磁盘空间。
一、单传感器时间序列值删除
1.1 基础语法
单传感器删除是 IoTDB 最基础的数据删除方式。通过标准 SQL 语句实现精准数据清除。
DELETE FROM root.BHSFC.Q1.W003.speed WHERE time <= 2022-01-14T00:00:00
该语句将删除设备 root.BHSFC.Q1.W003 的 speed 传感器在 2022 年 1 月 14 日零点前的所有数据。执行后查询结果将显示空集,验证删除成功。
1.2 精准时间点删除
IoTDB 支持毫秒级时间戳精准删除。
DELETE FROM root.ln.wf02.wt02.status WHERE time = 1643846400000
该操作将清除设备 root.ln.wf02.wt02 的 status 传感器在 2022-02-03 00:00:00 的精确数据点。在工业设备故障诊断场景中,这种精准删除可用于修正异常数据点。
1.3 批量时间点删除优化
针对连续时间范围删除,IoTDB 采用批量处理优化策略。
DELETE FROM root.sg.d1.s1 WHERE time >= 2023-01-01T00:00:00 AND time T23::


