简介
IoTDB 是清华大学主导的 Apache 孵化项目,是一款专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。
架构图
安装
## 下载
wget https://apache.website-solution.net/iotdb/0.12.1/apache-iotdb-0.12.1-server-bin.zip
## 解压
unzip apache-iotdb-0.12.1-server-bin.zip
软件目录结构
sbin 启动和停止脚本目录
conf 配置文件目录
tools 系统工具目录
lib 依赖包目录
启动
> nohup sbin/start-server.sh >/dev/null 2>&1 &
or
> nohup sbin/start-server.sh -c <conf_path> -rpc_port <rpc_port> >/dev/null 2>&1 &
“-c” and “-rpc_port” 都是可选的。
选项 “-c” 指定了配置文件所在的文件夹。
选项 “-rpc_port” 指定了启动的 rpc port。
如果两个选项同时指定,那么rpc_port将会覆盖conf_path下面的配置。
进入客户端控制台:
sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
配置 MQTT
修改配置文件 conf/otdb-engine.properties
####################
### MQTT Broker Configuration
####################
enable_mqtt_service=true
mqtt_port=1883
mqtt_handler_pool_size=1
mqtt_payload_formatter=json
mqtt_max_message_size=1048576
整合
新增配置类 IotDBSessionConfig:
/**
* @author 小柒2012
* @version 1.0
* @description: IoTDB配置
* @date 2021/8/5 22:49
*/
@Configuration
public class IotDBSessionConfig {
@Value("${spring.iotdb.username:root}")
private String username;
@Value("${spring.iotdb.password:root}")
private String password;
@Value("${spring.iotdb.ip:127.0.0.1}")
private String ip;
@Value("${spring.iotdb.port:6667}")
private int port;
@Value("${spring.iotdb.maxSize:10}")
private int maxSize;
@Bean
public SessionPool getSessionPool() {
return new SessionPool(ip, port, username, password, maxSize);
}
}
模拟测试数据:
public static void main(String[] args) {
try {
MQTT mqtt = new MQTT();
mqtt.setHost("127.0.0.1", 1883);
mqtt.setUserName("root");
mqtt.setPassword("root");
BlockingConnection connection = mqtt.blockingConnection();
connection.connect();
Random random = new Random();
for (int i = 0; i < 10; i++) {
String payload = String.format("{\n" +
"\"device\":\"root.DNC002\",\n" +
"\"timestamp\":%d,\n" +
"\"measurements\":[\"speed\"],\n" +
"\"values\":[%f]\n" +
"}", System.currentTimeMillis(), random.nextDouble());
System.out.println(payload);
connection.publish("root.DNC002", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
}
connection.disconnect();
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
进入控制台查询数据:
[root@localhost iotdb-0.12.1-server]# sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
---------------------
Starting IoTDB Cli
---------------------
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | / .'`\ \ | | | | | | | __'.
_| |_| \__. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version 0.12.1
IoTDB> login successfully
IoTDB>
IoTDB> select * from root.DNC002
+-----------------------------+-----------------+
| Time|root.DNC002.speed|
+-----------------------------+-----------------+
|2021-08-10T22:58:48.854+08:00| 0.798263|
|2021-08-10T22:58:48.914+08:00| 0.589887|
|2021-08-10T22:58:48.922+08:00| 0.097675|
|2021-08-10T22:58:48.936+08:00| 0.92061|
|2021-08-10T22:58:48.947+08:00| 0.9796|
|2021-08-10T22:58:48.955+08:00| 0.873128|
|2021-08-10T22:58:48.964+08:00| 0.627699|
|2021-08-10T22:58:48.976+08:00| 0.506671|
|2021-08-10T22:58:48.983+08:00| 0.550821|
|2021-08-10T22:58:48.993+08:00| 0.840226|
+-----------------------------+-----------------+
Total line number = 30
It costs 0.335s
地址:https://iotdb.apache.org/zh顺便给大家推荐一个GitHub项目,这个 GitHub 整理了上千本常用技术PDF,绝大部分核心的技术书籍都可以在这里找到,
GitHub地址:https://github.com/javadevbooks/books
Gitee地址:https://gitee.com/javadevbooks/books
电子书已经更新好了,你们需要的可以自行下载了,记得点一个star,持续更新中..