跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

Milvus 向量数据库实战:Attu 可视化安装与 Python 整合指南

Milvus 向量数据库结合 Attu 可视化工具,提供跨平台图形化管理方案。演示 Docker 及本地部署流程,详解 PyMilvus SDK 连接、数据库管理及集合 Schema 构建。涵盖静态与动态字段模式下的数据插入与检索逻辑,帮助开发者快速搭建 RAG 系统底层存储架构。

清酒独酌发布于 2026/3/15更新于 2026/4/274 浏览
Milvus 向量数据库实战:Attu 可视化安装与 Python 整合指南

Milvus 向量数据库实战:Attu 可视化安装与 Python 整合指南

一、Attu 可视化客户端:Milvus 图形化管理利器

Attu 是 Zilliz 团队专为 Milvus 向量数据库打造的开源图形化管理工具,核心价值在于让 Milvus 操作脱离命令行,显著降低学习与运维成本。

核心特性

  • 跨平台兼容:支持 Windows、Linux、macOS 三大系统,同时提供 Docker 镜像部署方案
  • 开箱即用:无需编写代码,通过界面即可完成数据库、集合、索引的全生命周期管理
  • 深度集成:与 Milvus 生态无缝衔接,由官方团队维护,功能迭代与 Milvus 版本同步
  • 版本适配:需重点注意 Attu 与 Milvus 的版本匹配(当前实战环境:Milvus V2.5X,建议搭配 Attu 2.5.X 版本)
  • 开源地址:https://github.com/zilliztech/attu

核心功能模块

  • 数据库与集合管理:创建/删除数据库、定义集合字段(主键、标量、向量)、索引构建、数据导入导出
  • 分区与分片优化:支持按业务维度(时间/用户组)划分分区,分片数可配置(默认 2 个,支持水平扩展)
  • 向量检索能力:支持 L2(欧氏距离)、余弦相似度等度量方式,结合标量过滤实现混合查询
  • 资源与权限控制:加载/释放内存数据,多角色权限分配(全局权限、集合权限、用户权限)

Attu 连接界面示例

二、Attu 安装实战(跨平台适配)

Attu 支持多种安装方式,以下是不同系统的最简部署流程,核心目标是通过'IP+端口'连接 Milvus 服务。

1. 前置条件

  • 已部署 Milvus 服务(本地或远程,确保网络可通)
  • Milvus 服务端口默认 19530(TCP 端口)、9091(HTTP 端口)
  • 安装版本匹配:Milvus 2.5X → Attu 2.5.X(避免接口不兼容)

2. Windows 系统安装

  1. 访问 GitHub Releases 页面,下载 Windows 对应的 exe 安装包(如 attu-windows-x64.exe)
  2. 双击安装包,按向导完成安装(默认路径即可,无需额外配置)
  3. 启动 Attu,在连接页面输入 Milvus 服务 IP + 端口 19530,点击'Connect'即可登录

Windows 安装包下载

3. macOS 系统安装

  1. 下载 macOS 对应的 dmg 安装包(attu-macos-x64.dmg)
  2. 拖拽安装包到应用程序文件夹,完成安装
  3. 启动 Attu,输入 Milvus 服务 IP 和 19530 端口,验证连接(若提示权限不足,右键选择'打开'即可)

4. Linux 系统安装(Debian/Ubuntu)

  1. 下载 deb 安装包:wget https://github.com/zilliztech/attu/releases/download/v2.5.3/attu_2.5.3_amd64.deb
  2. 执行安装命令:sudo dpkg -i attu_2.5.3_amd64.deb
  3. 启动 Attu:在终端输入 attu,或通过应用列表启动,输入连接信息即可

5. Docker 部署(跨平台通用方案)

  1. 拉取 Attu 镜像:docker pull zilliz/attu:v2.5.3
  2. 启动容器(映射本地 8080 端口,连接 Milvus 服务):
docker run -p 8080:3000 -e MILVUS_URL=xxx.xxx.xxx.xxx:19530 zilliz/attu:v2.5.3 
  1. 访问界面:打开浏览器输入 http://localhost:8080,输入 Milvus 连接信息登录

三、Python 整合 Milvus:SDK 安装与验证

Milvus 提供多语言 SDK(Python/Node.js/GO/Java),其中 Python SDK(PyMilvus)是最常用的开发工具。

1. 安装 PyMilvus

核心要求:PyMilvus 版本需与 Milvus 服务器版本匹配(当前环境:Milvus 2.5X → PyMilvus 2.5.5)

pip install pymilvus==2.5.5 

2. 验证安装

执行以下命令,无报错则说明安装成功:

