简介
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,持续更新中..
