與其他工具的連接
Grafana
TDengine 能夠與開源數(shù)據(jù)可視化系統(tǒng) Grafana 快速集成搭建數(shù)據(jù)監(jiān)測報警系統(tǒng),整個過程無需任何代碼開發(fā),TDengine 中數(shù)據(jù)表中內(nèi)容可以在儀表盤(DashBoard)上進(jìn)行可視化展現(xiàn)。關(guān)于 TDengine 插件的使用您可以在 GitHub 中了解更多。
安裝Grafana
目前 TDengine 支持 Grafana 7.0 以上的版本。用戶可以根據(jù)當(dāng)前的操作系統(tǒng),到 Grafana 官網(wǎng)下載安裝包,并執(zhí)行安裝。下載地址如下:https://grafana.com/grafana/download。
配置Grafana
TDengine 的 Grafana 插件托管在 GitHub,可從 https://github.com/taosdata/grafanaplugin/releases/latest 下載,當(dāng)前最新版本為 3.1.3。
推薦使用 grafana-cli 命令行工具 進(jìn)行插件安裝。
sudo -u grafana grafana-cli \
--pluginUrl https://github.com/taosdata/grafanaplugin/releases/download/v3.1.3/tdengine-datasource-3.1.3.zip \
plugins install tdengine-datasource
或者下載到本地并解壓到 Grafana 插件目錄。
GF_VERSION=3.1.3
wget https://github.com/taosdata/grafanaplugin/releases/download/v$GF_VERSION/tdengine-datasource-$GF_VERSION.zip
以 CentOS 7.2 操作系統(tǒng)為例,將插件包解壓到 /var/lib/grafana/plugins 目錄下,重新啟動 grafana 即可。
sudo unzip tdengine-datasource-$GF_VERSION.zip -d /var/lib/grafana/plugins/
Grafana 7.3+ / 8.x 版本會對插件進(jìn)行簽名檢查,因此還需要在 grafana.ini 文件中增加如下行,才能正確使用插件:
[plugins]
allow_loading_unsigned_plugins = tdengine-datasource
在 Docker 環(huán)境下,可以使用如下的環(huán)境變量設(shè)置自動安裝并設(shè)置 TDengine 插件:
GF_INSTALL_PLUGINS=https://github.com/taosdata/grafanaplugin/releases/download/v3.1.3/tdengine-datasource-3.1.3.zip;tdengine-datasource
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=tdengine-datasource
使用 Grafana
配置數(shù)據(jù)源
用戶可以直接通過 http://localhost:3000 的網(wǎng)址,登錄 Grafana 服務(wù)器(用戶名/密碼:admin/admin),通過左側(cè) Configuration -> Data Sources 可以添加數(shù)據(jù)源,如下圖所示:

點擊 Add data source 可進(jìn)入新增數(shù)據(jù)源頁面,在查詢框中輸入 TDengine 可選擇添加,如下圖所示:

進(jìn)入數(shù)據(jù)源配置頁面,按照默認(rèn)提示修改相應(yīng)配置即可:

- Host: TDengine 集群的中任意一臺服務(wù)器的 IP 地址與 TDengine RESTful 接口的端口號(6041),默認(rèn)
http://localhost:6041。注意:從 2.4 版本開始 RESTful 服務(wù)默認(rèn)使用獨立組件 taosAdapter 提供,請參考相關(guān)文檔配置部署。 - User:TDengine 用戶名。
- Password:TDengine 用戶密碼。
點擊 Save & Test 進(jìn)行測試,成功會有如下提示:

創(chuàng)建 Dashboard
回到主界面創(chuàng)建 Dashboard,點擊 Add Query 進(jìn)入面板查詢頁面:

如上圖所示,在 Query 中選中 TDengine 數(shù)據(jù)源,在下方查詢框可輸入相應(yīng) SQL 進(jìn)行查詢,具體說明如下:
- INPUT SQL:輸入要查詢的語句(該 SQL 語句的結(jié)果集應(yīng)為兩列多行),例如:
select avg(mem_system) from log.dn where ts >= $from and ts < $to interval($interval),其中,from、to 和 interval 為 TDengine 插件的內(nèi)置變量,表示從 Grafana 插件面板獲取的查詢范圍和時間間隔。除了內(nèi)置變量外,也支持可以使用自定義模板變量。 - ALIAS BY:可設(shè)置當(dāng)前查詢別名。
- GENERATE SQL: 點擊該按鈕會自動替換相應(yīng)變量,并生成最終執(zhí)行的語句。
按照默認(rèn)提示查詢當(dāng)前 TDengine 部署所在服務(wù)器指定間隔系統(tǒng)內(nèi)存平均使用量如下:

