工業物聯網平台搭建時,你是否也曾面臨這樣的困境:關係型數據庫中的設備台賬、業務信息與時序數據庫中的傳感器數據各自存儲在不同的數據庫,業務分析時不得不反覆跨系統查詢、手工拼接?更復雜的是,當業務系統需要同時訪問 MySQL 中的元數據與 IoTDB 中的海量時序數據時,“多源異構”往往意味着“多重負擔”。
時序數據庫 IoTDB 與 MyCat 最新完成的深度集成,正是為解決這一痛點而生 —— 通過 MyCat 的分庫分表中間件能力,將 IoTDB 作為時序數據存儲引擎納入統一數據訪問層,實現關係型數據與時序數據的透明化聯合查詢,讓異構數據庫協同處理變得像操作單庫一樣簡單。
01 MyCat-IoTDB 簡介
MyCat 是一個開源的數據庫中間件,可以作為數據庫代理,對外提供 MySQL 協議能力,對內對接 IoTDB。用户可以在第三方工具通過 MySQL 數據源連接 MyCat,從而間接訪問 IoTDB 數據,無需第三方工具原生支持 IoTDB,進而連接異構數據庫並提供跨平台訪問能力。
02 啓動 MyCat-IoTDB
-
聯繫天謀科技商務同學,獲取 MyCat-IoTDB 包並解壓縮。
-
在 conf/datasources/prototypeDs.datasource.json 配置文件中配置連接的 IoTDB 實例信息:
{
"dbType":"iotdb",
"idleTimeout":60000,
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":30000,
"maxRetryCount":5,
"minCon":1,
"name":"prototype",
"password":"{IoTDB-PASSWORD}",
"type":"JDBC",
"url":"jdbc:iotdb://{IoTDB-IP}:{IoTDB-PORT}/?sql_dialect=table",
"user":"{IoTDB-User}",
"weight":0
}

- 在 conf/users/root.user.json 配置文件中配置 MyCat 用户信息:
{
"dialect":"mysql",
"ip":null,
"password":"{MyCat-PASSWORD}",
"transactionType":"proxy",
"username":"{MyCat-User}"
}

- 在 sbin 目錄下啓動 MyCat-IoTDB。
若想查看日誌信息,可前台啓動服務:
./mycat.bat console
若想在後台啓動服務,需要先安裝服務才能正確啓動:
./mybat.cat install./mybat.cat start
03 在第三方工具中通過 MySQL 連接 IoTDB
(1) DataGrip
-
啓動 MyCat-IoTDB 服務。
-
創建 MySQL 數據源:

- 配置數據源信息,端口為 8066,用户密碼為 MyCat 的用户密碼:

- 測試連接情況:

- 數據源創建成功後,勾選所有架構:

- 可在左側逐級查看數據庫、表和列:

- 點擊表可查看數據:

(2) Navicat
-
啓動 MyCat-IoTDB 服務。
-
創建 MySQL 數據源:

- 配置數據源信息,端口為 8066,用户密碼為 MyCat 的用户密碼:

- 測試連接情況:

- 可在左側逐級查看數據庫、表和列:

- 點擊表可查看數據:

如果你的項目正面臨多源數據融合的挑戰,或是希望在業務系統與物聯網數據之間搭建一座高效橋樑,不妨試試這一組合。IoTDB 與 MyCat 的集成方案現已開放體驗,歡迎私信小助手(微信號:apache_iotdb)獲取安裝包,開啓異構數據協同的實踐之旅。