如何将Qdrant本地实例的集合高效复制到云实例?
从本地Qdrant实例迁移集合到云实例的高效方案
1. 快照(Snapshot)迁移(最推荐)
这是性能最优的方式,完全规避遍历插入的低效问题:
- 本地实例创建快照:执行命令
qdrant-cli snapshot create --collection <你的集合名>,或通过API调用POST /collections/{collection_name}/snapshots - 传输快照文件:找到本地生成的快照文件(默认存放在
./snapshots目录),上传至云实例的快照存储目录 - 云实例恢复快照:执行命令
qdrant-cli snapshot restore --collection <目标集合名> --snapshot <快照文件名>,或通过API调用POST /collections/{collection_name}/snapshots/{snapshot_name}/restore - 注意:云实例Qdrant版本需与本地完全一致,恢复前确保云实例无同名集合,否则需先删除
2. 批量导出/导入API
如果无法使用快照,批量操作比单条遍历插入效率高得多:
- 本地批量导出:调用API
GET /collections/{collection_name}/points/batch,设置合理的limit参数(如一次导出10000条),分批拉取全量点数据 - 云端批量插入:将导出的批量数据通过云实例的
POST /collections/{collection_name}/points/batch接口批量写入,利用Qdrant对批量操作的性能优化,大幅减少请求开销
3. 直接迁移存储目录(仅限同版本同配置)
若本地与云实例Qdrant版本、存储引擎(如默认RocksDB)完全一致,可直接迁移集合存储目录:
- 停止本地Qdrant服务,找到集合存储目录(默认路径
./storage/collections/<集合ID>) - 将整个目录打包上传至云实例对应存储路径
- 启动云实例Qdrant服务,服务会自动识别并加载该集合
- 注意:版本或配置不一致会导致数据损坏,仅适合同环境迁移场景
内容的提问来源于stack exchange,提问作者Guinther Kovalski
相关产品推荐
相关产品推荐

