cxl
Published on 2025-06-25 / 24 Visits
0
0

向量数据库之Milvus

Milvus 是什么?​

在人工智能与大数据技术飞速发展的今天,处理海量非结构化数据(如图片、音频、文本等)成为关键挑战。Milvus 作为一款开源的向量数据库,专注于大规模向量数据的相似性搜索,为解决这一难题提供了高效方案。它通过嵌入技术将非结构化数据转化为向量,实现存储、索引和相似性分析,例如在图片检索系统中,利用向量相似性快速匹配相似图片。​

Milvus 具备四大核心优势:​

  1. 高性能:先进的索引算法加持,即便面对数十亿级向量数据,也能实现毫秒级检索响应。​

  1. 高可扩展性:分布式架构设计,支持数据从百万级到数十亿级的无缝扩展,性能稳定可靠。​

  1. 易用性:提供 Python、Java、Node.js 等多语言 SDK,开发者可轻松集成到各类应用场景。​

  1. 云原生:灵活适配本地、公有云、私有云等多种部署环境,满足不同规模企业需求。​

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

standalone_embed.sh 下载

方式二: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 或客户端工具连接数据库,开启向量数据处理之旅。


Comment