Milvus向量数据库可视化客户端Attu

news2025/2/24 6:16:26

概述

关于Milvus的介绍,可搜索网络资料。Milvus的使用还在摸索中;打算写一篇,时间待定。

关于Attu的资料:

  • 官网
  • GitHub
  • 文档

对于Milvus的数据可视化,有如下两个备选项:

  • Milvus_cli:命令行工具
  • Attu:Zilliz为Milvus专门开发的图形界面客户端

相较于Milvus_cli简单直接的命令行,Attu的特性:

  • 提供Win,Mac,Linux可执行安装包;
  • 易用的图形化界面;
  • Milvus主要功能全覆盖;
  • 插件方便拓展自定义功能;
  • 系统拓扑图信息完备,易于使用;
  • 帮助运维人员理解系统架构,方便系统调试。

下载

从官方GitHub下载页面根据系统版本,选择最新版,如Windows系统的exe或Mac系统的dmg安装文件,双击安装即可,非常简单。

界面简介

和其他任何一款数据库连接工具类似,非常简单,不再赘述。如果配置过认证,则需要输入token、用户名、密码。

连接成功后的界面:
在这里插入图片描述
从上图可看到:

  • 顶部展示连接信息;
  • 当前是主页;
  • 太阳图标表明当前是白亮(light)模式,点击图标可切换到暗黑(night)模式;
  • 图标右侧也展示连接信息,以及系统运行状态;
  • 点击右侧的退出图标,可切换到不同的Milvus连接(或集群);
  • 左侧边栏包括四个模块:主页、数据库、用户和角色、系统视图;
  • 默认创建default数据库,可新增数据库;
  • 展示数据库名称,及其下面有多少个集合,创建时间等信息;
  • 系统信息:展示连接到的Milvus Server版本号,部署模式,运行时间,用户和角色;
  • 左下角展示Attu的版本号:v2.5.2。

注:v2.5.2版本的Attu,暂时没找到(也可能是我不知道)管理多个不同的Milvus集群连接的入口,只能通过退出登录的方式切换连接。

创建数据库

非常简单,点击上图的创建数据库,输入名称即可。

值得注意的是数据库属性,如下图,点击编辑可修改,也可重置修改后的属性:
在这里插入图片描述
包括:

  • database.replica.number:副本数;
  • database.resource_groups:资源组;
  • database.diskQuota.mb:磁盘限额,单位MB;
  • database.max.collections:最大集合个数;
  • database.force.deny.writing:强制禁止写入。

创建集合

点击创建collection,其中主键字段有两个类型:
在这里插入图片描述
向量字段:
在这里插入图片描述
标量字段:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击分词器右侧的设置按钮:
在这里插入图片描述
选择一致性:
在这里插入图片描述
信息量非常大:

  • 主键字段支持重命名,一般建议使用id;
  • 主键字段只能为INT64或VARCHAR;
  • 可勾选自动ID,默认勾选;
  • 一个集合可以有多个向量字段;
  • 向量类型包括:Binary、Float、Float16、BFloat16、Sparse、BM25(VarChar)
  • 向量维度可调整,参考下面章节;
  • 一个集合必须要有一个主键字段和至少一个向量字段,可以没有标量字段;
  • 集合可以新增多个标量字段;
  • 标量字段类型包括:Int8、Int16、Int32、Int64、Float、Double、Boolean、VarChar、JSON、Array;
  • 标量字段可为空,不为空时需要设置默认值;
  • Array类型的标量字段,数组里的类型支持:Int8、Int16、Int32、Int64、Float、Double、Boolean、VarChar;
  • 标量字段为VarChar时,可设置分词器(包括Standard、English、Chinese),开启匹配;
  • 一致性:参考下面章节
  • 动态schema:Milvus将根据分区键字段中的值在分区中存储entities,只支持一个Int64或VarChar字段;
  • 加载集合:

向量维度

设置向量维度的注意事项

  • 向量维度必须一致:在同一个集合中,所有向量的维度必须相同。在创建集合时指定的,无法在集合创建后更改。
  • 向量维度影响存储和计算:高维向量会占用更多的存储空间,并且在计算相似度时所需的计算资源也会更多;低维向量则相反。
  • 选择合适的向量维度:
    • 向量维度的选择应基于具体应用需求。通常,高维向量能更好地表示复杂的数据结构,但也会增加计算复杂度。
    • 对于某些特定的应用场景,如图像检索、NLP等,通常有推荐的向量维度。例如,使用预训练的深度学习模型生成的特征向量通常有固定的维度,一般都是2的n次幂,如128、256、512等。

