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

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

Milvus 向量数据库结合 Attu 可视化工具可大幅降低运维门槛。涵盖 Attu 在 Windows、macOS、Linux 及 Docker 环境的部署流程,并详解 PyMilvus SDK 的集成方法。通过静态与动态 Schema 的对比实战,演示了 Collection 创建、字段定义、数据插入及检索的核心链路,适用于 RAG 系统构建中的向量存储场景。

晚风告白发布于 2026/3/16更新于 2026/10/890 浏览
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 支持多种安装方式,以下是不同系统的最简部署流程,核心目标是通过'IP+端口'连接 Milvus 服务。

前置条件
  • 已部署 Milvus 服务(本地或远程,确保网络可通)
  • Milvus 服务端口默认 19530(TCP 端口)、9091(HTTP 端口)
  • 安装版本匹配:Milvus 2.5X → Attu 2.5.X(避免接口不兼容)
Windows 系统安装
  1. 访问 Attu GitHub Releases 页面,下载 Windows 对应的 exe 安装包(如 attu-windows-x64.exe)
  2. 双击安装包,按向导完成安装(默认路径即可,无需额外配置)
  3. 启动 Attu,在连接页面输入 Milvus 服务 IP + 端口 19530,点击'Connect'即可登录
macOS 系统安装
  1. 下载 macOS 对应的 dmg 安装包(attu-macos-x64.dmg)
  2. 拖拽安装包到应用程序文件夹,完成安装
  3. 启动 Attu,输入 Milvus 服务 IP 和 19530 端口,验证连接(若提示权限不足,右键选择'打开'即可)
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,或通过应用列表启动,输入连接信息即可
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)是最常用的开发工具。

安装 PyMilvus

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

pip install pymilvus==2.5.5 
验证安装

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

python -c "from pymilvus import Collection"
PyMilvus 核心接口分类
  • DDL/DCL:创建/删除集合、分区,检查集合/分区是否存在(createCollection、dropCollection 等)
  • DML/Produce:数据插入、删除、更新操作
  • DQL:向量搜索、标量查询、混合查询操作

Python 操作 Milvus 核心流程

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

连接 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")
数据库操作(创建/使用/删除)
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 定义表结构(字段类型、主键、向量维度等),支持静态字段和动态字段两种模式。

核心概念
  • Schema:集合的结构定义,由多个 FieldSchema(字段定义)组成
  • FieldSchema:单个字段的定义,包括名称、数据类型、是否为主键、向量维度等
  • 静态 Schema:字段固定,需提前定义所有字段(适用于数据结构稳定的场景,如用户画像)
  • 动态 Schema:支持新增未定义的字段(Milvus 2.3+ 支持,适用于日志、多变数据场景)
字段类型详解(常用)
数据类型说明示例
INT6464 位整型,常用作主键DataType.INT64
VARCHAR变长字符串,需指定 max_lengthDataType.VARCHAR(max_length=50)
FLOAT单精度浮点数DataType.FLOAT
FLOAT_VECTOR浮点型向量,需指定 dim(维度)DataType.FLOAT_VECTOR(dim=128)
静态 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 创建成功!")
动态 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)
关键参数说明
  • shards_num:分片数量,创建后不可修改,直接影响分布式扩展能力
  • enable_dynamic_field:是否启用动态字段,Milvus 2.3+ 版本支持
  • dim:向量维度,需与嵌入模型(如 BERT、Sentence-BERT)输出的向量维度完全一致

目录

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

更多推荐文章

查看全部
  • C++ 学习笔记:基础语法与数据类型详解
  • 微信小程序城市公交查询与失物招领系统的开发笔记
  • Docker 安装需 WSL 但下载慢的离线安装方案
  • Faster-Whisper 实现 3 倍速语音转文字:完整参数配置指南
  • nlohmann/json:C++ 中最像 Python 的 JSON 库
  • Windows 10 彻底关闭 Microsoft 365 Copilot 弹窗的 6 种方法
  • 国产 FPGA 低温低压测试问题反思与总结
  • 基于 Neo4j 和 py2neo 的知识图谱搭建步骤详解
  • 数据结构基础:堆的概念与实现
  • 基于.NET8 的低代码平台技术解析:数据库与部署实战
  • 多旋翼无人机电源系统详解
  • 向产品经理通俗解释 JavaScript:ECMAScript、DOM 与 BOM
  • AI 图像生成提示词进阶指南与最佳实践
  • JavaScript Headers 对象详解:特性、用法与护卫机制
  • STL map 与 multimap 深度解析:接口、特性与实战应用
  • LeetCode 92 链表区间反转:递归反转与哨兵技巧
  • Android 开发核心知识点梳理与学习建议
  • OpenClaw 生态下 16 款 AI Agent 选型指南
  • DeepSeek R1 与 GPT 的区别及实战应用技巧
  • AI 大模型开发入门指南:学习路径与实战建议

相关免费在线工具

  • 加密/解密文本

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