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. 容量测试用例
- 大维度测试:插入大维度向量(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:创建客户端文件
- 在
vectordb_bench/backend/clients目录下创建新文件夹 - 在新文件夹中创建两个文件:
new_client.py和config.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 作为一个专业的向量数据库性能基准测试工具,具有以下特点:
- 易用性:提供直观的可视化界面,降低使用门槛
- 全面性:支持多种测试场景和主流向量数据库
- 可扩展性:支持自定义数据集和新的数据库客户端
- 实用性:提供成本效益分析和真实生产环境模拟
通过使用 VectorDBBench,用户可以:
- 快速对比不同向量数据库的性能表现
- 根据实际需求定制测试场景
- 获得全面的性能评估报告
- 为数据库选型提供数据支持
无论是数据库开发者、系统架构师还是数据科学家,都能通过 VectorDBBench 获得有价值的性能洞察。
【免费下载链接】VectorDBBench 项目地址: https://gitcode.com/gh_mirrors/ve/VectorDBBench
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考