向量维度对相似度计算的影响

  • 向量维度直接影响相似度度量的计算。常用的相似度度量方法有欧氏距离、余弦相似度等。这些度量方法在高维空间中的计算复杂度会增加。
  • 高维向量可能会导致维度灾难问题,影响相似度计算的准确性和效率。使用降维技术或适当的索引算法可缓解这一问题。

向量维度对向量搜索的影响

  • 高维向量搜索的计算复杂度较高,可能会导致搜索性能下降。选择合适的索引算法(如IVF、HNSW等)可提高搜索性能。
  • Milvus提供多种索引类型,适用于不同的向量维度和数据规模。根据具体需求选择合适的索引类型和参数。

一致性

Milvus支持四个一致性级别:

  • Strong:强一致性,最高,最严格,确保用户可读取最新版本的数据。会增加延迟
  • Bounded:有界,默认级别;Milvus里该级别也叫staleness,有界陈旧性,允许在一定时间内存在数据不一致;一般情况下,在该时间段之外的时间内,数据总是全局一致的。适用于需要控制搜索延迟并且可以接受零星数据不可见性的场景。例如,在视频推荐引擎等推荐系统中,数据不可见性有时对总的召回率影响较小,但可显着提升推荐系统的性能。
  • Session:会话一致性,保证在同一会话中,所有数据写入在读取时可以立即感知到。即,当你通过一个客户端写入数据时,新插入的数据可立即被搜索到。
  • Eventually:最终一致性。读取和写入的顺序没有保证,并且在不进行进一步的写操作的情况下,复制品最终会收敛到相同的状态。复制品使用最新更新的值来处理读请求。可极大地缩短搜索延迟。

Schema

如下图
在这里插入图片描述
创建集合时,如果没有勾选加载,或加载后点击释放,则不再可用于搜索:
在这里插入图片描述

创建索引

创建集合时,默认自动创建索引,且类型为AUTOINDEX,可修改索引:

  • 先删除
  • 再创建

在这里插入图片描述
主键ID字段,是标量字段;

在标量字段上创建索引:
在这里插入图片描述
如上图,标量索引包括:

  • Trie
  • HASH
  • BTREE
  • SLOT_SORT
  • BITMAP
  • INVERTED

在向量字段上创建索引:
在这里插入图片描述
如上图,向量索引包括:

  • 内存索引
    • HNSW
    • IVF_FLAT
    • IVF_PQ
    • IVF_SQ8
    • FLAT
    • SCANN
  • 磁盘索引
    • DISKANN
  • GPU索引
    • GPU_CAGRA
    • GPU_IVF_FLAT
    • GPU_IVF_PQ
    • GPU_BRUTE_FORCE

关于索引类型,这些概念实际上是Milvus里的知识点。敬请期待鄙人写出Milvus博客。

数据导入

在这里插入图片描述

向量检索

未加载的集合,无法执行向量搜索。

在这里插入图片描述

过滤表达式
在这里插入图片描述
如上图:

  • 可以添加多个添加,并设置与(AND)、或(OR);
  • 表达式可以复制出来;
  • metadata是一个JSON字段,会自动让用户选择一个key字段;
  • Logic可选项如下:
    在这里插入图片描述
    还可以将整个查询表达式导出为客户端查询code:
    在这里插入图片描述
    目前仅支持Python和Node JS,此功能还是Beta版(查询条件不完善):
    在这里插入图片描述

Segment

数据段

压缩,Compact

落盘,Flush

集合属性

集合创建成功后,会看到一个属性列表:
在这里插入图片描述
包括:

  • collection.ttl.seconds:过期时间,单位秒;
  • collection.autocompaction.enabled:是否开启自动压缩;
  • collection.insertRate.max.mb:最大插入速率;
  • collection.insertRate.min.mb:最小插入速率;
  • collection.upsertRate.max.mb:最大更新或插入速率;
  • collection.upsertRate.min.mb:最小更新或插入速率;
  • collection.deleteRate.max.mb:最大删除速率;
  • collection.deleteRate.min.mb:最小删除速率;
  • collection.bulkLoadRate.max.mb:最大批量加载速率;
  • collection.bulkLoadRate.min.mb:最小批量加载速率;
  • collection.queryRate.max.qps:最大查询速率;
  • collection.queryRate.min.qps:最小查询速率;
  • collection.searchRate.max.vps:最大搜索速率;
  • collection.searchRate.min.vps:最小搜索速率;
  • collection.diskProtection.diskQuota.mb:触发磁盘保护限额,单位MB;
  • collection.replica.number:副本数。

用户与角色

