跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Milvus 实战:Attu 可视化安装与 Python 整合指南

Milvus 向量数据库结合 Attu 可视化工具可大幅降低运维门槛。本文详解 Attu 在 Windows、macOS 及 Linux 下的部署方式,并演示如何通过 PyMilvus SDK 完成连接、库管理及集合创建。涵盖静态与动态 Schema 的字段定义、数据插入及关键参数配置,为 RAG 系统构建提供基础实践参考。

DevOpsTeam发布于 2026/3/22更新于 2026/9/155 浏览
Milvus 实战:Attu 可视化安装与 Python 整合指南

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

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

核心特性
  • 跨平台兼容:支持 Windows、Linux、macOS 三大系统,同时提供 Docker 镜像部署方案
  • 开箱即用:无需编写代码,通过界面即可完成数据库、集合、索引的全生命周期管理
  • 深度集成:与 Milvus 生态无缝衔接,由官方团队维护,功能迭代与版本同步
  • 版本适配:需重点注意 Attu 与 Milvus 的版本匹配(当前实战环境:Milvus V2.5X,建议搭配 Attu 2.5.X 版本)
  • 开源地址:https://github.com/zilliztech/attu
核心功能模块
  • 数据库与集合管理:创建/删除数据库、定义集合字段(主键、标量、向量)、索引构建、数据导入导出
  • 分区与分片优化:支持按业务维度划分分区,分片数可配置(默认 2 个,支持水平扩展)
  • 向量检索能力:支持 L2(欧氏距离)、余弦相似度等度量方式,结合标量过滤实现混合查询
  • 资源与权限控制:加载/释放内存数据,多角色权限分配

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'即可登录

Attu 连接界面

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 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
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. Attu 可视化客户端:Milvus 图形化管理利器
  2. 核心特性
  3. 核心功能模块
  4. Attu 安装实战(跨平台适配)
  5. 1. 准备工作
  6. 2. Windows 系统安装
  7. 3. macOS 系统安装
  8. 4. Linux 系统安装(Debian/Ubuntu)
  9. 5. Docker 部署(跨平台通用方案)
  10. Python 整合 Milvus:SDK 安装与验证
  11. 1. 安装 PyMilvus
  12. 2. 验证安装
  13. 3. PyMilvus 核心接口分类
  14. Python 操作 Milvus 核心流程
  15. 1. 连接 Milvus 服务
  16. 方式 1:使用 connections.connect(传统方式)
  17. 方式 2:使用 MilvusClient(推荐,Milvus 2.3+ 支持)
  18. 2. 数据库操作(创建/使用/删除)
  19. 连接服务
  20. 1. 创建数据库(名称自定义)
  21. 2. 切换使用目标数据库
  22. 3. 列出所有数据库
  23. 输出:['default', 'myragdatabase']
  24. 4. 删除数据库(谨慎操作!)
  25. Collection 与 Schema 实战:静态 + 动态字段
  26. 1. 核心概念
  27. 2. 字段类型详解(常用)
  28. 3. 静态 Schema+Collection 创建
  29. 1. 连接服务并切换数据库
  30. 2. 定义字段(静态 Schema:所有字段提前声明)
  31. 3. 创建 Schema(添加描述)
  32. 4. 创建 Collection(指定分片数,分布式场景关键)
  33. 4. 动态 Schema+Collection 创建与数据插入
  34. 1. 连接服务
  35. 2. 定义核心字段(仅声明必要字段)
  36. 3. 创建 Schema(启用动态字段)
  37. 4. 创建 Collection
  38. 5. 插入数据(包含未定义的动态字段 color、doc_source)
  39. 插入数据(动态字段会自动作为键值对存储)
  40. 5. 关键参数说明

更多推荐文章

查看全部
  • Visual C++ 运行库安装故障排查与修复指南
  • AI 辅助编程边界:当 Copilot 尝试编写测试
  • 使用 Gitee、PicGo 和 Typora 搭建免费个人笔记工具
  • 飞书自定义机器人 Webhook 接入实战
  • Cute_Animal_For_Kids_Qwen_Image 儿童专属 AI 绘画工具使用指南
  • 普通人如何利用 AI 工具提升效率与变现
  • AI如何把细胞生物学从观察带到预测
  • Deepyr 在 OpenHarmony 上的适配与实战指南
  • SpringBoot 登录认证全栈实现:Session、统一结果封装、MD5 加密与拦截器
  • LeetCode 965. Univalued Binary Tree C 语言解法
  • 从语法纠错到项目重构:Python+Copilot 的全流程开发效率提升指南
  • 模拟算法实战:替换问号、提莫攻击、Z 字形变换等五题详解
  • OpenAI 集成 Langchain 操作实战详解
  • 前端开发:如何使用浏览器开发者工具查看接口请求与响应
  • 基于腾讯云服务器部署 Openclaw 并接入飞书与 NVIDIA 模型
  • 选择排序算法详解:原理、优化与复杂度分析
  • 网络安全漏洞挖掘实战经验与入门指南
  • Page-Agent:一行 JS 代码让大模型寄生前端 DOM
  • 贪心算法实战:摆动序列与股票买卖等经典问题
  • Java 串口通信库 jSerialComm 跨平台开发指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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