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 中涉及的元数据管理:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Apache IoTDB

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

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

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

打赏作者

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

抵扣说明:

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

余额充值