时序数据库IoTDB可实现的基本操作及命令汇总

发布于:2025-06-25 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、数据写入、删除与导出

1.1 数据写入

在物联网场景下,元件产生的数据通常会自动写入。但有时,需要修改过去的数据,可以使用 INSERT 语句插入修改后的值,覆盖原数据。

示例‌:

INSERT INTO root.BHSFC.Q1.W003(timestamp, speed) VALUES(1657472400000, 2);

1.2 数据删除

1.2.1 SQL语句删除
  • 删除整个时间序列‌:

    DELETE FROM root.BHSFC.Q1.W003.speed;
  • 删除时间范围内的数据‌:

    DELETE FROM root.BHSFC.Q1.W003 WHERE time <= 2022-01-14T00:00:00;
1.2.2 TTL自动删除

TTL(Time To Live)是数据存活时间,可以针对存储组设置。设置TTL后,Apache IoTDB将自动删除此时间之前的数据。

  • 设置TTL‌:

    SET TTL TO root.BHSFC.Q1.W003 3600000;
  • 取消TTL‌:

    UNSET TTL TO root.BHSFC.Q1.W003;
  • 显示TTL‌:

    SHOW ALL TTL;

1.3 数据导出

可以使用CSV工具将数据导出。

示例‌:

./export-csv.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./

输入查询语句,如:

SELECT AVG(*) FROM root.BHSFC.Q1.W002;

二、元数据管理

元数据是关于数据的组织、数据域及其关系的信息。IoTDB支持全面的元数据管理,包括TsFile管理、存储组管理、时间序列管理、元数据模板管理和节点管理。

2.1 TsFile管理

TsFile是Apache IoTDB自研的列式存储文件格式。

  • 删除TsFile‌:

    REMOVE '/path/to/tsfile';
  • 加载TsFile‌:

    LOAD '/path/to/tsfile' autoregister=false,sglevel=1,verify=true;

2.2 存储组管理

  • 创建存储组‌:

    CREATE STORAGE GROUP root.ln;
  • 查看存储组‌:

    SHOW STORAGE GROUP;
  • 删除存储组‌:

    DELETE STORAGE GROUP root.BHSFC;
  • 统计存储组数量‌:

    DELETE STORAGE GROUP root.BHSFC;

2.3 时间序列管理

  • 创建对齐时间序列‌:

    CREATE ALIGNED TIMESERIES root.ln.wf01(status BOOLEAN encoding=PLAIN compressor=SNAPPY, temperature FLOAT encoding=PLAIN compressor=SNAPPY);
  • 查询时间序列‌:

    SHOW TIMESERIES;
  • 删除时间序列‌:

    DELETE TIMESERIES root.ln.wf01.temperature;
  • 统计时间序列总数‌:

    COUNT TIMESERIES root.**;

2.4 元数据模板管理

  • 创建元数据模板‌:

    CREATE SCHEMA TEMPLATE t1 ALIGNED (1 FLOAT encoding=Gorilla, 2 FLOAT encoding=Gorilla);
  • 挂载元数据模板‌:

    SET SCHEMA TEMPLATE t1 TO root.ln.wf01;
  • 查看元数据模板‌:

    SHOW SCHEMA TEMPLATES;
  • 卸载/删除元数据模板‌:

    UNSET SCHEMA TEMPLATE t1 FROM root.ln.wf01;
    DROP SCHEMA TEMPLATE t1;

2.5 节点管理

  • 查看子路径‌:

    SHOW CHILD PATHS root.BHSFC;
  • 查看子节点‌:

    SHOW CHILD NODES root;
  • 统计节点数‌:

    COUNT NODES root.BHSFC.Q1.* LEVEL=3;

三、时区设置

IoTDB中的数据点以时间戳保存,查询时以当前系统默认时区转换时间。时区设置不当可能导致查询结果不正确。

3.1 背景与问题

当查询特定时间点的数据时,若时区设置不匹配,可能导致查询结果为空。

3.2 解决方法

3.2.1 方法一:查询时指定时区

在查询时间后增加时区,如:

SELECT WROT_HubTmp FROM root.BHSFC.Q1.W002 WHERE time=2022-01-12T10:48:51.000-08:00;
3.2.2 方法二:设置系统时区与IoTDB时区一致

调整系统时区与IoTDB时区相同,如:

SET TIME_ZONE=-07:00;

四、结语

通过本文,您应该对Apache IoTDB的数据写入、删除、导出、元数据管理及时区设置有了全面的了解。希望这些信息能帮助您更好地使用IoTDB。


网站公告

今日签到

点亮在社区的每一天
去签到