【AI】十.大模型必备技术Milvus向量数据库 小滴课堂讲师 2025年09月18日 ai大模型, aigc 预计阅读 44 分钟 #### 向量数据库介绍和技术选型思考 ##### 为什么要用向量数据库,不能用MySQL存储 * 文档块通过嵌入模型处理后得到对应向量,下一步就是将向量存储到数据库中,方便后续进行检索使用  * 传统数据库的局限性 * **维度灾难**:传统索引(B-Tree/Hash)在100+维度时效率断崖式下降,无法高效处理高维向量(常达768-1536维) * **相似度计算**:无法高效处理余弦相似度/Euclidean距离等复杂运算 * **实时性要求**:亿级向量场景下传统方案响应延迟高达秒级,暴力搜索时间复杂度O(N) ```python // 传统关系型数据库查询(精确匹配) SELECT * FROM products WHERE category = 'electronics'; // 向量数据库查询(相似度匹配) Find top5 similar_products where description ≈ '高性能游戏本' ``` * 向量数据库的核心能力 * **相似性搜索**:余弦相似度/欧式距离 * **混合查询**:向量搜索 + 传统条件过滤 * **动态扩展**:支持实时数据更新 * **高效存储**:压缩向量存储技术 * 向量数据库典型应用场景 | 场景 | 案例 | 核心需求 | | :--------: | :-------------: | :------------: | | 推荐系统 | 电商商品推荐 | 高并发低延迟 | | 语义搜索 | 法律条文检索 | 高精度召回 | | AI代理记忆 | GPT长期记忆存储 | 快速上下文检索 | | 图像检索 | 以图搜图系统 | 多模态支持 | ##### 主流的向量数据库介绍 * 开源向量数据库 * **Milvus** - **核心优势**:分布式架构支持千亿级向量规模,QPS超百万级,提供HNSW、IVF-PQ等多样化索引算法,支持高并发场景如金融风控、生物医药分子库检索。 - **优点**:高扩展性、多租户支持、完整的API生态(Python/Java/Go等)。 - **缺点**:部署复杂度高,运维成本较大,适合有专业团队的企业。 * **Qdrant** - **核心优势**:基于Rust开发,支持稀疏向量检索(速度提升16倍),内置标量量化和产品量化技术优化存储效率,适合电商推荐、广告投放等高并发场景。 - **优点**:高性能过滤、云原生设计,支持地理空间和混合数据类型。 - **缺点**:社区生态较新,文档和案例相对较少。 * 云原生服务 * **Pinecone** - **核心优势**:全托管服务,实时数据更新延迟低于100ms,支持Serverless计费(按查询付费),适合SaaS快速集成和中小型企业。 - **优点**:零运维、低延迟、无缝集成LangChain生态。 - **缺点**:成本较高,大规模数据场景费用显著。 * **腾讯云VectorDB** - **核心优势**:国产化方案,单索引支持千亿向量,集成AI套件实现文档自动向量化,适合政务、金融等数据主权敏感场景。 - **优点**:端到端RAG解决方案,与腾讯云生态深度整合。 - **缺点**:依赖腾讯云生态,跨云部署受限。 * 轻量级工具 * **Chroma** - **核心优势**:没有深厚数据库背景的开发者也能快速上手,5分钟完成单机部署,适合学术研究、初创团队验证。 - **优点**:开发友好、快速原型验证,支持LangChain集成。 - **缺点**:不适合生产级大规模应用,功能有限。 * **Faiss** - **核心优势**:Meta开源的GPU加速检索库,百万级向量查询延迟低于10ms,常作为其他数据库的底层引擎。 - **优点**:性能标杆、算法丰富,支持混合检索架构。 - **缺点**:无托管服务,需自行处理分布式与高可用性。 * 传统数据库扩展 * **MongoDB Atlas** - **核心优势**:文档数据库嵌入向量索引,支持每个文档存储16MB向量数据,适合已有MongoDB基础设施的企业智能化升级。 - **优点**:事务处理与向量检索一体化,兼容现有业务逻辑。 - **缺点**:向量检索性能弱于专用数据库,扩展性受限。 * 其他:PostgreSQL、ElasticSearch等 * 综合选型对比 | 维度\产品 | Pinecone | Milvus | Qdrant | Chroma | | :----------: | :--------: | :-----------: | :-----------: | :------: | | **部署模式** | 全托管 | 自建/云 | 自建/云 | 嵌入式 | | **学习曲线** | 简单 | 复杂 | 中等 | 极简 | | **扩展能力** | 自动扩展 | 手动分片 | 自动分片 | 单机 | | **典型场景** | 生产级SaaS | 企业私有云 | 高性能需求 | 本地开发 | | **成本模型** | 按用量付费 | 基础设施+运维 | 基础设施+运维 | 免费 | ##### 技术选型建议 * **数据规模** - **十亿级以上**:选择Milvus、腾讯云VectorDB等分布式方案。 - **百万级以下**:轻量级工具如Chroma或Faiss。 * **部署复杂度** - **云服务优先**:中小企业选Pinecone或腾讯云VectorDB,省去运维成本。 - **私有化部署**:大型企业选Milvus、Qdrant,需专业团队支持。 * **成本考量** - **开源方案**:Milvus、Qdrant适合长期可控成本。 - **按需付费**:小规模试用选Pinecone Serverless。 * **生态兼容性** - **国产化需求**:腾讯云VectorDB或华为云等国产方案。 - **现有技术栈**:PostgreSQL/MongoDB扩展适合渐进式改造。 ##### 总结 * 向量数据库的选择需结合数据规模、业务场景、团队能力和成本预算综合评估。 * 对于AI驱动的应用(如RAG、多模态搜索),建议优先考虑云原生或分布式开源方案(如Milvus、Pinecone); * 传统业务系统可尝试数据库扩展插件以降低迁移成本,具体案例可参考各数据库的官方文档 #### 向量数据库Milvus介绍和架构讲解 ##### 什么是Milvus向量数据库 * 地址:https://milvus.io/ * 一种高性能、高扩展性的向量数据库,可在从笔记本电脑到大规模分布式系统等各种环境中高效运行。 * 可以开源软件的形式提供,也可以云服务的形式提供 * 核心能力:高性能、可扩展、低延迟,支持多种相似度计算方式(如欧氏距离、余弦相似度)。 | 维度 | 指标/能力 | | :--------: | :-----------------------------------------: | | 数据规模 | 支持**千亿级向量**,PB级存储 | | 查询性能 | 亿级向量**亚秒级响应**(GPU加速) | | 扩展性 | 水平扩展,支持**动态增删节点** | | 查询类型 | 相似度搜索、混合查询、多向量联合查询 | | 生态兼容性 | 支持Python/Java/Go/REST API,整合主流AI框架 | * 适用场景:推荐系统、图像检索、自然语言处理(NLP)等 * 全球大厂使用者 ##### 支持部署的架构 * Milvus提供多种部署选项,包括本地部署、Docker、Kubernetes on-premises、云SaaS和面向企业的自带云(BYOC) * Milvus Lite 是一个 Python 库,轻量级版本,适合在 Jupyter Notebooks 中进行快速原型开发,或在资源有限的边缘设备上运行 * Milvus Standalone 是单机服务器部署,所有组件都捆绑在一个 Docker 镜像中,方便部署 * Milvus Distributed 可部署在 K8S 集群上,采用云原生架构,适合十亿规模甚至更大的场景,该架构可确保关键组件的冗余。 ##### Milvus 架构解析 * 数据处理流程 :插入数据 → 生成日志 → 持久化到存储层 → 构建索引 → 支持查询。 | 组件名称 | 核心职责 | 关键特性 | | :-------------: | :----------------------------------------------------------: | :---------------------------: | | **Proxy** | 客户端请求入口,路由转发,负载均衡与协议转换(gRPC/RESTful) | 支持负载均衡、连接池管理 | | **Query Node** | 执行向量搜索,标量过滤,向量相似度计算与混合过滤 | 内存索引加载,GPU加速支持 | | **Data Node** | 处理数据插入、日志流处理与数据持久化存储 | 写入日志(WAL)保障数据一致性 | | **Index Node** | 负责索引构建与优化 | 支持后台异步构建索引 | | **Coordinator** | 集群元数据管理、任务调度 | 高可用部署(etcd存储元数据) | ##### 极速认知存储内容 * Collection 是一个二维表,具有固定的列和变化的行。 * 每列代表一个字段,每行代表一个实体。 * 下图显示了一个有 8 列和 6 个实体的 Collection  #### Milvus核心概念和数据结构讲解 ##### 向量数据库对比关系型数据库 | Milvus 向量数据库 | 关系型数据库 | | :---------------- | :----------- | | Collection | 表 | | Entity | 行 | | Field | 表字段 | ##### 基础数据结构 * **Collection(集合)** - 类比关系型数据库的“表”,用于存储和管理一组具有相同结构的实体(Entity) - Schema 定义字段结构(主键、向量、标量字段),支持动态字段(Milvus 2.3+),自动生成唯一ID(可选) - 例子 ```python pip install pymilvus==2.5.5 from pymilvus import FieldSchema, CollectionSchema, DataType # 定义字段 fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True), FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=768), FieldSchema(name="category", dtype=DataType.VARCHAR, max_length=50) ] # 创建集合 schema = CollectionSchema(fields, description="商品向量库") collection = Collection(name="products", schema=schema) ``` * **Entity(实体)** - 数据的基本单位,包含多个字段(Field),如主键、标量字段(结构化数据)和向量字段。 - 主键(Primary Key):唯一标识实体,支持整数或字符串类型。 - 注意:Milvus 目前不支持主键去重,允许重复主键存在 - 组成要素 - **主键**:唯一标识(支持整数/字符串) - **向量**:浮点数组(维度需固定) - **标量字段**:元数据(文本/数值/布尔) - 数据存储示意图 | ID (INT64) | Vector (FLOAT_VECTOR[768]) | Category (VARCHAR) | Price (FLOAT) | | ---------- | -------------------------- | ------------------ | ------------- | | 1001 | [0.12, 0.34, ..., 0.98] | "Electronics" | 299.99 | | 1002 | [0.55, 0.21, ..., 0.11] | "Clothing" | 89.99 | * **字段(Field)** * 标量字段:存储数值、字符串等结构化数据,支持过滤查询(如 price < 100)。 * 向量字段:存储高维向量(如512维浮点数组),支持相似性搜索 * **查询方式(Query)** * 向量搜索:输入一个向量,返回最相似的 Top-K 结果。 * 混合查询:结合向量相似度和标量过滤条件(如“价格 < 100”) * **数据组织与扩展** * **分区(Partition)** - 逻辑划分集合数据,用于优化查询性能(如按时间或地域分区)。 - 每个分区可包含多个分片(Sharding)和段(Segment),查询时按分区减少扫描范围 * **分片(Sharding)** - 数据写入时分散到不同节点,实现并行写入。 - 默认每个集合分2个分片,基于主键哈希分配 * **段(Segment)** - 物理存储单元,自动合并插入数据形成数据文件。 - 段分为“增长段”(持续写入)和“密封段”(持久化存储),查询时合并所有段结果 * **索引**(类似MySQL有多个不同索引类型) * 一种特殊的数据结构,用于快速查找和访问数据,存储在内存中. 本身不存储数据,是存储指向数据存储位置的指针或键值对。 * Milvus索引基于原始数据构建,提高对 collection 数据搜索的速度,一个向量字段仅支持一种索引类型。 * 为提高查询性能,Milvus 支持多种索引类型,可以为每个向量字段指定一种索引类型。 * 索引类型(先大体知道即可) | 索引类型 | 适用场景 | 内存消耗 | 精度 | 构建速度 | | :------: | :--------------: | :------: | :--: | :------: | | FLAT | 小数据集精准搜索 | 高 | 100% | 快 | | IVF_FLAT | 平衡型场景 | 中 | 98% | 较快 | | HNSW | 高召回率需求 | 高 | 99% | 慢 | | IVF_PQ | 超大规模数据 | 低 | 95% | 快 | ##### 相似度计算 * **欧氏距离(Euclidean Distance L2)** * 数值越小越相似,理解为两个向量为两个点,欧式距离就是这两个点的直线距离 * 两点之间的距离,最小值为0,最大值不确定 * 两个点的距离,距离越近,则相似度越高,距离越大,则差异性越大 * **内积(Inner Product 简写 IP)** * 内积又称之为点积,数值越大越相似 `a·b=|a||b|cosθ ` ``` # 向量A = [a1, a2,..., an] # 向量B = [b1, b2,..., bn] IP = a1*b1 + a2*b2 + ... + an*bn ``` * **余弦相似度(Cosine)** * 基于向量夹角的相似度。 #### Milvus的分区-分片-段结构和最佳实践 * 分区-分片-段 很多同学懵逼,用图书馆比喻理解三者关系 * 想象管理一个超大型图书馆(类比 **Collection** 集合),里面存放了上亿本书。 * 为了更好地管理图书,用了三种组织方式 * **分区(Partition)**:按书籍**主题**划分区域 * 比如:1楼科技区、2楼文学区、3楼艺术区 * **作用**:快速定位某一类书籍,避免全馆搜索 * **类比**:电商平台按商品类别(电器/服装/食品)分区存储 * **分片(Shard)**:每个主题区内设置**多个平行书架** * 比如:科技区分成10个相同结构的书架,每个书架存100万本 * **作用**:多人同时查找时,不同书架可并行工作 * **类比**:分布式系统中用分片实现水平扩展 * **段(Segment)**:每个书架上的**可拆卸书盒** * 比如:每个书架由多个书盒组成,新书先放临时盒,写满后密封成固定盒 * **作用**:优化存储空间,旧书盒可压缩归档 * **类比**:数据库将数据分块存储,便于后台合并优化 * 三者协作关系 | 维度 | 分区(Partition) | 分片(Shard) | 段(Segment) | | :--------: | :---------------: | :--------------------: | :----------------: | | **层级** | 逻辑划分 | 物理分布 | 物理存储单元 | | **可见性** | 用户主动创建管理 | 系统自动分配 | 完全由系统管理 | | **目的** | 业务数据隔离 | 负载均衡与扩展 | 存储优化与查询加速 | | **类比** | 图书馆的不同楼层 | 楼层内的多个相同书架 | 书架上的可替换书盒 | | **操作** | 手动指定查询分区 | 自动路由请求到不同节点 | 自动合并/压缩 | ##### 实际工作流程例子 * **场景**:用户上传10万条商品数据到电商平台 * **分区阶段** * 按业务维度划分(如用户ID、时间范围), 示例:`partition_2024Q1`, `vip_users` ```python # 按商品类别创建分区 # 电子产品存入electronics分区 collection.create_partition("electronics") # 服装类存入clothing分区 collection.create_partition("clothing") ``` * **分片阶段(自动完成)** * 系统自动将数据均分到3个分片(假设集群有3个节点) * **段阶段(自动完成)** * 分片内数据按512MB大小自动切割成多个段 * 三者协作原理 * **写入过程** ``` 新数据 → 选择分区 → 分配到分片 → 写入活跃段 → 段写满后冻结 → 生成新段 ``` * **查询过程** ``` 用户请求 → 定位分区 → 并行查询所有相关分片 → 各分片扫描所有段 → 合并结果排序 ``` * **合并优化** ```python # 自动将小段合并成大段(类似HBase Compaction) [Segment1(100MB)] + [Segment2(100MB)] → [SegmentMerged(200MB)] ``` * 注意: 分区的意义是通过划定分区减少数据读取,而分片的意义在于多台机器上并行写入操作。 **开发注意事项** * **分区使用技巧** - 按时间分区:`2023Q1`, `2023Q2` - 按业务线分区:`user_profiles`, `product_info` - **错误示范**:创建超过1000个分区(影响元数据性能) ```python # 好的实践:按时间分区 client.create_partition( collection_name="logs", partition_name="2024-01" ) # 坏的实践:每个用户一个分区(容易超过限制) ``` * **分片配置建议** * ❌ 8核机器设置128分片 → 线程频繁切换导致性能下降 * ✅ 使用公式:`分片数 = 节点数 × CPU核心数` | 分片数少 | 分片数多 | | :------------: | :------------: | | 单分片数据量大 | 单分片数据量小 | | 写入吞吐低 | 写入吞吐高 | | 易成性能瓶颈 | 资源消耗大 | ```python # 创建集合时指定 collection = Collection( name="product_images", shards_num=64, # 分片数 = 8台 × 8核 = 64 partitions=[ "electronics", "clothing", "home_appliances" ] ) # 调整段配置 client.set_property("dataCoord.segment.maxSize", "1024") # 1GB client.set_property("dataCoord.segment.sealProportion", "0.7") ``` * 段优化策略 * 监控段大小:`collection.get_segment_info()` * 手动触发合并:`collection.compact()` * 设置段容量阈值:`storage.segmentSize=1024` (单位MB) * 根据数据特性调整 ```python if 向量维度 > 1024: maxSize = 512 # 降段大小缓解内存压力 else: maxSize = 1024 ``` #### Milvus部署架构选择和Docker部署实战 ##### 部署架构选择 * 选择取决于项目的阶段和规模,Milvus 为从快速原型开发到大规模企业部署的各种需求提供了灵活而强大的解决方案。 - **Milvus Lite**建议用于较小的数据集,多达几百万个向量, 不支持WINDOWS系统。 - **Milvus Standalone**适用于中型数据集,可扩展至 1 亿向量。 - **Milvus Distributed 专为**大规模部署而设计,能够处理从一亿到数百亿向量的数据集。  * Milvus分层架构(Docker部署都包括了) ```python ┌───────────────────────────────┐ │ Coordinator │ ← 管理元数据、负载均衡 ├───────────────┬───────────────┤ │ Query Node │ Data Node │ ← 处理查询与数据存储 ├───────────────┴───────────────┤ │ Object Storage (S3) │ ← 持久化存储(可选MinIO、AWS S3) └───────────────────────────────┘ ``` * Milvus Standalone 是单机服务器部署,所有组件都打包到一个Docker 镜像中,部署方便。 * 此外,Milvus Standalone 通过主从复制支持高可用性。 * 有钱的当我没说,直接购买云厂商的服务:https://help.aliyun.com/zh/milvus * LInux服务器部署Milvus实战 * 阿里云网络安全组记得开放端口 `2379`、`9091`, `19530` * 注意: 默认没加权限校验,生产环境使用一般都是内网,结合配置IP白名单 * standalone_embed.sh脚本 ```sh #!/usr/bin/env bash run_embed() { cat << EOF > embedEtcd.yaml listen-client-urls: http://0.0.0.0:2379 advertise-client-urls: http://0.0.0.0:2379 quota-backend-bytes: 4294967296 auto-compaction-mode: revision auto-compaction-retention: '1000' EOF cat << EOF > user.yaml # Extra config to override default milvus.yaml EOF if [ ! -f "./embedEtcd.yaml" ] then echo "embedEtcd.yaml file does not exist. Please try to create it in the current directory." exit 1 fi if [ ! -f "./user.yaml" ] then echo "user.yaml file does not exist. Please try to create it in the current directory." exit 1 fi sudo docker run -d \ --name milvus-standalone \ --security-opt seccomp:unconfined \ -e ETCD_USE_EMBED=true \ -e ETCD_DATA_DIR=/var/lib/milvus/etcd \ -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \ -e COMMON_STORAGETYPE=local \ -e COMMON_SECURITY_AUTHORIZATIONENABLED=true \ -v $(pwd)/volumes/milvus:/var/lib/milvus \ -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \ -v $(pwd)/user.yaml:/milvus/configs/user.yaml \ -p 19530:19530 \ -p 9091:9091 \ -p 2379:2379 \ --health-cmd="curl -f http://localhost:9091/healthz" \ --health-interval=30s \ --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ milvusdb/milvus:v2.5.6 \ milvus run standalone 1> /dev/null } wait_for_milvus_running() { echo "Wait for Milvus Starting..." while true do res=`sudo docker ps|grep milvus-standalone|grep healthy|wc -l` if [ $res -eq 1 ] then echo "Start successfully." echo "To change the default Milvus configuration, add your settings to the user.yaml file and then restart the service." break fi sleep 1 done } start() { res=`sudo docker ps|grep milvus-standalone|grep healthy|wc -l` if [ $res -eq 1 ] then echo "Milvus is running." exit 0 fi res=`sudo docker ps -a|grep milvus-standalone|wc -l` if [ $res -eq 1 ] then sudo docker start milvus-standalone 1> /dev/null else run_embed fi if [ $? -ne 0 ] then echo "Start failed." exit 1 fi wait_for_milvus_running } stop() { sudo docker stop milvus-standalone 1> /dev/null if [ $? -ne 0 ] then echo "Stop failed." exit 1 fi echo "Stop successfully." } delete_container() { res=`sudo docker ps|grep milvus-standalone|wc -l` if [ $res -eq 1 ] then echo "Please stop Milvus service before delete." exit 1 fi sudo docker rm milvus-standalone 1> /dev/null if [ $? -ne 0 ] then echo "Delete milvus container failed." exit 1 fi echo "Delete milvus container successfully." } delete() { delete_container sudo rm -rf $(pwd)/volumes sudo rm -rf $(pwd)/embedEtcd.yaml sudo rm -rf $(pwd)/user.yaml echo "Delete successfully." } upgrade() { read -p "Please confirm if you'd like to proceed with the upgrade. The default will be to the latest version. Confirm with 'y' for yes or 'n' for no. > " check if [ "$check" == "y" ] ||[ "$check" == "Y" ];then res=`sudo docker ps -a|grep milvus-standalone|wc -l` if [ $res -eq 1 ] then stop delete_container fi curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed_latest.sh && \ bash standalone_embed_latest.sh start 1> /dev/null && \ echo "Upgrade successfully." else echo "Exit upgrade" exit 0 fi } case $1 in restart) stop start ;; start) start ;; stop) stop ;; upgrade) upgrade ;; delete) delete ;; *) echo "please use bash standalone_embed.sh restart|start|stop|upgrade|delete" ;; esac ``` * 执行脚本。(**开启了认证,默认用户名/密码:root/Milvus**) ```python #启动 bash standalone_embed.sh start #停止 bash standalone_embed.sh stop #删除 bash standalone_embed.sh delete #升级 bash standalone_embed.sh upgrade ``` * 运行安装脚本后 - 一个名为 Milvus 的 docker 容器已在**19530** 端口启动。 - 嵌入式 etcd 与 Milvus 安装在同一个容器中,服务端口为**2379**。 - Milvus 数据卷被映射到当前文件夹中的**volumes/milvus** - 访问 `http://${MILVUS_PROXY_IP}:9091/webui` 例子: http://47.119.128.20:9091/webui/ * 注意 * Milvus Web UI 与 Attu等可视化工具 不同,它是一个内置工具,只是提供简单直观的界面,查看系统的基本信息 * 主要功能:运行环境、数据库/ Collections 详情、任务和慢查询请求,不支持数据库管理和操作任务 * 参考:https://milvus.io/docs/zh/milvus-webui.md #### Milvus可视化客户端安装实战 ##### Attu 可视化客户端介绍 * 是一款专为 **Milvus 向量数据库**设计的开源图形化管理工具,通过直观的界面简化了数据库的日常操作与维护流程 * **跨平台支持**:提供 Docker 镜像,适配 Windows、Linux 和 macOS * **开箱即用**:无需编写代码即可完成 Milvus 的日常管理,降低学习成本 * **社区与生态**:由 Zilliz 团队维护,与 Milvus 深度集成,持续更新功能 * **版本兼容性**:注意 Attu 与 Milvus 版本的匹配,避免接口不兼容问题【**当前安装的Milvus版本 V2.5X**】 * GitHub地址:https://github.com/zilliztech/attu * 核心功能 * 数据库与集合管理 * 数据库管理:支持创建、删除数据库,默认提供 default 数据库且不可删除。 * 集合(Collection)操作:可创建集合、定义字段(主键、标量字段、向量字段)、构建索引,并支持数据导入/导出。 * 分区与分片:支持按业务需求划分分区(如按时间或用户组),优化查询效率;默认分片数为 2,支持水平扩展。 * 向量检索与混合查询 * 相似性搜索:输入向量即可快速检索 Top-K 相似结果,支持欧氏距离(L2)、余弦相似度等度量方式。 * 标量过滤:通过 Advanced Filter 功能结合标量字段(如价格、标签)进行条件筛选,提升搜索精准度。 * 数据加载与释放:可将数据加载至内存加速检索,或释放内存以优化资源占用。 * 用户与权限管理 * 多角色权限控制:支持创建用户与角色,并分配细粒度权限(如全局权限、集合操作权限)。 * 权限类型:涵盖数据插入、删除、查询等操作, * 例如: * 全局权限:创建/删除数据库、管理资源组。 * 集合权限:加载/释放数据、构建索引、执行搜索。 * 用户权限:更新用户凭证、查询用户信息 * 安装实战(根据系统选择对应的客户端下载,输入ip+端口)
评论区