新增角色时,选择权限。

新增用户时,选择角色。

Milvus中的授权对象主要包含全局、集合和用户。授权时如果权限选择*,则意味着该角色拥有授权对象的所有API调用权限。每个对象对应的权限和接口API如下表所示。接口API和权限一般是同名,若不为同名,则会单独列出。

全局权限列表:

  • CreateCollection
  • DropCollection
  • DescribeCollection
  • ShowCollections
  • RenameCollection
  • FlushAll
  • CreateOwnership:接口为CreateUser CreateRole
  • DropOwnership:接口为DeleteCredential DropRole
  • SelectOwnership:接口为SelectRole/SelectGrant
  • ManageOwnership:接口为OperateUserRole OperatePrivilege
  • CreateResourceGroup
  • DropResourceGroup
  • DescribeResourceGroup
  • ListResourceGroups
  • TransferNode
  • TransferReplica
  • CreateDatabase
  • DropDatabase
  • ListDatabases
  • CreateAlias
  • DropAlias
  • DescribeAlias
  • ListAliases

集合权限列表:

  • CreateIndex
  • DropIndex
  • IndexDetail:接口为DescribeIndex/GetIndexState/GetIndexBuildProgress
  • Load:接口为LoadCollection/GetLoadingProgress/GetLoadState
  • GetLoadingProgress
  • GetLoadState
  • Release:接口为ReleaseCollection
  • Insert
  • Delete
  • Upsert
  • Search
  • Flush:接口为Flush/GetFlushState
  • GetFlushState
  • Query
  • GetStatistics:接口为GetCollectionStatistics
  • Compaction:接口为Compact
  • Import:接口为BulkInsert/Import
  • LoadBalance
  • CreatePartition
  • DropPartition
  • ShowPartitions
  • HasPartition

用户权限列表:

  • UpdateUser:接口为UpdateCredential
  • SelectUser

系统视图

提供一张完整的Milvus系统拓扑图,点击拓扑图中的每个节点,可了解到节点自身的状态变化(每10秒动态刷新)
在这里插入图片描述
点击Nodes子节点,可进入节点列表视图,查看子节点列表及状态。通过排序,可以迅速定位到高CPU或高内存占用节点,方便排查问题。
在这里插入图片描述

进阶

高可用

自建集群

云产品

使用云产品,如阿里云。

监控告警

可供参考的监控指标示例

规则名称监控项指标采样周期报警规则
milvus_ProcessResidentMemoryUtilization内存使用率60秒连续5个周期平均值 >= 80%,则发出告警
milvus_ProcessCPUUtilizationCPU使用率60秒连续5个周期平均值 >= 90%,则发出告警

实现思路
Prometheus采集Milvus服务器(或pod)指标数据

参考

  • Milvus图形化管理工具Attu来袭
  • Milvus一致性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2304233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【落羽的落羽 数据结构篇】顺序结构的二叉树——堆

文章目录 一、堆1. 概念与分类2. 结构与性质3. 入堆4. 出堆 二、堆排序三、堆排序的应用——TOP-K问题 一、堆 1. 概念与分类 上一期我们提到,二叉树的实现既可以用顺序结构,也可以用链式结构。本篇我们来学习顺序结构的二叉树,起个新名字—…

基于STM32的智能农业大棚环境控制系统

1. 引言 传统农业大棚环境调控依赖人工经验,存在控制精度低、能耗高等问题。本文设计了一款基于STM32的智能农业大棚环境控制系统,通过多参数环境监测、作物生长模型与精准执行控制,实现大棚环境的智能优化,提高作物产量与品质。…

Git常见命令--助力开发

git常见命令: 创建初始化仓库: git 将文件提交到暂存区 git add 文件名 将文件提交到工作区 git commit -m "注释(例如这是发行的版本1)" 文件名 查看状态 如果暂存区没有文件被提交显示: $ git status On…

一:将windows上的Python项目部署到Linux上,并使用公网IP访问

windows中python的版本:python3.13.1,项目使用的是虚拟环境解释器 linux系统:仅有python3.6.7 服务器:阿里云服务器有公网IP,访问端口XXXX 在linux上安装python3.13.1 linux中如果是超级管理员root,执行所…

【数据标准】数据标准化是数据治理的基础

导读:数据标准化是数据治理的基石,它通过统一数据格式、编码、命名与语义等,全方位提升数据质量,确保准确性、完整性与一致性,从源头上杜绝错误与冲突。这不仅打破部门及系统间的数据壁垒,极大促进数据共享…

计算机视觉:经典数据格式(VOC、YOLO、COCO)解析与转换(附代码)

