Milvus向量数据库可视化客户端Attu
概述关于Milvus的介绍,可搜索网络资料。Milvus的使用还在摸索中;打算写一篇,时间待定。
关于Attu的资料:
[*]官网
[*]GitHub
[*]文档
对于Milvus的数据可视化,有如下两个备选项:
[*]Milvus_cli:命令行工具
[*]Attu:Zilliz为Milvus专门开发的图形界面客户端
相较于Milvus_cli简单直接的命令行,Attu的特性:
[*]提供Win,Mac,Linux可实行安装包;
[*]易用的图形化界面;
[*]Milvus主要功能全覆盖;
[*]插件方便拓展自界说功能;
[*]体系拓扑图信息完备,易于使用;
[*]资助运维职员理崩溃系架构,方便体系调试。
下载
从官方GitHub下载页面根据体系版本,选择最新版,如Windows体系的exe或Mac体系的dmg安装文件,双击安装即可,非常简单。
界面简介
和其他任何一款数据库毗连工具类似,非常简单,不再赘述。如果配置过认证,则须要输入token、用户名、暗码。
毗连成功后的界面:
https://i-blog.csdnimg.cn/direct/64397bcf0c424802a479ead558322898.png
从上图可看到:
[*]顶部展示毗连信息;
[*]当前是主页;
[*]太阳图标表明当前是白亮(light)模式,点击图标可切换到暗黑(night)模式;
[*]图标右侧也展示毗连信息,以及体系运行状态;
[*]点击右侧的退出图标,可切换到不同的Milvus毗连(或集群);
[*]左侧边栏包括四个模块:主页、数据库、用户和角色、体系视图;
[*]默认创建default数据库,可新增数据库;
[*]展示数据库名称,及其下面有多少个聚集,创建时间等信息;
[*]体系信息:展示毗连到的Milvus Server版本号,部署模式,运行时间,用户和角色;
[*]左下角展示Attu的版本号:v2.5.2。
注:v2.5.2版本的Attu,暂时没找到(也可能是我不知道)管理多个不同的Milvus集群毗连的入口,只能通过退出登录的方式切换毗连。
创建数据库
非常简单,点击上图的创建数据库,输入名称即可。
值得留意的是数据库属性,如下图,点击编辑可修改,也可重置修改后的属性:
https://i-blog.csdnimg.cn/direct/bd2975aefe7e44a7a49a17daa7652878.png
包括:
[*]database.replica.number:副本数;
[*]database.resource_groups:资源组;
[*]database.diskQuota.mb:磁盘限额,单位MB;
[*]database.max.collections:最大聚集个数;
[*]database.force.deny.writing:逼迫克制写入。
创建聚集
点击创建collection,其中主键字段有两个类型:
https://i-blog.csdnimg.cn/direct/99dd321162b340f69f28e6c0f3c7d03a.png
向量字段:
https://i-blog.csdnimg.cn/direct/92c2c67f5305441e83b5466f7150480e.png
标量字段:
https://i-blog.csdnimg.cn/direct/e9722b3ed57e4f5b94d4e80219967f23.png
https://i-blog.csdnimg.cn/direct/9c61fc16d73d4dff85d5aebddbc1bb37.png
https://i-blog.csdnimg.cn/direct/1c248fe449044378bc71af844acd2460.png
https://i-blog.csdnimg.cn/direct/d605deedd5544572938af786c56f8c4c.png
点击分词器右侧的设置按钮:
https://i-blog.csdnimg.cn/direct/ecc830df7559483db6493b078ccdf784.png
选择同等性:
https://i-blog.csdnimg.cn/direct/4b2e2b5f9bd741cd8752892d3c4d48c8.png
信息量非常大:
[*]主键字段支持重命名,一般建议使用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
如下图
https://i-blog.csdnimg.cn/direct/1ae6ae1d661c491496f563eabc8d4b5f.png
创建聚集时,如果没有勾选加载,或加载后点击开释,则不再可用于搜索:
https://i-blog.csdnimg.cn/direct/16e90dc866574507aa057764d339cd38.png
创建索引
创建聚集时,默认自动创建索引,且类型为AUTOINDEX,可修改索引:
[*]先删除
[*]再创建
https://i-blog.csdnimg.cn/direct/6f8d98dec9e349d0b3e208f2ea0e96d9.png
主键ID字段,是标量字段;
在标量字段上创建索引:
https://i-blog.csdnimg.cn/direct/612dcda5de434284ae9492b8b6477c9d.png
如上图,标量索引包括:
[*]Trie
[*]HASH
[*]BTREE
[*]SLOT_SORT
[*]BITMAP
[*]INVERTED
在向量字段上创建索引:
https://i-blog.csdnimg.cn/direct/492871e975234cb886caecc6da147db8.png
如上图,向量索引包括:
[*]内存索引
[*]HNSW
[*]IVF_FLAT
[*]IVF_PQ
[*]IVF_SQ8
[*]FLAT
[*]SCANN
[*]磁盘索引
[*]DISKANN
[*]GPU索引
[*]GPU_CAGRA
[*]GPU_IVF_FLAT
[*]GPU_IVF_PQ
[*]GPU_BRUTE_FORCE
关于索引类型,这些概念实际上是Milvus里的知识点。敬请等待鄙人写出Milvus博客。
数据导入
https://i-blog.csdnimg.cn/direct/12dce7d6dde745e2898a90ff6b718618.png
向量检索
未加载的聚集,无法实行向量搜索。
https://i-blog.csdnimg.cn/direct/b0bc117b0f234da79e726ef431012851.png
过滤表达式
https://i-blog.csdnimg.cn/direct/b358f4b335744a85bd2416eea1192d52.png
如上图:
[*]可以添加多个添加,并设置与(AND)、或(OR);
[*]表达式可以复制出来;
[*]metadata是一个JSON字段,会自动让用户选择一个key字段;
[*]Logic可选项如下:
https://i-blog.csdnimg.cn/direct/6040dfb4b9214e6393f163b603fa9d3c.png
还可以将整个查询表达式导出为客户端查询code:
https://i-blog.csdnimg.cn/direct/9ce59c90594544c1a869c825dbaeebe4.png
现在仅支持Python和Node JS,此功能还是Beta版(查询条件不美满):
https://i-blog.csdnimg.cn/direct/4821acba3169414ba09bb4cbb169ab5c.png
Segment
数据段
压缩,Compact
落盘,Flush
聚集属性
聚集创建成功后,会看到一个属性列表:
https://i-blog.csdnimg.cn/direct/d7cd75e50f774f6ebcc9376530ae8795.png
包括:
[*]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秒动态刷新)
https://i-blog.csdnimg.cn/direct/fb02f96516c74cdb979aa438001693d4.png
点击Nodes子节点,可进入节点列表视图,检察子节点列表及状态。通过排序,可以迅速定位到高CPU或高内存占用节点,方便排盘问题。
https://i-blog.csdnimg.cn/direct/ef6b668290704ace999fc35cbf7be39d.png
进阶
高可用
自建集群
云产品
使用云产品,如阿里云。
监控诉警
可供参考的监控指标示例
规则名称监控项指标采样周期报警规则milvus_ProcessResidentMemoryUtilization内存使用率60秒连续5个周期均匀值 >= 80%,则发出告警milvus_ProcessCPUUtilizationCPU使用率60秒连续5个周期均匀值 >= 90%,则发出告警 实现思路
Prometheus采集Milvus服务器(或pod)指标数据
参考
[*]Milvus图形化管理工具Attu来袭
[*]Milvus同等性
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]