数据迁移
TSDB 专享版支持把 TSDB 共享版的历史数据迁入专享版集群。迁移路径是先在共享版把数据导出到 BOS,再用 tsdb-cli 把导出的 CSV 导入专享版的目标数据库。
专享版与共享版的资源、接口、数据模型、访问地址和访问凭证相互独立,不能把共享版实例直接变更为专享版集群。迁移只搬运历史数据,应用侧的写入和查询改造需要另行规划。
迁移流程
- 创建专享版集群,并按业务规划创建目标数据库和保留期,见创建集群和管理 Database 与 Retention。
- 在共享版控制台把需要迁移的数据导出到 BOS Bucket,可按时间范围和度量选择导出范围,见共享版文档的数据管理。
- 用
tsdb-cli import analyze分析导出文件,确认生成的目标表结构。 - 用
tsdb-cli import把数据导入目标数据库,并抽查导入结果。 - 改造应用的写入与查询链路,切换到专享版的连接地址和访问令牌,见连接地址与认证和使用 SQL 与 Flight SQL 查询。
第 3 步和第 4 步的命令、参数和输入格式见导入共享版数据。
选择输入来源
共享版导出的目标位置是您自己的 BOS Bucket,因此推荐直接用 BOS 前缀导入,不必先把文件下载到本地。已经把导出文件下载到本地,或需要在导入前人工检查文件内容时,再使用本地目录或本地文件。
导出的数据量较大时会拆分为多个文件。无论从 BOS 还是从本地导入,都可以一次指定整个前缀或目录批量处理,不需要逐个文件执行。
迁移前规划
数据模型:共享版的一个 metric 导入为专享版的一张表,导出 CSV 中声明了类型的列导入为 Field,其余列导入为 Tag。表的 series key 顺序由分析步骤按各 Tag 的估算区分度推荐,不需要也不应手工调整。专享版的数据模型和资源关系见架构与关键概念。
保留期:导入不改变已存在表的保留期。时间戳早于保留期的历史数据会进入清理范围,导入前请确认目标数据库和表的保留期覆盖要迁移的时间范围。
分批迁移:共享版导出支持按时间范围和度量筛选。数据量大时建议分批导出和导入,便于核对每批结果并控制单次导入耗时。
重复执行:目标表结构一致时可以重复导入。分析产物与目标表结构冲突时,导入在写入任何数据前中止,不会留下部分写入的数据。
规划切换窗口
迁移搬运的是已经导出的历史数据。规划切换时可以:
- 先导出并导入历史数据,完成核对。
- 对切换点之后产生的增量数据,选择在应用侧双写、按时间范围补一次导出与导入,或安排停写窗口。
- 确认专享版的数据完整后,停止向共享版写入。
迁移后核对
按时间范围和返回行数抽查每张表,确认表结构、时间范围和取值符合预期后,再切换生产流量。刚完成大批量导入时,请不要对整张表执行没有过滤条件的全量扫描查询。
不在迁移范围内
- 不提供从专享版反向导出到共享版的能力。
- 不改变共享版的导出格式,也不在导入过程中做数据清洗、去重或跨库聚合。
- 不提供两个版本之间的双写或持续数据同步。
评价此篇文章
