IOTDB(一)学习: 安装、API上传、可视化、java集成、一些概念

前言

一切来自官方文档: https://iotdb.apache.org/zh/UserGuide/latest/QuickStart/QuickStart.html

IOTDB 套件:
在这里插入图片描述

IOTDB 1.3.2 官方部署环境要求

  • jdk > = 1.8
  • 设置最大文件打开数为 65535。

下载:https://download.csdn.net/download/weixin_45368812/89695860

官方,官方最靠谱

2024年8月30日14:11:58
够轻,应用场景也很专一,就是IOT,这也是它的时间序列给限死的。但是功能该有的都有,各种数据接入、集群、流…都有
因为太轻了,所以一些接入不是很灵活和高适应,很多都要自行开发和集成

测试环境1:window

window 11
IOTDB 1.3.2
JDK 17
安装方式 all in one

单机版安装

启动

双击start-standalone.bat
测试结果:出现两个窗口(一个 ConfigNode 和一个 DataNode)

在这里插入图片描述

看脚本可以发现start-standalone.bat主要的作用是启动start-confignode.bat和start-datanode.bat两个Shell脚本文件。

测试连接:

另开一个cmd,输入登录命令

> sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root

默认用户名和密码都是root

在这里插入图片描述

创建数据库

IoTDB> show databases;
+--------+---+-----------------------+---------------------+---------------------+
|Database|TTL|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+--------+---+-----------------------+---------------------+---------------------+
+--------+---+-----------------------+---------------------+---------------------+
Empty set.
It costs 0.565s

IoTDB> create database root.window
Msg: The statement is executed successfully.

IoTDB> show databases;
+-----------+----+-----------------------+---------------------+---------------------+
|   Database| TTL|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+-----------+----+-----------------------+---------------------+---------------------+
|root.window|null|                      1|                    1|            604800000|
+-----------+----+-----------------------+---------------------+---------------------+
Total line number = 1
It costs 0.139s
数据的存活时间-TTL

单位: ms
默认: NULL,永久保存

  • 数据存活是库级别的

  • 官方建议为了保证查询效率的情况下,可以适当设置database的数据存活时间,避免随着文件数量增加,磁盘写满或内存高占用带来的查询性能下降的弊端。

# 设置数据存活期限为1小时
IoTDB> set ttl to root.project01 3600000;
Msg: The statement is executed successfully.

# 取消TTL,数据永久保存
IoTDB> unset ttl to root.project01;
Msg: The statement is executed successfully.

# 批量设置TTL  
IoTDB> set ttl to root.** 3600000;
Msg: The statement is executed successfully.

注意:
假设TTL 设置为一小时,那么插入前一小时的数据将会报警 302 异常,因为这超出了设置的TTL时间

创建时间序列

IoTDB> create timeseries root.window.yfb01.xz.status with datatype=FLOAT,ENCODING=RLE;
Msg: The statement is executed successfully.
IoTDB> show timeseries;
+---------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+
|                 Timeseries|Alias|   Database|DataType|Encoding|Compression|Tags|Attributes|Deadband|DeadbandParameters|ViewType|
+---------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+
|root.window.yfb01.xz.status| null|root.window|   FLOAT|     RLE|        LZ4|null|      null|    null|              null|    BASE|
+---------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+
Total line number = 1
It costs 0.274s

简化写法:

create timeseries root.ln.wf01.wt01.status BOOLEAN encoding=PLAIN

批量创建:

IoTDB> CREATE ALIGNED TIMESERIES root.ln.wf01.GPS(latitude FLOAT encoding=PLAIN compressor=SNAPPY, longitude FLOAT encoding=PLAIN compressor=SNAPPY) 

关于时间序列路径

时间序列路径(path) 是一个层级结构的字符串。

root.<storage_group>.<device_id>.<measurement>

root:这是所有时间序列路径的根节点。
<storage_group>:这是存储组,用于定义如何在磁盘上组织和隔离不同的时间序列数据。可以理解为关系数据库中的数据库。
<device_id>:这是设备标识符,类似于传统数据库中的表名。每个设备可以被视为一个独立的数据源。
<measurement>:这是测量点,类似于传统数据库中的列名。每个测量点代表了一个具体的传感器数据或指标。

如何创建一个空白的设备。
在 IoTDB 中创建设备层主要是通过创建时间序列(即测量点)来完成的,因为设备本身不需要单独创建,而是通过存储其测量点数据自动识别。

标准是4层 根.库.表.字段,咱就按标准来吧

在这里插入图片描述

当然,也可以根据业务创建自定义层数的路径

需要注意:project.station和project.station.device不能同时创建为库路径
例:在已经有root.lnroot.sgcc这两个 database 的情况下,创建root.ln.wf01 database 是不可行的。系统将给出相应的错误提示,Msg: 300: root.ln has already been created as database.
在这里插入图片描述

支持的数据类型

创建时间序列的时候需要指定数据类型。
BOOLEAN:布尔类型,表示 true 或 false。
INT32:32位整数。
INT64:64位整数。
FLOAT:单精度浮点数。
DOUBLE:双精度浮点数。
TEXT:文本字符串类型。
VECTOR:向量类型,可以存储一系列基本数据类型的值。
STRUCT:结构体类型,可以存储一组命名的基本数据类型的值
INARY:二进制数据类型,用于存储非文本的二进制数据。
TIMESTAMP:时间戳类型,用于存储时间序列数据的时间戳

编码方式

不同的编码方式可以优化存储和查询性能

  • RLE:Run-Length Encoding,适用于连续重复值的情况。
  • PLAIN:简单的无损编码方式,适用于大多数数据类型。
  • GORILLA:适用于时间序列数据的压缩算法,尤其适用于连续变化较小的时间戳。
  • BITMAP:适用于布尔类型数据的高效压缩方式。

插入数据

批量插入
时间格式

IoTDB> insert into root.window.yfb01.xz(timestamp,status) values(100,12.09);
Msg: The statement is executed successfully.
IoTDB> select status from root.window.yfb01.xz;
+-----------------------------+---------------------------+
|                         Time|root.window.yfb01.xz.status|
+-----------------------------+---------------------------+
|1970-01-01T08:00:00.100+08:00|                      12.09|
+-----------------------------+---------------------------+
Total line number = 1
It costs 0.182s
IoTDB> select  * from root.window.yfb01.xz;
+-----------------------------+---------------------------+
|                         Time|root.window.yfb01.xz.status|
+-----------------------------+---------------------------+
|19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值