工业物联网平台搭建时,你是否也曾面临这样的困境:关系型数据库中的设备台账、业务信息与时序数据库中的传感器数据各自存储在不同的数据库,业务分析时不得不反复跨系统查询、手工拼接?更复杂的是,当业务系统需要同时访问 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 的集成方案现已开放体验,欢迎联系我们获取安装包,开启异构数据协同的实践之旅。
更多内容推荐:
• 下载开源时序数据库 IoTDB
• 咨询 Apache IoTDB 专家服务