Milvus 图形化管理工具 Attu 来袭!

面对高速增长的非结构化数据处理需求,Milvus 2.0 应运而生。Milvus 2.0 是一款面向 AI、专为大规模生产级场景设计的向量数据库系统。如何快速上手这款非结构化数据处理神器?除了Milvus专属的命令行客户端 Milvus_cli,你还可以选择 Zilliz 为 Milvus 专门开发的图形界面客户端—— Attu。
本期内容将手把手带你使用 Attu 进行向量搜索。
/ ˈætu /
Attu

人迹罕至的阿图岛位于阿留申群岛最西端,
国际日期变更线在这里拐了一个巨大的弯,
人类文明建造的时间概念摇摇晃晃。
八十年后草木已经吞噬战场,
夏季的午夜明亮异常,
巨大的鹰隼在风暴中盘旋。
荒芜秘境 Attu
象征着拓荒路上的勇士精神。
相较于Milvus_cli 简单直接的使用体验,Attu 带来更多的特性:
提供 Win,Mac,Linux 可执行安装包
易用的图形化界面,管理 Milvus 更方便
Milvus 主要功能全覆盖
插件方便拓展自定义功能
系统拓扑图信息完备,易于使用;帮助运维人员理解系统架构,方便系统调试
接下来,让我们看看 Attu 到底有什么乾坤。
安装与运行
你可以在 https://github.com/zilliztech/attu/releases 找到最新发布的版本,Attu 提供各平台的可执行文件安装包,源码全部开源,欢迎大家提交 pull request。

Attu 当前版本安装包与源码
你还可以使用 docker 安装 Attu:
其中,attu
IP
表示运行 attu 环境的 IP 地址,milvus server
IP
是运行 Milvus 环境的 IP 地址。
启动成功后的界面如下图所示,输入正确的 Milvus IP 及端口就能进入 Attu 了!

功能概览

展开左侧的导航栏,你可以看到目前有 Overview、Collection、Vector Search 和 System View 四大标签页。
其中,Overview 列出目前 Milvus 中已经加载的所有 collections,如上图所示。
Collections 页面以列表形式呈现所有 collections,包括 loaded 和 unloaded,分别代表了 milvus 的 collection 是否加载。

Vector Search 及 System View 两个标签页都是以插件的形式加载到 Attu 中的,关于插件的具体概念和使用方法将在文末详细介绍。
其中,Vector Search 是用来进行向量搜索的界面:

System View 以拓扑形式展现 Milvus 系统的结构,并详细列出每个节点的具体信息:

在拓扑图中点击单节点,可以看到该节点的具体信息:

功能演示
接下来,我们将使用测试数据,与你一同探索 Attu 的各个功能。
测试数据见:https://github.com/zilliztech/attu/tree/main/examples
首先,在 collection 创建一个名为 test 的 collection,添加 4 个 field 分别为:
Field Name: id
Field Name: vector Dimension: 128
Field Name: brand Field Type: Int64
Field Name: color Field Type: Int64

创建完毕后,点击 load,因为只有 loaded collection 才可以被搜索。

此时在 overview 界面已经可以看到新创建的 test collection 了:

现在,我们来创建数据, import 预定义的测试数据 example_vectors.csv



检查导入的数据,在 Overview 或者 Collection 界面点击 collection name 可以进入 query 界面。
添加 filter (1),新增条件 id
!
=
0
(2),点击 apply filter(3),点击 query (4)。

可以看到 50 条数据都已经成功导入了:

接下来,我们试一下向量搜索。
在 vector value 中贴入 search_vectors.csv 文件中的其中一条记录,然后选择 test collection,点击 search:

可以看到向量间的距离计算的结果,也不需要写代码,就能快速验证向量搜索的结果,非常方便。

最后,让我们来看一下 System View。
由于目前仅有 node sdk 封装了 metrics api,该 api 可以实时获取 Milvus 目前系统状态、节点间关系、以及每个节点自身的状态。
作为 Attu 的特有功能,System View 包含了一张完整的 Milvus 系统拓扑图,点击拓扑图中的每个节点,可以了解到节点自身的状态变化(每 10 秒动态刷新)。

点击具体子节点,可以进入 node list view,该视图用来查看每个 coord 下管理的所有子节点列表及状态。通过排序,可以迅速定位到高 CPU 占用或者高内存占用节点,方便排查问题。

One more thing……
前文提到,目前系统中的 Vector Search 及 System View 两个标签页是以插件的形式加载到 Attu 中的。
我们鼓励用户开发满足自身业务需要的组件,以插件的形式添加到 Attu 中来。在 Attu 代码中,有专门的 plugins 目录用来存放插件代码。

你可以参考其中任意一个插件的代码来学习如何创建插件。配置如下 config 文件,系统就会加载插件到 Attu 中来:

更多帮助
Attu 详细文档请查阅:attu/doc at main · zilliztech/attu、https://milvus.io/docs/v2.0.0/attu.md
Attu 正在持续优化中,如果你有任何问题,欢迎提交 GitHub Issue,一起为 Attu 添砖加瓦!
提交 issue:https://github.com/zilliztech/attu/issues
希望 Attu 可以帮助你更轻松地使用 Milvus 向量数据库,欢迎填写 Attu 产品调研问卷,您的建议会让我们做得更好!
周四(3 月 3 日),我们还邀请了 Zilliz 前端工程师陈臻直播介绍 Milvus_Cli & Attu 的功能,并分享开发经验,敬请期待!
评论