milvus-logo
LFAI
首页
  • 开始
    • 安装 Milvus

Milvus 部署选项概述

Milvus 是一个高性能、可扩展的向量数据库。它支持各种规模的用例,从在 Jupyter 笔记本中本地运行的演示到处理数百亿向量的大规模 Kubernetes 集群。目前,Milvus 有三种部署选项:Milvus Lite、Milvus Standalone 和 Milvus Distributed。

Milvus Lite

Milvus Lite是一个 Python 库,可导入到您的应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter 笔记本或资源有限的智能设备上运行快速原型。Milvus Lite 支持与其他 Milvus 部署相同的 API。与 Milvus Lite 交互的客户端代码也可以与其他部署模式下的 Milvus 实例协同工作。

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

Milvus Standalone

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

Milvus Distributed

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

为您的使用案例选择正确的部署方式

部署模式的选择通常取决于应用程序的开发阶段:

  • 用于快速原型开发

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

  • 小规模生产部署

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

  • 大规模生产部署

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

  • 边缘设备上的本地搜索

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

Milvus 部署模式的选择取决于项目的阶段和规模。Milvus 提供灵活而强大的解决方案,可满足从快速原型开发到大规模企业部署的各种需求。

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

Select deployment option for your use case 选择适合您使用情况的部署选项

功能比较

功能Milvus LiteMilvus 单机版分布式
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 操作✔️✔️✔️
高级数据管理不适用访问控制
分区
Partition Key
访问控制
分区
Partition Key
物理资源分组
一致性级别
有界停滞
会话
最终

有界稳定性
会话
最终

翻译自DeepLogo

反馈

此页对您是否有帮助?