跳到主要内容

数据挂载

v3.3.7.0 起,TDengine 企业版提供数据挂载功能。可在宿主集群中通过 SQL 将源集群(如飞行器、车载/边缘设备、同机房或其他数据中心的集群、历史备份数据等)挂载到宿主集群,使宿主集群直接识别并访问源集群的数据库、表及数据。挂载后无需数据迁移即可查询;为防止源数据被篡改,当前仅支持只读挂载。

语法

创建挂载

CREATE MOUNT [IF NOT EXISTS] mountName ON DNODE dnodeId FROM TDenginePath;

说明

  • mountName:挂载名称,不能包含下划线 _;挂载后的数据库名为 mountName_<dbname>
  • dnodeId:源集群数据目录所在宿主集群的 dnode 标识
  • TDenginePath:源集群数据目录的绝对路径,需用英文单引号或双引号括起

使用限制

  • 同一宿主集群中,mountName 不能重复
  • mountName 不能与宿主集群中已有数据库重名
  • mountNameTDenginePath 一一对应
  • 目前仅支持在单个 dnode 上挂载;若源集群使用多级存储,需手工调整 local.json 中非主挂载点路径(非多级存储无需调整)
  • 同一源集群同一时刻只能被一个宿主集群挂载
  • 宿主集群不能挂载其自身的数据目录
  • 源集群数据库唯一标识 dbid 不能与宿主集群中现有 dbid 相同
  • 宿主集群中已存在挂载数据库时,不允许创建新数据库(防止名称冲突)
  • 挂载时:暂不支持源集群多副本、加密数据库,以及源集群无数据库的情况
  • 宿主集群对挂载库:仅支持时序数据查询,不支持写入与元数据更新;不支持虚拟表时序数据查询,支持虚拟表元数据查询;不支持流式计算、订阅、视图等功能;不支持 COMPACT / TRIM / REDISTRIBUTE / SPLIT / RESTORE 等管理操作
  • 仅超级管理员拥有操作权限

示例

在宿主集群的 dnode 1 上,将源集群目录 /var/lib/taos_1mount1 为名称挂载;挂载后可通过 mount1_<dbname> 访问源集群数据库:

CREATE MOUNT mount1 ON DNODE 1 FROM '/var/lib/taos_1';

查看挂载

SHOW MOUNTS;

示例

SHOW MOUNTS;

示例输出:

   name  | dnode |       create_time       |      path       |
==============================================================
mount1 | 1 | 2025-07-17 18:06:16.298 | /var/lib/taos_1 |

说明

  • name:挂载名称
  • dnode:宿主集群中执行挂载的 dnode
  • create_time:挂载在宿主集群的创建时间
  • path:源集群数据目录绝对路径
  • 仅拥有系统信息查看权限的用户可以查看

删除挂载

DROP MOUNT [IF EXISTS] mountName;

说明

  • 清空宿主集群中与该挂载相关的元数据
  • 恢复源集群数据目录的配置信息,解除宿主集群对源集群的访问关联
  • 不会删除源集群的实际数据文件
  • 仅超级管理员拥有操作权限

技术特点

快速数据访问

  • 无需数据迁移,通过挂载将源集群数据接入宿主集群,直接在宿主集群内查询
  • 保持宿主集群查询操作的便捷性

轻量级实现

  • 通过元数据映射建立访问通道,源集群数据文件无需复制到宿主集群,仅在宿主集群记录挂载关联信息

实时查询

  • 宿主集群直接访问源集群原始数据文件,避免数据迁移带来的延迟

安全保障

  • 宿主集群对挂载数据只读,保护源集群原始数据不被篡改
  • 挂载仅建立逻辑访问关系,配合只读限制与唯一性校验,保障数据安全与系统稳定
  • 卸载后自动恢复源集群配置,原始数据完整性不受挂载操作影响

典型应用场景

适用于需频繁访问多个源集群数据、又不希望迁移数据的场景:

  • 设备数据地面分析:源集群采集的数据无需导出迁移,挂载到分析集群后直接查询
  • 跨集群数据比对:将多个业务集群挂载到统一分析集群,在分析集群内对比同源数据
  • 历史数据查询:将离线历史数据集群挂载到在线业务集群,无需回迁即可查询
  • 数据备份验证:将备份存储集群挂载到验证集群,直接校验备份数据完整性