IoTDB 可实现的基本操作 —— 数据写入、删除、导出、元数据管理、时区设置 | 小白教程文档(四)...

本文详细介绍了Apache IoTDB的数据写入、删除、导出操作,包括插入、删除时间序列、设置TTL以及数据导出。此外,还探讨了元数据管理,包括TsFile管理、存储组管理、时间序列管理、元数据模板管理和节点管理,为IoTDB的高效使用提供了全面指导。

前言

上篇教程介绍了 Apache IoTDB 处理时序数据时,能够实现的部分具体功能和具体的操作命令,包括数据导入、基本查询、和聚合查询。

本篇将继续介绍 Apache IoTDB 可实现的其他功能和相关 SQL 语句命令,包括数据的写入、删除、导出、元数据操作和时区设置的注意事项。

1

数据写入、删除与导出

1.1

插入数据

物联网场景下,元件产生数据将自动写入,但有时候,如果过去的一些数据需要修改,可以使用 insert 语句插入修改后的值,覆盖原数据。

例如,我们可以向已有的时间序列 root.BHSFC.Q1.W002.speed 中插入单行数据,SQL 语句如下:

insert into root.BHSFC.Q1.W003(timestamp,speed) values(1657472400000,2)

我们可以使用查询语句查看是否插入成功:

select speed from root.BHSFC.Q1.W003

显示结果如下,可知已插入成功:

IoTDB> select speed from root.BHSFC.Q1.W003
+-----------------------------+------------------------+
|                         Time|root.BHSFC.Q1.W003.speed|
+-----------------------------+------------------------+
|2022-07-11T00:00:00.000+08:00|                     1.0|
|2022-07-11T01:00:00.000+08:00|                     2.0|
+-----------------------------+------------------------+
Total line number = 2

1.2

删除数据

1.2.1 SQL语句删除

1.2.1.1 删除整个时间序列

我们可以使用 SQL 语句删除单个时间序列,例如以下的 SQL 语句:

delete from root.BHSFC.Q1.W003.speed

我们可以验证一下,输入查询语句 select speed from root.BHSFC.Q1.W003 ,输出结果已经没有数据了,说明删除成功了:

```
IoTDB> select speed from root.BHSFC.Q1.W003
+----+------------------------------+
|Time|root.BHSFC.Q1.W003.speed|
+----+------------------------------+
+----+------------------------------+
Empty set.
```

1.2.1.2 删除时间范围内的数据

也可以与 where 语句结合删除某个时间片段,如删除 2022 年 1 月 14 日零点之后的数据:

delete from root.BHSFC.Q1.W003 where time<=2022-01-14T00:00:00

1.2.2 TTL 自动删除

TTL 是数据存活时间,将针对存储组进行运作。设置 TTL 后 Apache IoTDB 将自动删除此时间之前的数据,设置完毕即刻生效。

1.2.2.1 设置 TTL

设置 TTL 的 SQL 语句为:

set ttl to root.BHSFC.Q1.W003 3600000

这条语句表示在 root.BHSFCQ1.W003 设备中,最近一个小时的数据将会保存,旧数据会被删除。

1.2.2.2 取消 TTL

我们也可以取消这条时间序列的 TTL ,SQL 语句为:

unset ttl to root.BHSFC.Q1.W003

1.2.2.3 显示 TTL

我们还可以查询目前已设置的 TTL ,SQL 语句为:

show all ttl

输出的结果为:

+-------------+----+
|storage group| ttl|
+-------------+----+
|      root.ln|null|
|   root.BHSFC|null|
+-------------+----+
Total line number = 2

未设置 TTL 的存储组的 TTL 将显示为 null。

1.3

导出数据

我们可以使用 CSV 工具将数据导出。首先进入 tools 目录,然后输入 SQL 语句:

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

之后会出现提示输入查询语句,我们按需输入 SQL 语句即可。例如我们要导出测试数据的平均值,则输入:

select AVG(*) from root.BHSFC.Q1.W002

结果显示如下:

ExportCsv> please input query: select AVG(*) from root.BHSFC.Q1.W002
select AVG(*) from root.BHSFC.Q1.W002
19:23:27.053 [main] DEBUG org.apache.iotdb.session.Session - EndPoint(ip:127.0.0.1, port:6667) execute sql select AVG(*) from root.BHSFC.Q1.W002
Export completely!

成功导出了一个 CSV 表格,内容为:

AVG(root.BHSFC.Q1.W002.WROT_HubTmp)
17.683083226110213

至此,结合上篇我们完整的了解了 IoTDB 在数据写入、导入、修改、查询、导出周期的基本操作实现和命令语句设置。但除此之外,还有一部分操作非常重要,了解它们将会让我们对 IoTDB 的整体数据结构能实现的功能有更好的了解,这就是元数据管理。

2

元数据管理

元数据是关于数据的组织、数据域及其关系的信息。元数据管理将使我们对 IoTDB 存入数据的源、目标、转换规则等有更加深入的了解,和管理调整的能力。

下面将从 5 个部分来阐释 IoTDB 中涉及的元数据管理:TsFile 管理、存储组管理、时间序列管理、元数据模板管理和节点管理。

2.1

TsFile 管理

TsFile 是 Apache IoTDB 自研的列式存储文件格式。我们可利用已有的 TsFile 文件来体验其管理操作。

首先我们进入 IoTDB 的 data 文件夹,一路点进去能找到 TsFile 后缀的文件,和以 TsFlie.resource 为后缀的文件,我们只复制那一个 TsFile 后缀的文件到其他文件夹即可,然后就可以

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apache IoTDB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值