如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

2023-10-27 18:12

本文主要是介绍如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着以 Milvus 为代表的向量数据库在 AI 产业界越来越受欢迎,传统数据库和检索系统也开始在快速集成专门的向量检索插件方面展开角逐。

例如 Weaviate 推出开源向量数据库,凭借其易用、开发者友好、上手快速、API 文档齐全等特点脱颖而出。同样,Zilliz Cloud/Milvus 向量数据库因为能够高性能、低时延处理海量数据而备受瞩目。

二者都是专为向量数据打造,但适用于不同场景。Weaviate 更适合需要快速集成向量数据库的开发人员。如果应用系统更注重可扩展性、高性能、低时延,Zilliz Cloud/Milvus 是更合适的选择,因为其架构更灵活,性能更佳,更稳定,适用于对性能指标有着严格要求的场景。

本文将撇开这些表面差异,通过比较二者的性能基准测试结果和 Weaviate Cloud 的相关特性,深入探究 Weaviate Cloud 和 Zilliz Cloud 的差异。

01.Weaviate Cloud v.s. Zilliz Cloud:性能大比拼

最近,随着检索增强生成系统(RAG)的持续火爆,开发者对于“如何选择一个向量数据库”的疑惑也越来越多。过去几周,我们从性能和特性能力两个方面对 Weaviate Cloud 和 Zilliz Cloud 进行了详细的对比。在对比过程中,我们使用了开源的性能基准测试套件 VectorDBBench,围绕诸如每秒查询次数(QPS)、每美元查询次数(QP$)以及时延等关键指标展开测试。

测试用数据集

以下为测试中使用的两类数据集:

  • 数据集 1 包含 1,000,000 条 768 维的向量数据。

  • 数据集 2 包含 500,000 条1,536 维的向量数据。

测试对象

以下为测试时使用的实例。这些实例在硬件配置上基本相近:

  • Zilliz Cloud (1cu-perf):Zilliz Cloud 1 CU 性能型实例

  • Zilliz Cloud (1cu-cap):Zilliz Cloud 1 CU 容量型实例

  • Zilliz Cloud (2cu-cap):Zilliz Cloud 2 CU 容量型实例

  • Weaviate Cloud (Standard)

  • Weaviate Cloud (Business Critical)

注意:关于 Zilliz Cloud 计算单元(CU)的更多信息,可以参考适配各类大模型应用!手把手教你选择 Zilliz Cloud 实例类型。

每秒查询次数(QPS)

测试结果显示,在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 QPS 分别是 Weaviate Cloud (Business Critical) 实例的 9 倍、8 倍和 5 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 QPS 分别是 Weaviate Cloud (standard) 实例的 8 倍、6 倍和 3 倍。

alt

下图展示了各实例在不同用例下的性能评分(百分制)情况,分数越高,性能越强。具体的可参考https://github.com/zilliztech/VectorDBBench/tree/main#leaderboard。

alt

由此可以看出,Zilliz Cloud 在该指标上全面碾压 Weaviate Cloud。

每美元查询次数(QP$)

在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 QP$ 分别是 Weaviate Cloud (Standard) 实例的 520 倍、332 倍和 292 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 QP$ 分别是 Weaviate Cloud (Standard) 实例的 403 倍、258 倍和 194 倍。

alt

下图展示了各实例在不同用例下的性能评分(百分制)情况,分数越高,性能越强。

alt

由此可以看出,Zilliz Cloud 在该指标上全面碾压 Weaviate Cloud。

时延

在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 P99 时延分别是 Weaviate Cloud (Business Critical) 实例的 26 倍、20 倍和 19 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 三款实例的 P99 时延分别是 Weaviate Cloud (Business Critical) 实例的 32 倍、18 倍和 7 倍。

alt

下图展示了各实例在不同用例https://zilliz.com/vector-database-benchmark-tool#comparison-section下的性能评分(>1 分制)情况,分数越接近 1,性能越强。

alt

由此可以看出,Zilliz Cloud 在该指标上全面碾压 Weaviate Cloud。

上述性能基准测试结果由开源的 VectorDBBench https://github.com/zilliztech/VectorDBBench工具提供。在工具的 GitHub 主页上,还可以看到向量数据库的排行榜。VectorDBBench 为主流的向量数据库和相关云服务提供了公正的性能测试基准。该工具有着良好的易用性,帮助开发者轻而易举地在众多的向量数据库云服务和开源向量数据库中找到最佳选择。

02.Weaviate Cloud 特性对比

随着向量数据库可以存储的数据量呈几何级数的增长,性能也成为了向量数据库的重大挑战。为了保障数据检索性能,数据库的跨节点横向扩展能力至关重要。另外,数据插入速率、检索速率以及底层硬件的不同可能会衍生出不同的应用需求,这也让全局参数调节能力成为向量数据库的必备能力之一。

向量数据库为何而生

向量数据库是用来存储通过机器学习模型生成的非结构化数据的向量表征,为其创建索引,并在其中进行检索的一套全托管解决方案。它应该提供如下特性:

  • 可扩展性和参数调节能力

  • 多租户和数据隔离

  • 完整的 API 套件

  • 直观的用户界面和控制台

可扩展性

alt

功能

alt

专门打造

alt

关于更多详情,参见比较页面https://zilliz.com.cn/comparison/milvus-vs-weaviate。

本文由 mdnice 多平台发布

这篇关于如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/287460

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结