python -c "from pymilvus import Collection"

3. PyMilvus 核心接口分类

  • DDL/DCL:创建/删除集合、分区,检查集合/分区是否存在(createCollection、dropCollection 等)
  • DML/Produce:数据插入、删除、更新操作
  • DQL:向量搜索、标量查询、混合查询操作

四、Python 操作 Milvus 核心流程

Python 操作 Milvus 的核心链路:连接服务 → 数据库操作 → 集合操作 → 数据操作 → 检索查询。

1. 连接 Milvus 服务

支持两种连接方式(推荐第二种 MilvusClient,语法更简洁):

# 方式 1:使用 connections.connect(传统方式)
from pymilvus import connections, db

# 连接远程 Milvus 服务(替换为你的服务 IP)
conn = connections.connect(host="192.168.229.128", port=19530)

# 方式 2:使用 MilvusClient(推荐,Milvus 2.3+ 支持)
from pymilvus import MilvusClient
client = MilvusClient("http://192.168.229.128:19530")

2. 数据库操作(创建/使用/删除)

from pymilvus import connections, db

# 连接服务
connections.connect(host="192.168.229.128", port=19530)

# 1. 创建数据库(名称自定义)
db.create_database("my_rag_database")

# 2. 切换使用目标数据库
db.using_database("my_rag_database")

# 3. 列出所有数据库
all_dbs = db.list_database()
print("所有数据库:", all_dbs)
# 输出:['default', 'my_rag_database']

# 4. 删除数据库(谨慎操作!)
db.drop_database("my_rag_database")

五、Collection 与 Schema 实战:静态 + 动态字段

Collection 是 Milvus 中的'数据表',Schema 定义表结构(字段类型、主键、向量维度等),支持静态字段和动态字段两种模式。

1. 核心概念

  • Schema:集合的结构定义,由多个 FieldSchema(字段定义)组成
  • FieldSchema:单个字段的定义,包括名称、数据类型、是否为主键、向量维度等
  • 静态 Schema:字段固定,需提前定义所有字段(适用于数据结构稳定的场景,如用户画像)
  • 动态 Schema:支持新增未定义的字段(Milvus 2.3+ 支持,适用于日志、多变数据场景)

2. 字段类型详解(常用)

数据类型说明示例
INT6464 位整型,常用作主键DataType.INT64
VARCHAR变长字符串,需指定 max_lengthDataType.VARCHAR(max_length=50)
FLOAT单精度浮点数DataType.FLOAT
FLOAT_VECTOR浮点型向量,需指定 dim(维度)DataType.FLOAT_VECTOR(dim=128)

3. 静态 Schema+Collection 创建

from pymilvus import connections, FieldSchema, DataType, CollectionSchema, Collection

# 1. 连接服务并切换数据库
connections.connect(host="192.168.229.128", port=19530)
db.using_database("my_rag_database")

# 2. 定义字段(静态 Schema:所有字段提前声明)
fields = [
    # 主键字段:id(自增或手动指定)
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    # 向量字段:dim=128(需与嵌入模型输出维度一致)
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128),
    # 标量字段:文档标签
    FieldSchema(name="doc_tag", dtype=DataType.VARCHAR, max_length=50)
]

# 3. 创建 Schema(添加描述)
schema = CollectionSchema(
    fields=fields,
    description="RAG 系统文档向量集合(静态字段)",
    enable_dynamic_field=False  # 关闭动态字段
)

# 4. 创建 Collection(指定分片数,分布式场景关键)
collection = Collection(
    name="static_doc_collection",
    schema=schema,
    shards_num=2  # 推荐值:集群节点数×2,单节点场景默认 2 即可
)
print("Collection 创建成功!")

4. 动态 Schema+Collection 创建与数据插入

动态 Schema 允许插入未定义的字段,灵活适配多变数据场景:

from pymilvus import connections, FieldSchema, DataType, CollectionSchema, Collection

# 1. 连接服务
connections.connect(host="192.168.229.128", port=19530)
db.using_database("my_rag_database")

# 2. 定义核心字段(仅声明必要字段)
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128)
]

# 3. 创建 Schema(启用动态字段)
dynamic_schema = CollectionSchema(
    fields=fields,
    description="RAG 系统动态字段集合",
    enable_dynamic_field=True  # 关键:开启动态字段
)

# 4. 创建 Collection
dynamic_collection = Collection(
    name="dynamic_doc_collection",
    schema=dynamic_schema,
    shards_num=2
)

