Milvus向量数据库部署

一、什么是Milvus

Milvus 是一款开源的向量数据库,旨在帮助开发者轻松管理和检索大规模向量数据。它通过高效的索引技术,支持快速的相似度搜索,使得从海量数据中查找最接近的匹配变得简单而快捷。无论是构建推荐系统、进行图像识别还是分析自然语言,Milvus都能提供强大的支持。

这里我们将在macos环境下基于Docker安装Milvus的单机版本。

二、Milvus安装

官方下载文档

这里我们跳过Docker的安装,直接开始Milvus的安装
在这里插入图片描述

官方为我们提供很多中安装方式,这里我选择Docker Compose。下载的docker-compose.yml文件内容为:

version: '3.5'
services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.18
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.5.5
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

networks:
  default:
    name: milvus

这里出于演示,我取消了挂载。最终运行

docker-compose up -d

运行成功后一共三个容器:milvus-etcd、milvus-minio、milvus-standalone

三、组件分析

1、etcd

etcd 是一个分布式的键值存储系统,主要用于配置共享和服务发现。在 Milvus 环境中,它主要用于存储元数据(如集合信息、索引配置等)。这使得 Milvus 能够有效地管理其内部状态,并支持集群模式下的协调工作。可以简单的理解为是字典的目录,可以可靠的访问机制。

2、minio

MinIO 是一款高性能的分布式对象存储系统,在 Milvus 架构中,MinIO 作为持久化存储层,用于保存原始向量数据、索引文件以及其他需要长期存储的信息。通俗来说就是数据持久化。并且本身就有可视化的管理页面,访问9001端口即可访问,账户密码都是minioadmin。登录后可以查看并管理存储的数据信息。

在这里插入图片描述

3、milvus

这就是实际执行向量相似度搜索的核心服务。Milvus 实例集成了所有必要的组件,允许用户在其上构建基于向量的智能应用。通过该实例,你可以进行向量数据插入、查询以及索引创建等多种操作。后面我们会通过python去连接这个向量数据库。

四、可视化

milvus不同于MySQL、Redis等可通过像Navicat等客户端连接进行可视化的操作。这里我们使用Attu对milvus进行可视化管理。具体介绍和安装可以看官网说明。

Attu官方

在这里插入图片描述

version: '3.5'

services:
  attu:
    container_name: milvus-attu
    image: zilliz/attu:v2.4
    environment:
      MILVUS_URL: milvus:19530
    ports:
      - "7000:3000"
    depends_on:
      - "milvus"
    networks:
      - default
networks:
  default:
    name: milvus_network

使用Docker Compose运行成功后访问localhost:7000

docker-compose up -d

在这里插入图片描述

这里没有设置密码,可以直接点击连接进入,实际场景下是需要设置密码的

在这里插入图片描述

这样我们就可以可视化的管理我们的向量数据库了。

五、Python操作

首先我们在attu中创建一个数据库来用于测试。

在这里插入图片描述

from pymilvus import MilvusClient

client = MilvusClient(url="http://localhost:19530",
                      db_name="programming")

print(f"角色列表为:{client.list_roles()}")
print(f"用户列表为:{client.list_users()}")
client.create_user(user_name="test", password="123456")
client.create_role(role_name="test_role")
print(f"角色列表为:{client.list_roles()}")
print(f"用户列表为:{client.list_users()}")

可以看到正常连接到了向量数据库并且用户和角色都已经创建成功。
在这里插入图片描述
在这里插入图片描述

<think>好的,用户想查找关于Milvus向量数据库部署教程。首先我需要回想一下Milvus的相关知识,确保信息准确。根据引用[1],Milvus是专为向量数据设计的数据库,具备高性能、高可用和易扩展的特点,常用于处理大规模嵌入向量。部署教程可能需要涵盖不同环境下的安装步骤,比如Docker、Kubernetes,或者源码编译。 用户的需求明确是部署教程,所以需要分步骤说明。首先应该提到官方文档的重要性,因为这是最权威的来源。然后可能需要介绍几种常见的部署方式,比如使用Docker Compose快速部署,这是比较常见且简便的方法。接着可以提到生产环境可能需要更复杂的配置,比如分布式集群部署或者Kubernetes的Helm chart部署,这些能确保高可用性和扩展性。 另外,用户可能对系统要求不太清楚,需要列出硬件和软件的先决条件,比如CPU、内存、存储,以及依赖的软件如Docker、Python SDK等。可能还需要注意事项,比如端口开放、配置文件调整等常见问题。 需要确保步骤清晰,避免使用专业术语过多,但又要足够详细。同时,考虑到用户可能遇到的问题,可以提前给出一些常见问题的解决方法,比如如何检查服务是否正常启动,或者如何验证安装是否成功。 最后,生成相关问题时要围绕部署可能涉及的方面,比如安装方式选择、系统要求、验证步骤以及常见问题处理。这样用户如果有进一步的问题,可以自行参考这些问题或者继续提问。</think>关于Milvus向量数据库部署教程,以下是分步骤说明: ### 一、部署准备 1. **系统要求** - 操作系统:Linux(推荐Ubuntu 18.04+或CentOS 7+) - 硬件配置:至少4核CPU、8GB内存、50GB存储(具体需求根据数据规模调整) - 依赖组件:Docker、Docker Compose(适用于单机部署)[^1] 2. **环境检查** 运行以下命令确认环境就绪: ```bash docker --version docker-compose --version ``` ### 二、单机部署(快速入门) 1. **下载配置文件** 从GitHub获取官方`docker-compose.yml`: ```bash wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml ``` 2. **启动服务** 执行命令启动Milvus及其依赖组件(如etcd、MinIO): ```bash docker-compose up -d ``` 3. **验证部署** 检查容器状态: ```bash docker ps | grep milvus ``` 输出应包含`milvus-standalone`、`etcd`和`minio`的运行实例。 ### 三、生产环境部署 1. **分布式集群模式** - 修改`docker-compose.yml`,扩展节点并配置网络 - 启用负载均衡与持久化存储(如NFS或云存储)[^1] 2. **Kubernetes部署** 使用Helm Chart快速部署: ```bash helm repo add milvus https://milvus-io.github.io/milvus-helm/ helm install my-milvus milvus/milvus ``` ### 四、配置调优 1. **关键参数** 在`milvus.yaml`中调整: ```yaml cache: cache_size: 4GB # 根据内存调整 ``` 2. **端口配置** 默认端口`19530`(SDK通信)和`9091`(监控)需确保开放。 ### 五、验证功能 通过Python SDK测试连接: ```python from pymilvus import connections, Collection connections.connect("default", host="localhost", port="19530") print(connections.list_connections()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值