關(guān)于如何使用 Grafana 創(chuàng)建相應(yīng)的監(jiān)測界面以及更多有關(guān)使用 Grafana 的信息,請參考 Grafana 官方的文檔。
導(dǎo)入 Dashboard
在 2.3.3.0 及以上版本,您可以導(dǎo)入 TDinsight Dashboard (Grafana Dashboard ID: 15167) 作為 TDengine 集群的監(jiān)控可視化工具。安裝和使用說明請見 TDinsight 用戶手冊。
Matlab
MatLab 可以通過安裝包內(nèi)提供的 JDBC Driver 直接連接到 TDengine 獲取數(shù)據(jù)到本地工作空間。
MatLab 的 JDBC 接口適配
MatLab 的適配有下面幾個步驟,下面以 Windows10 上適配 MatLab2017a 為例:
- 從 (maven.org)[https://repo1.maven.org/maven2/com/taosdata/jdbc/taos-jdbcdriver/] 或其他 maven 鏡像網(wǎng)站下載 TDengine JDBC 驅(qū)動程序 JDBCDriver-x.x.x-dist.jar 拷貝到 ${matlab_root}\MATLAB\R2017a\java\jar\toolbox
- 將 TDengine 安裝包內(nèi)的 taos.lib 文件拷貝至${matlab_ root _dir}\MATLAB\R2017a\lib\win64
- 將新添加的驅(qū)動 jar 包加入 MatLab 的 classpath。在 ${matlab_ root _dir}\MATLAB\R2017a\toolbox\local\classpath.txt 文件中添加下面一行
$matlabroot/java/jar/toolbox/JDBCDriver-x.x.x-dist.jar
- 在${user_home}\AppData\Roaming\MathWorks\MATLAB\R2017a\下添加一個文件 javalibrarypath.txt, 并在該文件中添加 taos.dll 的路徑,比如您的 taos.dll 是在安裝時拷貝到了 C:\Windows\System32 下,那么就應(yīng)該在 javalibrarypath.txt 中添加如下一行:
C:\Windows\System32
在 MatLab 中連接 TDengine 獲取數(shù)據(jù)
在成功進(jìn)行了上述配置后,打開 MatLab。
- 創(chuàng)建一個連接:
conn = database(‘db’, ‘root’, ‘taosdata’, ‘com.taosdata.jdbc.TSDBDriver’, ‘jdbc:TSDB://127.0.0.1:0/’)
- 執(zhí)行一次查詢:
sql0 = [‘select * from tb’]
data = select(conn, sql0);
- 插入一條記錄:
sql1 = [‘insert into tb values (now, 1)’]
exec(conn, sql1)
更多例子細(xì)節(jié)請參考安裝包內(nèi) examples\Matlab\TDengineDemo.m 文件。
R
R 語言支持通過 JDBC 接口來連接 TDengine 數(shù)據(jù)庫。首先需要安裝 R 語言的 JDBC 包,下載 RJDBC 的時候,還會自動下載 RJDBC 依賴的 DBI 和 rJava 這兩個package。啟動 R 語言環(huán)境,然后執(zhí)行以下命令安裝 R 語言的 JDBC 支持庫:
install.packages('RJDBC', repos='http://cran.us.r-project.org')
安裝完成以后,通過執(zhí)行library()命令加載 DBI、rJava 和 RJDBC 包:
library('DBI')
library('rJava')
library('RJDBC')
然后加載 TDengine 的 JDBC 驅(qū)動:
drv<-JDBC("com.taosdata.jdbc.TSDBDriver","JDBCDriver-2.0.0-dist.jar", identifier.quote="\"")
如果執(zhí)行成功,不會出現(xiàn)任何錯誤信息。之后通過以下命令嘗試連接數(shù)據(jù)庫:
conn<-dbConnect(drv,"jdbc:TSDB://127.0.0.1:0/?user=root&password=taosdata","root","taosdata")
也可以使用 RESTful 來連接 TDengine。
conn<-dbConnect(drv,"jdbc:TAOS-RS://127.0.0.1:6041/test?user=root&password=taosdata","root","taosdata")
注意將上述命令中的IP地址替換成正確的IP地址。如果沒有任務(wù)錯誤的信息,則連接數(shù)據(jù)庫成功,否則需要根據(jù)錯誤提示調(diào)整連接的命令。TDengine 支持以下的 RJDBC 包中函數(shù):
- dbWriteTable(conn, "test", iris, overwrite=FALSE, append=TRUE):將數(shù)據(jù)框 iris 寫入表 test 中,overwrite 必須設(shè)置為 false,append 必須設(shè)為 TRUE,且數(shù)據(jù)框 iris 要與表 test 的結(jié)構(gòu)一致。
- dbGetQuery(conn, "select count(*) from test"):查詢語句
- dbSendUpdate(conn, "use db"):執(zhí)行任何非查詢 SQL 語句。例如 dbSendUpdate(conn, "use db"), 寫入數(shù)據(jù) dbSendUpdate(conn, "insert into t1 values(now, 99)") 等。
- dbReadTable(conn, "test"):讀取表 test 中數(shù)據(jù)
- dbDisconnect(conn):關(guān)閉連接
- dbRemoveTable(conn, "test"):刪除表 test