# 5. 插入数据(包含未定义的动态字段 color、doc_source)
data = [
    {
        "id": 0,
        "embedding": [0.358, -0.602, 0.184, -0.263, 0.903],  # 简化为 5 维示例
        "color": "pink_8682",
        "doc_source": "pdf_file_1.pdf"
    },
    {
        "id": 1,
        "embedding": [-0.334, -0.257, 0.899, 0.940, 0.538],
        "color": "grey_8510",
        "doc_source": "docx_file_2.docx"
    }
]

# 插入数据(动态字段会自动作为键值对存储)
insert_result = dynamic_collection.insert(data=data)
print("数据插入成功,插入 ID:", insert_result.primary_keys)

5. 关键参数说明

  • shards_num:分片数量,创建后不可修改,直接影响分布式扩展能力
  • enable_dynamic_field:是否启用动态字段,Milvus 2.3+ 版本支持
  • dim:向量维度,需与嵌入模型(如 BERT、Sentence-BERT)输出的向量维度完全一致

Milvus 动态字段演示

目录

  1. Milvus 向量数据库实战:Attu 可视化安装与 Python 整合指南
  2. 一、Attu 可视化客户端:Milvus 图形化管理利器
  3. 核心特性
  4. 核心功能模块
  5. 二、Attu 安装实战(跨平台适配)
  6. 1. 前置条件
  7. 2. Windows 系统安装
  8. 3. macOS 系统安装
  9. 4. Linux 系统安装(Debian/Ubuntu)
  10. 5. Docker 部署(跨平台通用方案)
  11. 三、Python 整合 Milvus:SDK 安装与验证
  12. 1. 安装 PyMilvus
  13. 2. 验证安装
  14. 3. PyMilvus 核心接口分类
  15. 四、Python 操作 Milvus 核心流程
  16. 1. 连接 Milvus 服务
  17. 方式 1:使用 connections.connect(传统方式)
  18. 连接远程 Milvus 服务(替换为你的服务 IP)
  19. 方式 2:使用 MilvusClient(推荐,Milvus 2.3+ 支持)
  20. 2. 数据库操作(创建/使用/删除)
  21. 连接服务
  22. 1. 创建数据库(名称自定义)
  23. 2. 切换使用目标数据库
  24. 3. 列出所有数据库
  25. 输出:['default', 'myragdatabase']
  26. 4. 删除数据库(谨慎操作!)
  27. 五、Collection 与 Schema 实战:静态 + 动态字段
  28. 1. 核心概念
  29. 2. 字段类型详解(常用)
  30. 3. 静态 Schema+Collection 创建
  31. 1. 连接服务并切换数据库
  32. 2. 定义字段(静态 Schema:所有字段提前声明)
  33. 3. 创建 Schema(添加描述)
  34. 4. 创建 Collection(指定分片数,分布式场景关键)
  35. 4. 动态 Schema+Collection 创建与数据插入
  36. 1. 连接服务
  37. 2. 定义核心字段(仅声明必要字段)
  38. 3. 创建 Schema(启用动态字段)
  39. 4. 创建 Collection
  40. 5. 插入数据(包含未定义的动态字段 color、doc_source)
  41. 插入数据(动态字段会自动作为键值对存储)
  42. 5. 关键参数说明
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 调用 ChatGPT、通义千问与讯飞星火文本总结实测对比
  • React Native Android 集成虹软 ArcFace 人脸识别方案
  • 基于 Spring Boot 的智行无忧停车场管理系统设计与实现
  • Python 密码验证与元组排序编程练习
  • 牧神记圣女司幼幽 AI 绘图工作流搭建指南
  • 无人机避障:Mid360+Fast-lio 感知建图与 Ego-planner 运动规划
  • 人形机器人 VR 遥操作技术实现指南
  • Android Studio 结合 Trae 使用 Kotlin 开发 WebView 应用
  • 智能座舱音频架构详解:电子硬件部分
  • Ghostty + Yazi + Lazygit 构建高效终端开发工作流
  • AI 驱动的虚拟现实与增强现实开发
  • XR 技术分享:三维实时渲染与 VR 全景视频的共生
  • Windows 系统下 Neo4j 图数据库与 JDK 安装配置指南
  • Qwen3-TTS 与 Whisper ASR 构建双向语音对话系统
  • Ubuntu 系统服务管理与 systemd 配置实战
  • WeBASE 一键部署实战:Ubuntu 环境配置与常见问题解决
  • 元气 AI 与 OpenClaw 深度对比:功能、架构与选型指南
  • 基于 Flutter × HarmonyOS 6.0 的宿舍管理系统:数据结构与架构设计
  • C#使用FFmpeg.AutoGen实现RTSP流暂停与继续播放
  • 前端地图开发:地理编码与逆地理编码实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online