时序数据库安装与启用
时序数据库启用
目前系统的时序数据存储支持四种方式:mysql、tdengine、influxdb、iotdb。
数据量少可以使用mysql进行存储,数据量大的可以根据需要选择tdengine、influxdb、iotdb三种之一,不能同时启用。
在application-sql配置文件中存在三个时序数据库的配置示例,开发环境或者生产环境将application-sql文件对应时序数据库的配置复制到application-dev或application-prod文件,将enable修改为true即可启用。
启用前需先将对应时序数据库安装,不同时序数据库安装步骤往后查看。


操作系统中安装
类似教程和文档太多,针对windows和linux有不同的安装方式,这里就不具体介绍。主要介绍下docker方式安装。
docker安装
提示
运行容器前,没有网桥,请先创建网桥,用于容器间通讯: docker network create -d bridge fastbee-bridge
一、tdengine安装
执行下面命令安装TDengin,设置hostname用于客户端连接
docker run -d \
--name tdengine \
--hostname="fastbee" \
--volume /var/data/taos/log:/var/log/taos \
--volume /var/data/taos/data:/var/lib/taos \
--publish 6030-6049:6030-6049 \
--publish 6030-6049:6030-6049/udp \
--restart unless-stopped \
--volume /etc/localtime:/etc/localtime \
--env "TZ=Asia/Shanghai" \
tdengine/tdengine:3.3.2.0
TDengine介绍
注意
- 服务器、客户端和客户端驱动安装的版本需要对应上
- 系统默认使用Mysql存储设备上报的数据,如果数据量大可以启用TDengine存储
TDengine 社区版是一开源版本,采用的是AGPL许可证,是一个处理中小规模的物联网数据平台。它具备高效处理物联网数据所需要的所有功能,包括:
- 类SQL查询语言来插入或查询数据
- 支持C/C++, Java(JDBC), Python, Go, RESTful, and Node.JS 等开发接口
- 通过TDengine Shell或Python/R/Matlab可做各种Ad Hoc查询分析
- 通过连续查询,支持基于滑动窗口的流式计算
- 引入超级表,让设备之间的数据聚合通过标签变得简单、灵活
- 内嵌消息队列,应用可订阅最新的数据
- 内嵌缓存机制,每台设备的最新状态或记录都可快速获得
- 无历史数据与实时数据之分,对应用而言,透明且完全一样
- 分布式架构,支持线性扩展,以保证任何规模的数据量都可以处理
- 支持多副本,无单点故障,以保证系统的高可用与高可靠
系统启用TDengine
提示
- 修改配置文件,文件位于:
springboot/fastbee-admin/src/main/resources/application-dev.yml
,生产环境为application-prod.yml
taos: # 配置 taos 数据源
enabled: false # 默认不启用TDengine,true=启用,false=不启用
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.taosdata.jdbc.TSDBDriver
url: jdbc:TAOS://fastbee:6030/fastbee_log?timezone=UTC-8&charset=utf-8
username: root
password: taosdata
dbName: fastbee_log
- 启动项目,如果正确连接了TDengine,会自动生成fastbee_log数据库和device_log超级表,设备上传数据后,会自动生成名称为
device_设备编号
的字表
客户端工具远程连接TDengine
提示
- hostname 主机名,局域网中,主机名也是可以解析到IP上的(服务端设置)
- hosts 本地DNS系统,查询域名时会先到该文件里面查询,查询不到再去DNS服务器查找(客户端设置)
TDengine 采用 FQDN(一般就是 hostname)作为节点的 ID,为保证正常运行,需要给运行 taosd 的服务器配置好 FQDN,在 TDengine CLI 或应用运行的机器配置好 DNS 服务或 hosts 文件,保证 FQDN 能够解析。FQDN 完全限定域名,指计算机或主机的完整域名,由主机名和域名组成。DNS负责将FQDN翻译成IP,是互联网绝大多数应用的寻址方式。
- Linux设置服务端和客户端
- 修改
/etc/hostname
文件内容为fastbee
,修改完成后需要重启才能生效, 或者执行hostname fastbee
命令 - 修改
/etc/hosts
文件,文件末尾增加10.211.55.14 fastbee
ip根据自己服务器填写
- Windows暂时只支持部署客户端
- 修改
C:\Windows\System32\drivers\etc
目录下的hosts文件,文件末尾增加10.211.55.14 fastbee
ip根据自己服务器填写
- 客户端工具下载 TDengineGUI
二、influxdb安装
执行下面命令安装influx,需要先创建网桥:docker network create -d bridge fastbee-bridge
docker run -d \
--name influxdb \
-p 8086:8086 \
-v /var/data/influxdb2:/var/lib/influxdb2 \
-e DOCKER_INFLUXDB_INIT_MODE="setup" \
-e DOCKER_INFLUXDB_INIT_USERNAME="admin" \
-e DOCKER_INFLUXDB_INIT_PASSWORD="admin123" \
-e DOCKER_INFLUXDB_INIT_ORG="fastbee" \
-e DOCKER_INFLUXDB_INIT_BUCKET="device_log" \
-e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN="inX0k-IPfSgKg6AIfoZm6Mv0DQyQOKCkfvs5ZF3a836Yzx2Ew9QgxsHev40_2gztuMn6tofwyS6nfbT4cD-SeA==" \
--network fastbee-bridge \
influxdb:2.7.5
influx2.x版本自带可视化工具,以上命令会自动创建登陆账号:admin
密码:admin123
,ORG:fastbee
,存储桶(相当于表):device_log
,以及访问TOKEN。 通过ip:8086端口访问influx控制台:
通过admin admin123登陆进入如下页面:
三、iotdb安装
执行下面命令安装iotdb,需要先创建网桥:docker network create -d bridge fastbee-bridge
docker run -d \
--name iotdb \
--restart always \
-p 6667:6667 \
-p 5555:5555 \
-p 8070:8070 \
-p 9003:9003 \
--privileged \
-v /var/data/iotdb/data:/iotdb/data \
-v /var/data/iotdb/logs:/iotdb/logs \
-v /var/data/iotdb/conf:/iotdb/conf \
-e TZ=Asia/Shanghai \
--network fastbee-bridge \
apache/iotdb:1.3.3-standalone
iotdb数据库安装之后,需要执行创建时序字段的sql之后才能启用,具体步骤如下:
1.使用开发工具idea(或者其他工具)配置iotdb数据库连接驱动
驱动所在位置如下:
配置如下:
配置数据源:
配置完鼠标右键新建查询控制台
找到iotdb初始化sql,将创建时间序列的sql复制到控制台中执行
执行成功即可启用iotdb时序数据库