時(shí)序數(shù)據(jù)庫啟用
目前系統(tǒng)的時(shí)序數(shù)據(jù)存儲(chǔ)支持四種方式:mysql、tdengine、influxdb、iotdb。
數(shù)據(jù)量少可以使用mysql進(jìn)行存儲(chǔ),數(shù)據(jù)量大的可以根據(jù)需要選擇tdengine、influxdb、iotdb三種之一,不能同時(shí)啟用。
在application-sql配置文件中存在三個(gè)時(shí)序數(shù)據(jù)庫的配置示例,開發(fā)環(huán)境或者生產(chǎn)環(huán)境將application-sql文件對(duì)應(yīng)時(shí)序數(shù)據(jù)庫的配置復(fù)制到application-dev或application-prod文件,將enable修改為true即可啟用。
啟用前需先將對(duì)應(yīng)時(shí)序數(shù)據(jù)庫安裝,不同時(shí)序數(shù)據(jù)庫安裝步驟往后查看。


操作系統(tǒng)中安裝
類似教程和文檔太多,針對(duì)windows和linux有不同的安裝方式,這里就不具體介紹。主要介紹下docker方式安裝。
docker安裝
提示
運(yùn)行容器前,沒有網(wǎng)橋,請(qǐng)先創(chuàng)建網(wǎng)橋,用于容器間通訊: docker network create -d bridge fastbee-bridge
一、tdengine安裝
執(zhí)行下面命令安裝TDengin,設(shè)置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介紹
注意
- 服務(wù)器、客戶端和客戶端驅(qū)動(dòng)安裝的版本需要對(duì)應(yīng)上
- 系統(tǒng)默認(rèn)使用Mysql存儲(chǔ)設(shè)備上報(bào)的數(shù)據(jù),如果數(shù)據(jù)量大可以啟用TDengine存儲(chǔ)
TDengine 社區(qū)版是一開源版本,采用的是AGPL許可證,是一個(gè)處理中小規(guī)模的物聯(lián)網(wǎng)數(shù)據(jù)平臺(tái)。它具備高效處理物聯(lián)網(wǎng)數(shù)據(jù)所需要的所有功能,包括:
- 類SQL查詢語言來插入或查詢數(shù)據(jù)
- 支持C/C++, Java(JDBC), Python, Go, RESTful, and Node.JS 等開發(fā)接口
- 通過TDengine Shell或Python/R/Matlab可做各種Ad Hoc查詢分析
- 通過連續(xù)查詢,支持基于滑動(dòng)窗口的流式計(jì)算
- 引入超級(jí)表,讓設(shè)備之間的數(shù)據(jù)聚合通過標(biāo)簽變得簡單、靈活
- 內(nèi)嵌消息隊(duì)列,應(yīng)用可訂閱最新的數(shù)據(jù)
- 內(nèi)嵌緩存機(jī)制,每臺(tái)設(shè)備的最新狀態(tài)或記錄都可快速獲得
- 無歷史數(shù)據(jù)與實(shí)時(shí)數(shù)據(jù)之分,對(duì)應(yīng)用而言,透明且完全一樣
- 分布式架構(gòu),支持線性擴(kuò)展,以保證任何規(guī)模的數(shù)據(jù)量都可以處理
- 支持多副本,無單點(diǎn)故障,以保證系統(tǒng)的高可用與高可靠
系統(tǒng)啟用TDengine
提示
- 修改配置文件,文件位于:
springboot/fastbee-admin/src/main/resources/application-dev.yml
,生產(chǎn)環(huán)境為application-prod.yml
taos: # 配置 taos 數(shù)據(jù)源
enabled: false # 默認(rèn)不啟用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
- 啟動(dòng)項(xiàng)目,如果正確連接了TDengine,會(huì)自動(dòng)生成fastbee_log數(shù)據(jù)庫和device_log超級(jí)表,設(shè)備上傳數(shù)據(jù)后,會(huì)自動(dòng)生成名稱為
device_設(shè)備編號(hào)
的字表
客戶端工具遠(yuǎn)程連接TDengine
提示
- hostname 主機(jī)名,局域網(wǎng)中,主機(jī)名也是可以解析到IP上的(服務(wù)端設(shè)置)
- hosts 本地DNS系統(tǒng),查詢域名時(shí)會(huì)先到該文件里面查詢,查詢不到再去DNS服務(wù)器查找(客戶端設(shè)置)
TDengine 采用 FQDN(一般就是 hostname)作為節(jié)點(diǎn)的 ID,為保證正常運(yùn)行,需要給運(yùn)行 taosd 的服務(wù)器配置好 FQDN,在 TDengine CLI 或應(yīng)用運(yùn)行的機(jī)器配置好 DNS 服務(wù)或 hosts 文件,保證 FQDN 能夠解析。FQDN 完全限定域名,指計(jì)算機(jī)或主機(jī)的完整域名,由主機(jī)名和域名組成。DNS負(fù)責(zé)將FQDN翻譯成IP,是互聯(lián)網(wǎng)絕大多數(shù)應(yīng)用的尋址方式。
- Linux設(shè)置服務(wù)端和客戶端
- 修改
/etc/hostname
文件內(nèi)容為fastbee
,修改完成后需要重啟才能生效, 或者執(zhí)行hostname fastbee
命令 - 修改
/etc/hosts
文件,文件末尾增加10.211.55.14 fastbee
ip根據(jù)自己服務(wù)器填寫
- Windows暫時(shí)只支持部署客戶端
- 修改
C:\Windows\System32\drivers\etc
目錄下的hosts文件,文件末尾增加10.211.55.14 fastbee
ip根據(jù)自己服務(wù)器填寫
- 客戶端工具下載 TDengineGUI
二、influxdb安裝
執(zhí)行下面命令安裝influx,需要先創(chuàng)建網(wǎng)橋: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版本自帶可視化工具,以上命令會(huì)自動(dòng)創(chuàng)建登陸賬號(hào):admin
密碼:admin123
,ORG:fastbee
,存儲(chǔ)桶(相當(dāng)于表):device_log
,以及訪問TOKEN。 通過ip:8086端口訪問influx控制臺(tái):
通過admin admin123登陸進(jìn)入如下頁面:
三、iotdb安裝
執(zhí)行下面命令安裝iotdb,需要先創(chuàng)建網(wǎng)橋: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數(shù)據(jù)庫安裝之后,需要執(zhí)行創(chuàng)建時(shí)序字段的sql之后才能啟用,具體步驟如下:
1.使用開發(fā)工具idea(或者其他工具)配置iotdb數(shù)據(jù)庫連接驅(qū)動(dòng)
驅(qū)動(dòng)所在位置如下:
配置如下:
配置數(shù)據(jù)源:
配置完鼠標(biāo)右鍵新建查詢控制臺(tái)
找到iotdb初始化sql,將創(chuàng)建時(shí)間序列的sql復(fù)制到控制臺(tái)中執(zhí)行
執(zhí)行成功即可啟用iotdb時(shí)序數(shù)據(jù)庫