返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

milvus 三种部署方式说明

[复制链接]
链载Ai 显示全部楼层 发表于 2 小时前 |阅读模式 打印 上一主题 下一主题

Milvus 向量数据库有三种部署方式:Milvus Lite、Milvus Standalone 和 Milvus Distributed,用于支持不同的使用场景和数据规模。不同部署模式均提供相同的客户端应用程序接口。

1. 简要说明

Milvus Lite

Milvus Lite是milvus的 Python 库,可导入现有的应用程序中进行集成。作为 Milvus 的轻量级版本,非常适合在 Jupyter 笔记本或资源有限的智能设备上运行测试和开发。

要将 Milvus Lite 集成到应用程序中,请运行pip install pymilvus进行安装,并使用MilvusClient("./demo.db")语句实例化一个带有本地文件的向量数据库,以持久化所有数据。

Milvus 单机版

Milvus Standalone是单机服务器部署。Milvus Standalone 的所有组件都打包到一个Docker 镜像中,部署起来非常方便。如果你有生产工作负载,但又不想使用 Kubernetes,那么在内存充足的单机上运行 Milvus Standalone 是一个不错的选择。此外,Milvus Standalone 通过主从复制支持高可用性。

分布式 Milvus

Milvus Distributed可部署在Kubernetes集群上。这种部署采用云原生架构,摄取负载和搜索查询分别由独立节点处理,允许关键组件冗余。它具有最高的可扩展性和可用性,并能灵活定制每个组件中分配的资源。Milvus Distributed是在生产中运行大规模向量搜索系统的企业用户的首选。

2. 如何选择适合你的部署方式

Milvus 部署模式的选择可以从项目的阶段和规模两方面进行选型。

项目阶段

根据应用程序的开发阶段进行选择:

1. 用于快速原型开发

如果时快速构建原型或用于学习,如检索增强生成(RAG)演示、人工智能聊天机器人、多模态搜索,Milvus Lite 本身或 Milvus Lite 与 Milvus Standalone 的组合都很适合。可以在笔记本中使用 Milvus Lite 进行快速原型开发,并探索各种方法,如 RAG 中的不同分块策略。或者您可能希望在小规模生产中部署用 Milvus Lite 构建的应用程序,为真正的用户提供服务,或在更大的数据集(例如超过几百万个向量)上验证想法。Milvus Standalone 是合适的选择。Milvus Lite 的应用逻辑仍可共享,因为所有 Milvus 部署都有相同的客户端应用程序接口。Milvus Lite 中存储的数据也可以通过命令行工具移植到 Milvus Standalone 中。

2. 小规模生产部署

对于早期生产阶段,当项目仍在寻求产品与市场的契合,敏捷性比可扩展性更重要时,Milvus Standalone 是最佳选择。只要有足够的机器资源,它仍然可以扩展到 1 亿向量,同时对 DevOps 的要求也比维护 K8s 集群低得多。

3. 大规模生产部署

当你的业务快速增长,数据规模超过单台服务器的容量时,是时候考虑 Milvus Distributed 了。你可以继续使用Milvus Standalone作为开发或暂存环境,并操作运行Milvus Distributed的K8s集群。这可以支持你处理数百亿个向量,还能根据你的特定工作负载(如高读取、低写入或高写入、低读取的情况)灵活调整节点大小。

4. 边缘设备上的本地搜索

对于在边缘设备上通过私有或敏感信息进行搜索,可以在设备上部署 Milvus Lite,而无需依赖基于云的服务来进行文本或图像搜索。这适用于专有文档搜索或设备上对象检测等情况。

项目数据集规模

根据你的项目数据集规模,选择适合你的部署方式。

  • Milvus Lite建议用于较小的数据集,多达几百万个向量。
  • Milvus Standalone适用于中型数据集,可扩展至 1 亿向量。
  • Milvus Distributed 专为大规模部署而设计,能够处理从一亿到数百亿向量的数据集。
select-deployment-option

3. 功能比较

对于数据类型和搜索功能,三种部署模式是一致的。单机版和分布式部署提供了更多的客户端支持、更多的数据管理功能等。

功能
Milvus Lite
Milvus 单机版
分布式 Milvus
SDK / 客户端软件
Python
gRPC
Python
Go
Java
Node.js
C#
RESTful
Python
Java
Go
Node.js
C#
RESTful
数据类型
密集向量
稀疏向量
二进制向量
布尔值
整数
浮点
VarChar
数组 JSON
密集向量
稀疏向量
二进制向量
布尔值
整数
浮点
VarChar
数组 JSON
密集向量
稀疏向量
二进制向量
布尔值
整数
浮点
VarChar
数组 JSON
搜索功能
向量搜索(ANN 搜索)
元数据过滤
范围搜索
标量查询
通过主键获取实体
混合搜索
向量搜索(ANN 搜索)
元数据过滤
范围搜索
标量查询
通过主键获取实体
混合搜索
向量搜索(ANN 搜索)
元数据过滤
范围搜索
标量查询
通过主键获取实体
混合搜索
CRUD 操作符
✔️
✔️
✔️
高级数据管理
不适用
访问控制
分区
分区密钥
访问控制
分区
分区密钥
物理资源分组
一致性级别

有界稳定性
会话
最终(Eventual)
强 强
有界稳定性
会话
最终(Eventual)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