一、基本概念
IoTDB是一款针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求 。是一款专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求 。
IoTDB是清华大学主导的Apache孵化项目,是Apache Flink、Apache Spark等大数据开源项目的核心组件之一。
IoTDB的架构采用存储和查询分离的架构,将底层存储开放给上层应用,一份数据既支持实时查询,也支持大数据分析,避免了数据迁移代价。
IoTDB的功能特点包括:
- 开放的架构:采用存储和查询分离的架构,将底层存储开放给上层应用,一份数据既支持实时查询,也支持大数据分析,避免了数据迁移代价。
- 新型文件格式:采用了新型文件格式,支持高效的压缩和索引算法,提高了存储效率和查询速度。
- 高性能:通过优化查询算法和数据结构,提高了查询效率和响应速度。
- 易使用:支持SQL语言、JDBC标准API和易于使用的导入/导出工具。与先进的开放源码生态系统无缝集成。
二、docker下的部署
使用Docker来部署IotDB,并将其文件映射到/opt/IotDB目录下。
1. 下载IoTDB的Docker镜像:在终端中输入以下命令,以从Docker Hub下载IoTDB的最新版本的Docker镜像:
docker pull apache/iotdb
2. 创建一个本地目录,用于存储IoTDB的数据文件:
mkdir -p /opt/IotDB
3. 将本地目录挂载到容器中的/opt/IotDB目录下:
docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 --name some-iotdb apache/iotdb -m /opt/IotDB
4. 现在,您可以将数据文件复制到本地目录中,并使用Tsfile格式进行存储。例如,将数据文件复制到/opt/IotDB目录下:
cp your_data_file.tsfile /opt/IotDB
5、进入容器:
docker exec -it some-iotdb /bin/bash
5. 在IoTDB容器中启动Tsfile存储引擎:
start-tsfile.sh
二、 IoTDB客户端的常规命令
#执行命令,连接IotDB
start-cli.sh
start-cli.sh -h 192.168.0.3 -p 6667 -u root -pw root
下面是一些IoTDB的基本命令:
创建时间序列:
CREATE TIMESERIES root.sg1.d1.s1 WITH DATATYPE=INT32, ENCODING=RLE
插入数据:
INSERT INTO root.sg1.d1(timestamp,s1) values(1, 1)
查询全库中最新的10条数据:
SSELECT * FROM root.sg* ORDER BY time DESC LIMIT 10;