数据挂载
自 3.3.7.0 版本起,TDengine TSDB 企业版提供数据挂载功能。该功能支持用户在宿主集群中,通过 SQL 命令将源集群(包括飞行器、车载设备、边缘设备、同机房其他集群、跨数据中心集群、历史备份数据等)挂载到宿主集群,使宿主集群能够直接识别并访问源集群的数据库、表及数据。挂载后无需数据迁移,即可在宿主集群内直接查询挂载的源集群数据,让集群间的数据访问更加便捷高效。为防止源集群的数据被篡改,当前仅支持只读挂载模式。
语法
创建挂载
CREATE MOUNT mountName ON DNODE dnodeId FROM TDenginePath;
说明
- mountName:挂载名称,不能包含下划线
_
,挂载后的数据库名为 mountName_<dbname
>。 - dnodeId:源集群数据目录所在宿主集群的 dnode 节点标识。
- TDenginePath:源集群数据目录的绝对路径,需用英文单引号或双引号括起。
使用限制
- 同一宿主集群中,mountName 不能重复。
- mountName 不能与宿主集群中已有数据库重名。
- mountName 和 TDenginePath 一一对应。
- 目前仅支持在单个 dnode 节点进行挂载(如果源集群包含多级存储,目前需要手工调整 local.json 中非主挂载点的路径,非多级存储不需要调整)。
- 同一源集群同一时刻只能被一个宿主集群挂载。
- 宿主集群不能挂载其自身的数据目录。
- 源集群的数据库唯一标识 dbid 不能与宿主集群中现有 dbid 相同。
- 宿主集群中存在挂载数据库时,不允许创建新数据库(防止名称冲突)。
- 挂载时:暂不支持源集群多副本;暂不支持源集群加密数据库;暂不支持源集群无数据库。
- 宿主集群中,针对挂载库的操作:仅支持时序数据查询,不支持写入、元数据更新;不支持虚拟表时序数据查询,支持虚拟表元数据查询;不支持流计算、订阅、视图等功能;不支持 compact/trim/redistribute/split/restore 等管理操作。
- 只有超级管理员拥有操作权限。
示例
- 执行以下命令,可在宿主集群的 dnode 1 节点上,将源集群的 /var/lib/taos_1 数据目录以 mount1 为名称挂载到本地,挂载后宿主集群可通过 mount1_
<dbname
> 访问源集群的数据库:
CREATE MOUNT mount1 ON DNODE 1 FROM "/var/lib/taos_1";
查看挂载
SHOW MOUNTS;
示例
taos> show mounts;
name | dnode | create_time | path |
=======================================================================================================
mount1 | 1 | 2025-07-17 18:06:16.298 | /var/lib/taos_1 |
Query OK, 1 row(s) in set (0.027046s)
说明
- name:挂载名称。
- dnode:宿主集群中执行挂载的 dnode 节点。
- create_time:挂载在宿主集群的创建时间。
- path:源集群数据目录绝对路径。
- 只有拥有系统信息查看权限的用户可以查看。
删除挂载
DROP MOUNT mountName;
说明
- 清空宿主集群中与该挂载相关的元数据。
- 恢复源集群数据目录的配置信息,解除宿主集群对源集群的访问关联。
- 不会删除源集群的实际数据文件。
- 只有超级管理员拥有操作权限。
技术特点
快速数据访问
- 无需数据迁移,通过挂载将源集群数据 "接入" 宿主集群,直接在宿主集群内查询。
- 保持宿主集群查询操作的便捷性。
轻量级实现
- 通过元数据映射建立宿主集群与源集群的访问通道,源集群数据文件无需复制到宿主集群,仅在宿主集群记录挂载关联信息,实现轻量级跨集群访问。
实时查询
- 宿主集群直接访问源集群原始数据文件,避免数据迁移的延迟。
安全保障
- 宿主集群对挂载数据的只读限制,保护源集群的原始数据不被篡改。
- 挂载操作仅建立宿主集群与源集群的逻辑访问关系,配合只读限制和唯一性校验,确保数据安全与系统稳定。
- 卸载后自动恢复源集群配置,确保原始数据完整性不受挂载操作影响。
典型应用场景
此功能特别适用于需要频繁访问多个源集群数据但又不希望进行数据迁移的场景,为用户提供高效、安全的跨集群数据访问能力。
- 设备数据地面分析:源集群采集的数据无需导出迁移,通过挂载接入宿主分析集群,操作人员可在分析集群中直接查询设备数据。
- 跨集群数据比对:将多个业务集群数据挂载到统一分析集群(宿主集群),在分析集群内直接对比不同集群的同源数据。
- 历史数据查询:将离线存储的历史数据集群挂载到在线业务集群(宿主集群),无需回迁即可查询历史数据。
- 数据备份验证:挂载备份存储的集群到验证集群(宿主集群),直接在验证集群中查询验证备份数据的完整性。