第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

棋牌游戏一直是移动端游戏市场中极具竞争力和受欢迎的品类,而七星棋牌源码修复版无疑是当前行业内不可多得的高质量棋牌项目之一。该项目支持 6大省区版本(湖南、湖北、山西、江苏、贵州),拥有 200多种子游戏玩法,同时…

编程考古-忘掉它,Delphi 8 for the Microsoft .NET Framework

忘掉它吧,作一篇记录! 【圣何塞,加利福尼亚 – 2003年11月3日】在今日的Borland开发者大会上,Borland正式推出了Delphi 8 for Microsoft .NET Framework。这款新版本旨在为Delphi开发者提供一个无缝迁移路径,将现有的…

[通俗易懂C++]:指针和const

之前的文章有说过,使用指针我们可以改变指针指向的内容(通过给指针赋一个新的地址)或者改变被保存地址的值(通过给解引用指针赋一个新值): int main() {int x { 5 }; // 创建一个整数变量 x,初始值为 5int* ptr { &x }; // 创建一个指针 ptr,指向 …

大一高数(上)速成:导数和微分

目录 1.分段函数的可导性: 2.隐函数求导: 3.参数方程求导: 4.对数求导法: 5.函数的微分: 1.分段函数的可导性: 2.隐函数求导: 3.参数方程求导: 4.对数求导法: 5.函数的微分:

京东cfe滑块 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 headers {"accept&qu…

react 踩坑记 too many re-renders.

报错信息: too many re-renders. React limits the number of randers to prevent an infinite loop. 需求 tabs只有特定标签页才展示某些按钮 button要用 传递函数引用方式 ()>{} *还有要注意子组件内loading触发 导致的重复渲染

BGP分解实验·19——BGP选路原则之起源

当用不同的方式为BGP注入路由时,起源代码将标识路由的来源。 (在BGP表中,Network为“i”,重分布是“?”) 实验拓扑如下: R2上将来自IGP的路由10.3.3.3/32用network指令注入BGP;在R4上将来自I…

单机上使用docker搭建minio集群

单机上使用docker搭建minio集群 1.集群安装1.1前提条件1.2步骤指南1.2.1安装 Docker 和 Docker Compose(如果尚未安装)1.2.2编写docker-compose文件1.2.3启动1.2.4访问 2.使用2.1 mc客户端安装2.2创建一个连接2.3简单使用下 这里在ubuntu上单机安装一个m…

家用路由器的WAN口和LAN口有什么区别

今时今日,移动终端盛行的时代,WIFI可以说是家家户户都有使用到的网络接入方式。那么路由器当然也就是家家户户都不可或缺的设备了。而路由器上的两个实现网络连接的基础接口 ——WAN 口和 LAN 口,到底有什么区别?它们的功能和作用…

实操解决Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题

1 column “datlastsysoid“ does not exist2 Line1:SELECT DISTINCT datalastsysoid FROM pg_database问题分析 Postgres 15 从pg_database表中删除了 datlastsysoid 字段引发此错误。 决绝方案 解决方法1:升级navicat 解决方法2:降级pgsql 解决方…

3分钟idea接入deepseek

DeepSeek简介 DeepSeek 是杭州深度求索人工智能基础技术研究有限公司开发的一系列大语言模型,背后是知名量化资管巨头幻方量化3。它专注于开发先进的大语言模型和相关技术,拥有多个版本的模型,如 DeepSeek-LLM、DeepSeek-V2、DeepSeek-V3 等&…

树莓派理想二极管电路分析

如果 Vin Vout,比如说 5.0V,PNP 晶体管以当前的镜像配置偏置。晶体管 U14 的 Vb 将为 5-0.6 4.4V,镜像配置意味着 Vg 也将为 4.4V. Vgs 为4.4-5.0 -0.6V。mosfet 将处于关闭状态(几乎打开)。如果 Vout 略低于 Vin&a…

Unity贴图与模型相关知识

一、贴图 1.贴图的类型与形状 贴图类型 贴图形状 2.在Unity中可使用一张普通贴图来生成对应的法线贴图(但并不规范) 复制一张该贴图将复制后的贴图类型改为Normal Map 3.贴图的sRGB与Alpha sRGB:勾选此选项代表此贴图存储于Gamma空间中…

Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)

一、进程虚拟地址空间 这里以kernel 2.6.32,32位平台为例。 1.空间布局 在 32 位系统中,虚拟地址空间大小为 4GB。其中: 内核空间:占据高地址的 1GB ,用于操作系统内核运行,包含内核代码、内核数据等&am…