原创 臧伟 2025-10-17 19:04 上海
手把手教你Milvus到Zilliz Cloud的迁移
今天周五了,聊点能让大家轻松点,少几次突发运维,周末能休息好的东西。
相信很多开发者在用过Milvus之后,都会觉得性能不错,体验也很好;但是随着数据量越来越大,落地的应用越来越复杂,不少人会逐渐觉得力不从心。
毕竟是生产级infra,会用到用的炉火纯青之间的差距,可能跟普通人会举着手机按拍照 VS 时尚杂志首席摄影师差不多。
这时候,与其死磕技术细节,不如直接选择Zilliz Cloud 上生产。作为 Milvus 的完全托管云服务,择Zilliz Cloud 由 Milvus 的创建者 Zilliz 开发,可以提供集托管、扩展和性能优化于一体的生产级解决方案,适合所有大数据量、业务复杂以及高速增长的团队。
那么怎么从自托管 Milvus 迁移到 Zilliz Cloud ,迁移过程中要注意什么,本文将一一解答。
01
为什么迁移到 Zilliz Cloud?
Zilliz Cloud 是基于 Milvus 的完全托管服务,提供 Serverless、Dedicated 和 BYOC(Bring Your Own Cloud)等多种部署选项,支持 AWS、GCP 和 Azure,旨在简化部署和扩展,尤其适合企业级 AI 以及搜广推相关应用。
通常来说,Milvus迁移到 Zilliz Cloud 的收益包括以下几个方面:
完全托管服务:Zilliz Cloud 处理所有基础设施管理,包括部署、扩展和维护,开发者无需担心服务器运维。
可扩展性:支持数十亿向量的扩展,适合数据量快速增长的场景。
性能优化:提供多种索引类型(如 HNSW、DiskANN)和硬件优化设计,确保高召回率和低延迟。从我自己过去的实践总结来看,Zilliz Cloud 性能更高(搜索延迟可达亚 10 毫秒)
成本效益:灵活的按需付费模式,避免了自建基础设施的固定成本。
安全性和合规性:支持私有网络、多租户和数据主权要求,适合受监管行业。
02
迁移前的准备
在开始迁移之前,开发者需要完成以下准备工作:
了解当前 Milvus 配置:记录 Milvus 的版本(需为 2.3.6 或更高以支持迁移)、部署方式(如 Docker 或 Kubernetes)以及任何自定义设置。
备份数据:确保 Milvus 数据有完整备份,这是迁移成功的关键。
选择迁移方法:根据数据库规模和需求,选择通过端点(适合逐个数据库迁移)或通过备份文件(适合大规模迁移)。
在本文迁移测试中,我们的源数据库采用的是standalone方式部署的Milvus数据库,其default数据库只有一个collection名字是migration_test,其中有1000条数据。
03
迁移教程
Zilliz Cloud 提供了两种主要迁移方法,具体步骤如下:
方法 1:通过端点(endpoint)
前提条件:
Milvus 要求:
版本:2.3.6 或更高
网络:必须通过公共互联网访问
认证:如果启用了认证,需要用户名和密码
Zilliz Cloud 要求:
用户角色:组织所有者或项目管理员
集群:确保存储和计算资源足够(使用 CU 计算器 确定规模)
网络:将 Zilliz Cloud 的 IP 地址添加到允许列表(参考 [Zilliz Cloud IPs](https://docs.zilliz.com/docs/zilliz-cloud-ips))
迁移过程:
在 Zilliz Cloud 控制台启动迁移。
选择Endpoint方式之后,
填入源数据库的访问URL 以及用户名和密码
检查链接通过之后,
指定需要迁移的源数据库collection以及Zilliz Cloud里目的数据库实例以及对应的colletion
确认数据字段对应准确以后,点击Migrate开始迁移的Job
在 "Jobs" 页面(Job Center)监控迁移状态。等待状态从 "In Progress" 变为 "Successful",表示迁移完成。
迁移后的步骤:
手动加载:为启用搜索和查询操作,手动加载集合(加载和释放集合)。
验证:确保集合和实体数量与原始 Milvus 一致。如果有差异,可重新迁移。
取消迁移:
如果迁移失败,在 "Jobs" 页面取消作业,并通过 "View Details" 查看错误日志。
方法 2:通过备份文件(backup files)
前提条件:
Zilliz Cloud 要求:
用户角色:组织所有者或项目管理员
集群:确保 CU 规模能容纳数据(使用 CU 计算器)
备份文件:
首先准备 Milvus 的备份文件,可存储在本地或对象存储(如 S3 或 Minio)。
创建和上传备份文件的步骤:
下载 milvus-backup:获取最新版本的 milvus-backup。
创建 configs 文件夹:下载 backup.yaml 文件
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
在下载的二进制文件所在的同级目录下,创建 configs 文件夹,然后将 backup.yaml 保存到 configs。文件夹结构如下:
workspace├── milvus-backup└── configs└── backup.yaml
自定义 backup.yaml:检查并调整配置,如 milvus.address、milvus.port、minio.address 等,根据环境调整。
创建备份:运行 ./milvus-backup --config backup.yaml create -n my_backup创建备份
获取备份文件:运行 ./milvus-backup --config backup.yaml get -n my_backu 获取备份文件。
检查备份文件
如果您将 minio.address 和 minio.port 设置为 OSS 存储,则您的备份文件已在 OSS 存储中。
如果您将 minio.address 和 minio.port 设置为 MinIO 存储,则可以通过 MinIO 控制台或 mc 客户端下载备份文件。
如果从 MinIO 控制台下载,请先登录 MinIO 控制台,找到 minio.address 中指定的存储桶,选择存储桶中的文件,然后开始下载。
如果使用 mc 客户端,则执行以下命令:
# 配置 Minio 主机mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey># 查询当前桶列表mc ls my_minio# 从桶中下载文件mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
上传到 Zilliz Cloud:将备份文件夹下的子文件夹上传到 Zilliz Cloud。
backup└── my_backup <= 上传此文件夹
迁移过程:
在 Zilliz Cloud 启动迁移。
依据备份文件所在位置选择
选择备份文件文件夹
指定迁移数据库以及Collection
在 "Jobs" 页面(Job Center)监控进度。
迁移后的步骤:与上述端点迁移步骤一致
手动加载:加载集合以启用搜索和查询。
验证:检查所有集合和实体是否正确迁移。
取消迁移:
在 "Jobs" 页面取消失败的迁移,并查看错误日志。
迁移的最佳实践为了确保迁移顺利,以下最佳实践值得关注:
数据一致性:在迁移前验证备份的完整性和一致性。
监控进度:密切关注 "Jobs" 页面,及时发现问题。
测试应用程序:迁移后,彻底测试应用,确保在 Zilliz Cloud 上正常运行。
迁移方法对比
关于以上迁移教程,如有疑问,或者进一步需求,欢迎点击原文查看详细文档页面,或在公众号留言(本文留言的前100名新迁移用户,后台私信,即可获得300人民币Zilliz Cloud 免费额度)。
作者介绍
Zilliz 黄金写手:臧伟
阅读推荐
长上下文会取代向量数据库?Context Engineering不同意
多少做RAG的人,连分词都搞不定? Milvus Analyzer指南
大模型贵,小模型蠢!vLLM+Milvus+智能路由,无痛降本50%
RAG-Anything × Milvus:阅读PDF要集成20个工具的RAG时代结束了!
