跳至主要內容

时序数据库安装与启用

fastbee2024年9月27日大约 6 分钟

时序数据库启用

目前系统的时序数据存储支持四种方式: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许可证,是一个处理中小规模的物联网数据平台。它具备高效处理物联网数据所需要的所有功能,包括:

系统启用TDengine

提示

  • TDengine安装在服务器,本地运行项目,需要先安装客户端驱动。查看详情
  • 安装TDengine后,如果需要客户端远程连接,必须要配置FQDN。参考文档
  • Windows平台下JDBCDriver找不到动态链接库 解决方法
  1. 修改配置文件,文件位于: 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
  1. 启动项目,如果正确连接了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,是互联网绝大多数应用的寻址方式。

  1. Linux设置服务端和客户端
  1. Windows暂时只支持部署客户端
  1. 客户端工具下载 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时序数据库