VectorDBBench 向量数据库性能基准测试工具使用指南

VectorDBBench 向量数据库性能基准测试工具使用指南

【免费下载链接】VectorDBBench 【免费下载链接】VectorDBBench 项目地址: https://gitcode.com/gh_mirrors/ve/VectorDBBench

VectorDBBench 是一个专门用于测试向量数据库性能的开源基准平台。它能够帮助用户轻松对比不同向量数据库系统的表现,即使是没有专业技术背景的用户也能快速上手测试。

项目架构概览

VectorDBBench 采用模块化设计,主要包含以下几个核心部分:

  • 前端界面:基于 Streamlit 构建的直观可视化界面
  • 后端服务:处理与各数据库交互的核心逻辑
  • 客户端实现:支持多种主流向量数据库的适配器
  • 测试用例:涵盖容量、搜索性能、过滤搜索、流式处理等多种场景

环境准备与安装

系统要求

  • Python >= 3.11
  • 支持的操作系统:Linux、macOS、Windows

安装方式

基础安装(仅包含 PyMilvus)

pip install vectordb-bench

完整安装(包含所有数据库客户端)

pip install 'vectordb-bench[all]'

选择性安装特定数据库客户端

# 安装 Pinecone 客户端
pip install 'vectordb-bench[pinecone]'

# 安装 Qdrant 客户端
pip install 'vectordb-bench[qdrant]'

# 安装 Elasticsearch 客户端
pip install 'vectordb-bench[elastic]'

支持的所有数据库客户端安装命令:

数据库客户端安装命令
pymilvus, zilliz_cloud (默认)pip install vectordb-bench
qdrant`pip install 'vectordb-bench[qdrant]'
pinecone`pip install 'vectordb-bench[pinecone]'
weaviate`pip install 'vectordb-bench[weaviate]'
elastic, aliyun_elasticsearch`pip install 'vectordb-bench[elastic]'
pgvector 系列`pip install 'vectordb-bench[pgvector]'
redis`pip install 'vectordb-bench[redis]'

快速启动

方法一:使用 init_bench 命令

init_bench

方法二:直接运行模块

python -m vectordb_bench

方法三:命令行接口

vectordbbench [OPTIONS] COMMAND [ARGS]...

可视化界面功能

VectorDBBench 提供了丰富的可视化界面,让用户可以直观地进行测试配置和结果分析。

主页功能概览

主页功能

主页展示了标准基准测试结果,包括:

  • QPS(每秒查询数)性能对比
  • 延迟指标分析
  • 成本效益评估

测试运行界面

选择数据库 选择测试用例 提交任务

测试运行流程:

  1. 选择要测试的数据库系统(支持多选)
  2. 选择测试用例(支持多选)
  3. 配置任务标签和参数
  4. 提交测试任务

测试用例类型

1. 容量测试用例

  • 大维度测试:插入大维度向量(GIST 100K 向量,960 维度)直至完全加载
  • 小维度测试:插入小维度向量(SIFT 500K 向量,128 维度)

2. 搜索性能测试用例

  • 超大数据集:使用海量数据集(LAION 100M 向量,768 维度)在不同并行级别下测试搜索性能

3. 过滤搜索性能测试用例

  • 整数过滤:使用基于整数的过滤表达式评估搜索性能
  • 标签过滤:使用基于标签的过滤表达式评估搜索性能

4. 流式处理测试用例

  • 负载下插入:在维持恒定插入工作负载的同时评估搜索性能

5. 自定义数据集测试

自定义数据集 自定义用例测试

命令行使用示例

基础命令帮助

vectordbbench --help

具体数据库测试示例

AWS OpenSearch 测试

vectordbbench awsopensearch --db-label awsopensearch \
--m 16 --ef-construction 256 \
--host search-vector-db-prod-h4f6m4of6x7yp2rz7gdmots7w4.us-west-2.es.amazonaws.com --port 443 \
--user vector --password '<password>' \
--case-type Performance1536D5M --number-of-indexing-clients 10  \
--skip-load --num-concurrency 75

OceanBase 测试

vectordbbench oceanbasehnsw --host xxx --port xxx --user root@mysql_tenant --database test \
--m 16 --ef-construction 200 --case-type Performance1536D50K \
--index-type HNSW --ef-search 100

配置管理

配置文件格式

VectorDBBench 支持 YAML 格式的配置文件,可以统一管理多个测试任务的参数。

示例配置文件:

pgvectorhnsw:
  db_label: pgConfigTest
  user_name: vectordbbench
  password: vectordbbench
  db_name: vectordbbench
  host: localhost
  m: 16
  ef_construction: 128
  ef_search: 128

批量配置测试

vectordbbench batchcli --batch-config-file <your-yaml-configuration-file>

性能指标与评分规则

评分机制

  1. 相对值评分:每个用例选择一个基准值,基于相对值对每个系统进行评分
  2. 失败处理:对于失败或超时的系统,给予比最差结果差两倍的分数
  3. 综合评分:采用所有用例得分的几何平均数作为综合评分

自定义开发

添加新的数据库客户端

步骤1:创建客户端文件

  1. vectordb_bench/backend/clients 目录下创建新文件夹
  2. 在新文件夹中创建两个文件:new_client.pyconfig.py

步骤2:实现抽象类

  • new_client.py 中定义继承自 VectorDB 抽象类的新客户端类
  • config.py 中实现配置类

步骤3:注册客户端clients/__init__.py 中导入并注册新客户端。

注意事项

超时设置

VectorDBBench 设置了多层次的超时机制:

  • 容量测试:整体超时 24 小时
  • 其他测试:数据加载超时和优化准备超时

测试环境要求

  • 测试客户端运行在 8 核心、32 GB 内存的主机上
  • 处理器:Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
  • 开源系统的测试服务器使用相同类型的处理器

总结

VectorDBBench 作为一个专业的向量数据库性能基准测试工具,具有以下特点:

  1. 易用性:提供直观的可视化界面,降低使用门槛
  2. 全面性:支持多种测试场景和主流向量数据库
  3. 可扩展性:支持自定义数据集和新的数据库客户端
  4. 实用性:提供成本效益分析和真实生产环境模拟

通过使用 VectorDBBench,用户可以:

  • 快速对比不同向量数据库的性能表现
  • 根据实际需求定制测试场景
  • 获得全面的性能评估报告
  • 为数据库选型提供数据支持

无论是数据库开发者、系统架构师还是数据科学家,都能通过 VectorDBBench 获得有价值的性能洞察。

【免费下载链接】VectorDBBench 【免费下载链接】VectorDBBench 项目地址: https://gitcode.com/gh_mirrors/ve/VectorDBBench

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值