跳到主要内容

比较Milvus和其他替代品

当探究变化的向量数据库选项时,这种综合性的引导将会有助你理解Milvus 独有的特点,它能让你选择一个最能满足你的需求的数据库。特别的,Milvus 是一个重要的开放的数据库,[Zilliz Cloud]https://zilliz.com/cloud)全面管理的Milvus 服务。为了客观地评价Milvus和它的竞争对手,考虑使用benchmark tools去分析表现指标。

Milvus 的突出特点

  • 功能: Milvus超越了基本的向量相似度搜索,它支持像 sparse vector, bulk-vector, filtered search, 和 hybrid search 能力等.

  • 灵活性: Milvus支持各种部署模式和多个sdk,所有这些都在一个强大的集成生态系统中。

  • 表现:Milvus保证了高吞吐量和低延迟的实时处理,由优化的索引算法如HNSWDiskANN, 和先进的GPU acceleration.

  • 可扩展性: 它定制的分布式架构可以毫不费力地扩展,从小型数据集到超过100亿个向量的集合都可以容纳。

总体比较

为了比较Milvus和Pinecone这两种矢量数据库解决方案,下表的结构突出了各种特征之间的差异。

特点PineconeMilvus备注
部署模式SaaS-onlyMilvus Lite, On-prem Standalone & Cluster, Zilliz Cloud Saas & BYOCMilvus 提供了更加灵活的部署模式
支持的 软件开发工具包Python, JavaScript/TypeScriptPython, Java, NodeJS, Go, Restful API, C#, RustMilvus 支持一系列更加广泛的编程语言
开源状态非开源开源Milvus 是一个受欢迎的的开源数据库
可扩展性仅可放大/缩小横向扩展/收缩以及纵向扩展/收缩Milvus 具有分布式架构,以实现更高的扩展性。
可用性可用区域内的基于节点的架构可用区域故障转移和跨区域高可用性功能Milvus CDC (变更数据捕获) 支持主备模式,以提高系统的可用性。
每百万次查询的成本(以美元计)起价为:中型数据集 0.178 美元,大型数据集 1.222 美元。Zilliz Cloud 起价为:中型数据集 0.148 美元,大型数据集 0.635 美元;还提供免费版本。参考 Cost Ranking report.
图形处理器加速不支持支持 NVIDIA 图形处理器图形处理器加速显著提升了性能,其提升幅度往往可达数倍之多。

术语比较

虽然两者都作为矢量数据库提供类似的功能,但Milvus和Pinecone之间的特定领域术语显示出轻微的差异。详细的术语比较如下。

PineconeMilvus备注
索引Collection在 Pinecone 中,索引充当了存储和管理相同大小向量的组织单元,并且该索引与被称为“节点”的硬件紧密集成。相比之下,Milvus 集合具有类似的功能,但能够在一个实例中处理多个集合。
收集Backup在 Pinecone 中,一个集合本质上就是索引的一个静态快照,主要用于备份用途,且无法进行查询操作。而在 Milvus 中,创建备份的类似功能则更加清晰明了,其名称也更为简洁直接。
命名空间Partition key命名空间能够将索引中的向量划分成不同的子集。Milvus 提供了诸如分区或分区键等多种方法,以确保在一个集合内实现高效的数据隔离。
元数据Scalar fieldPinecone 的元数据处理依赖于键值对,而 Milvus 则支持复杂的标量字段,包括标准数据类型和动态的 JSON 字段。
查询Search用于为给定向量查找最邻近元素的方法名称(可能还会在此基础上附加一些额外的过滤条件)。
不可用性IteratorPinecone 数据库没有提供遍历索引中所有向量的功能。而 Milvus 引入了搜索迭代器和查询迭代器方法,从而提升了在不同数据集上的数据检索能力。

能力比较

能力PineconeMilvus
部署模式SaaS-onlyMilvus 轻量版, 本地独立部署及集群模式 & Cluster, Zilliz Cloud 订阅版及自带计算环境模式
嵌入函数不可用pymilvus[model] 支持
数据类型字符串, 整数, 布尔, 列表字符串、变长字符、数字(整数、浮点数、双精度数)、布尔值、数组、JSON、浮点向量、二进制向量、半精度浮点数、单精度浮点数、稀疏向量
度量和指标类型Cos, Dot, Euclidean
P-family, S-family
Cosine, IP (Dot), L2 (Euclidean), Hamming, Jaccard
FLAT, IVF_FLAT, IVF_SQ8, IVF_PQ, HNSW, SCANN, GPU Indexes
模式设计灵活模式灵活模式,严格模式
多个向量场N/A多向量和混合搜索
工具数据集、文本工具、Spark 连接器Attu、观鸟者、备用、命令行界面、数据中心监控、Spark 和 Kafka 连接器

关键特点

  • 部署模式: Milvus 提供了多种部署选项,包括本地部署、Docker、企业内部的 Kubernetes、云服务即服务模式(Cloud SaaS)以及专为企业设计的“自带云”(BYOC)方案,而派恩科则是仅限于云服务部署。

  • 嵌入函数: Milvus支持额外的嵌入库,可以直接使用嵌入模型将源数据转换为向量。

  • 数据类型: Milvus支持比Pinecone更广泛的数据类型,包括数组和JSON。Pinecone只支持以字符串、数字、布尔值或字符串列表作为值的平面元数据结构,而Milvus可以在JSON字段中处理任何JSON对象,包括嵌套结构。Pinecone将每个向量的元数据大小限制为40KB。

  • 度量和索引类型: Milvus支持广泛的度量和索引类型选择,以适应各种用例,而Pinecone的选择更有限。虽然vector的索引在Milvus中是强制性的,但AUTO_INDEX选项可以简化配置过程。

  • 模式设计: Milvus为模式设计提供了灵活的“create_collection”模式,包括类似于Pinecone的无模式体验的动态模式的快速设置,以及类似于关系数据库管理系统(RDBMS)的预定义模式字段和索引的定制设置。

  • 多向量字段: Milvus支持在单个集合中存储多个向量字段,这些集合可以是稀疏的,也可以是密集的,并且维度可能不同。Pinecone不提供类似的功能。

  • 工具: Milvus为数据库管理和利用提供了更广泛的工具选择,如Attu, Birdwatcher, Backup, CLI, CDC以及Spark和Kafka连接器。

What's next