Milvus 迁移概述
认识到用户群的多样化需求,Milvus 扩展了其迁移工具,不仅便于从 Milvus 1.x 早期版本升级,还能无缝集成来自Elasticsearch和Faiss 等其他系统的数据。Milvus 迁移项目旨在弥合这些不同数据环境与 Milvus 技术最新进展之间的差距,确保您能无缝利用改进的功能和性能。
支持的迁移
Milvus-migration工具支持多种迁移路径,以适应不同用户的需求:
- 从 Elasticsearch 迁移到 Milvus 2.x:使用户能够从 Elasticsearch 环境迁移数据,以利用 Milvus 优化的向量搜索功能。
- Faiss 到 Milvus 2.x:为从 Faiss(一种用于高效相似性搜索的流行库)传输数据提供实验支持。
- Milvus 1.x 到 Milvus 2.x:确保早期版本的数据顺利过渡到最新框架。
- Milvus 2.3.x 到 Milvus 2.3.x 或更高版本:为已迁移至 2.3.x 的用户提供一次性迁移路径。
特点
Milvus-migration 具有强大的功能,可处理各种迁移情况:
- 多种交互方式:你可以通过命令行界面或Restful API执行迁移,灵活掌握迁移的执行方式。
- 支持各种文件格式和云存储:Milvus 迁移工具可以处理存储在本地文件以及 S3、OSS 和 GCP 等云存储解决方案中的数据,确保广泛的兼容性。
- 数据类型处理:Milvus-migration既能处理向量数据,也能处理标量字段,是满足不同数据迁移需求的多功能选择。
架构
Milvus-migration的架构设计具有战略意义,可促进高效的数据流、解析和写入过程,实现跨各种数据源的强大迁移能力。
Milvus-迁移架构
在上图中
- 数据源 Milvus-migration支持多种数据源,包括通过scroll API的Elasticsearch、本地或云存储数据文件以及Milvus 1.x数据库。以精简的方式访问和读取这些数据,以启动迁移过程。
- 流水线:
- 解析过程:来自数据源的数据将根据其格式进行解析。例如,对于来自 Elasticsearch 的数据源,会采用 Elasticsearch 格式解析器,而其他格式则使用各自的解析器。这一步对于将原始数据转换为可进一步处理的结构化格式至关重要。
- 转换过程:解析之后,数据要进行转换,根据目标 Milvus 2.x Schema 过滤字段、转换数据类型并调整表名。这可确保数据符合 Milvus 的预期结构和类型。
- 数据写入和加载
- 写入数据:将处理后的数据写入中间 JSON 或 NumPy 文件,准备加载到 Milvus 2.x 中。
- 加载数据:使用BulkInsert操作将数据最终加载到 Milvus 2.x 中,该操作可高效地将大量数据写入 Milvus 存储系统(基于云或文件存储)。
未来计划
开发团队致力于通过以下功能增强Milvus-migration的功能:
- 支持更多数据源:计划将支持扩展到更多数据库和文件系统,如 Pinecone、Chroma、Qdrant。如果你需要特定数据源的支持,请通过GitHub 问题链接提交请求。
- 命令简化:努力简化命令流程,使其更易于执行。
- SPI 解析器/转换器:该架构有望包含用于解析和转换的服务提供商接口 (SPI) 工具。这些工具允许用户在迁移过程中插入自定义实现,以处理特定的数据格式或转换规则。
- 检查点恢复:使迁移能够从上一个检查点恢复,以提高迁移中断时的可靠性和效率。将创建保存点以确保数据完整性,保存点存储在 SQLite 或 MySQL 等数据库中,以跟踪迁移过程的进度。