Milvus 是什么?
在人工智能与大数据技术飞速发展的今天,处理海量非结构化数据(如图片、音频、文本等)成为关键挑战。Milvus 作为一款开源的向量数据库,专注于大规模向量数据的相似性搜索,为解决这一难题提供了高效方案。它通过嵌入技术将非结构化数据转化为向量,实现存储、索引和相似性分析,例如在图片检索系统中,利用向量相似性快速匹配相似图片。
Milvus 具备四大核心优势:
高性能:先进的索引算法加持,即便面对数十亿级向量数据,也能实现毫秒级检索响应。
高可扩展性:分布式架构设计,支持数据从百万级到数十亿级的无缝扩展,性能稳定可靠。
易用性:提供 Python、Java、Node.js 等多语言 SDK,开发者可轻松集成到各类应用场景。
云原生:灵活适配本地、公有云、私有云等多种部署环境,满足不同规模企业需求。
Milvus 的部署
Milvus 提供三种部署模式,适配不同开发与生产场景:
Milvus Lite
轻量级 Python 库,特别适合 Jupyter Notebook 快速原型开发,或在资源受限的智能设备上运行。通过pip install pymilvus安装后,使用milvus_client("./demo.db")即可快速创建本地向量数据库,开发完成后可无缝迁移至其他部署模式。
Milvus Lite 目前支持以下环境:
Ubuntu >= 20.04(x86_64 和 arm64)
MacOS >= 11.0( M1/M2 和 x86_64)
请注意,Milvus Lite 仅适用于小规模向量搜索使用案例。对于大规模用例,我们建议使用下面的Milvus Standalone或Milvus Distributed。您也可以考虑在Zilliz Cloud 上使用完全托管的 Milvus。
接下来我使用 conda 新建一个python环境milvus,然后在该环境下进行安装:
conda create -n milvus python=3.12 -y
conda activate milvus
# 官方建议使用pymilvus,由于milvus-lite已包含在pymilvus 2.4.2或更高版本中,因此可以pip install 与 -U 强制更新到最新版本,milvus-lite 会自动安装。
pip install -U pymilvus
# 进入python环境,成功打印连接信息表示安装成功
python
from pymilvus import MilvusClient
client = MilvusClient("milvus_cxl.db")
print(client)
Milvus Standalone
采用单 Docker 镜像或 Docker Compose 部署,将所有核心组件集成一体,适合小规模生产环境或不想使用 Kubernetes 的场景。其主从复制机制保障了服务的高可用性,只需一台内存充足的服务器即可轻松搭建。
环境准备:确保系统已安装 Docker 和 Docker Compose。若未安装,可参照此篇文章完成安装。
方式一:Dokcer部署
# 下载安装运行脚本,主要还是运行 milvusdb/milvus:v2.5.13 这个容器,可能其它版本
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
# 运行,除了start还有其它可选项:restart|start|stop|upgrade|delete
bash standalone_embed.sh start
方式二:Docker Compose部署
下载配置文件:在终端执行以下命令,下载 Milvus Standalone 的 Docker Compose 配置文件
wget https://github.com/milvus-io/milvus/releases/download/v2.5.13/milvus-standalone-docker-compose.yml -O docker-compose.yml
docker compose up -d
milvus-standalone-docker-compose.yml 下载
Milvus Distributed
基于 Kubernetes 集群的分布式部署方案,专为大规模生产环境设计。通过将数据摄入与搜索查询分离处理,关键组件冗余配置,支持资源灵活调配,是企业级向量搜索系统的首选方案。
环境准备:确保系统已安装K8S,具体可见官方文档
启动完成后,即可通过Milvus自带的web页面 http://localhost:9091/webui/ 查看相关信息,也可通过 SDK 或客户端工具连接数据库,开启向量数据处理之旅。
该自带的web页面提供了以下查询或统计功能:
主页
你可以找到关于当前运行的 Milvus 实例、其组件、连接的客户端和依赖关系的信息。
Collections
可查看 Milvus 当前的数据库和 Collections 列表,并检查其详细信息。
查询
您可以查看收集到的查询节点和查询协调器在网段、通道、副本和资源组方面的统计数据。
数据
您可以查看收集到的数据节点在网段和通道方面的统计数据。
任务
可以查看 Milvus 中运行的任务列表,包括 Querycoord 调度器任务、压缩任务、索引构建任务、导入任务和数据同步任务。
慢速请求
可以查看 Milvus 中的慢请求列表,包括请求类型、请求持续时间和请求参数。
配置
可以查看 Milvus 配置及其值的列表。
工具
您可以从 Web UI 访问两个内置工具,即 pprof 和 Milvus 数据可视化工具。