Ubuntu20.04配置iotDB
安装
1. 官方文档
a. https://iotdb.apache.org/zh/UserGuide/V0.13.x/QuickStart/QuickStart.html
2. 下载压缩包(直接下载all in one版本)
a. https://iotdb.apache.org/zh/Download/
3. 解压(推荐使用WindTerm,开源、不占内存、自带文件传输的ssh远程软件,直接百度WindTerm去GitHub上下载就好了)
a. unzip
b. 可以在Windows v下解压好再传输,一般安装到/opt目录下
4. 启动
a. nohup /opt/iotDB/sbin/start-server.sh -f >/dev/null 2>&1 &
5. 客户端
a. /opt/iotDB/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
b. 如果报错或者没有反应,试试重新安装,我就是这样的
c. 如果还不行请尝试sudo chown -R 777 /opt/iotDB
基本操作
1. 创建存储组(类似于hbase的大表?不过具体数据结构还未仔细研究)
a. SET STORAGE GROUP TO root.ln
2. 查看存储组
a. SHOW STORAGE GROUP
3. 创建时间序列(大表.列族.列名 姑且先这样理解)
a. CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
b. CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE
4. 插入数据(必须指定时间戳timestamp)
a. INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
b. IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)
表名的理解
这部分在文档中为‘数据模型’
在文档中,表名是指符合以下约束的表达式:
nodeName ('.' nodeName)* #可以看出表明类似于一棵树,一个文件夹,可以具有无限深度
但具体问题具体分析,文档中发现表明可以使用通配符,类似于xpath
*在路径中表示一层。
**在路径中表示是()+,即为一层或多层。
树!层级!通配符!学过爬虫的大概都已经懂了,在iotDB中根本不存在表,只存在‘路径’
,一颗路径树,路径记录着iot设备的归属关系,树的叶子节点则是每个iot设备记录数据的字段,而数据就存储在叶子节点上。
搜索时
‘表名’写‘路径’,不需要写‘叶子节点’
‘列名’写‘叶子节点’
假设现在有好多个层级:
root
⨽学校名
⨽系名
⨽专业名
⨽年级名
⨽学生姓名
⨽属性(字段)
# 查找清华大学软件工程系大数据专业2077级的‘所有学生的数据’
select * from root.清华大学.软件工程.大数据.2077.*;
# 查找清华大学软件工程系2077级的‘所有学生的数据’
select * from root.清华大学.软件工程.*.2077.*;
# 查找清华大学的‘2077级的所有学生的数据’
select * from root.清华大学.**.2077.*;
最后贴上验证照片以及WindTerm的界面
连接数据库管理工具DBeaver
前情提示:感觉iotDB和DBeaver不太适配,可能还有待开发吧
网上这方面的资料也不少,因为没什么结果,所以我就不复现了。
如果你想尝试的话,也许会遇到一个问题,就是在‘驱动类’那里,会空白,可以不用理它直接跳过。总之最后的结果是连接上了数据库,但是没有数据……
但毕设也不能卡在这一步,这也不是非必要的,所以就等有缘人尝试了,成功了请务必在评论里告诉我。
我做个笔记它叫我改进质量……