Milvus向量数据库01-基础概念

Milvus向量数据库01-基础概念

Zilliz Cloud 集群由全托管 Milvus 实例及相关计算资源构成。您可以在 Zilliz Cloud 集群中创建 Collection,然后在 Collection 中插入 Entity。Zilliz Cloud 集群中的 Collection 类似于关系型数据库中的表。Collection 中的 Entity 类似于表中的记录。

1-集群

在 Zilliz Cloud 上创建集群时,您需要选择集群 CU 类型。CU 类型有 2 种选项:性能型和容量型。不同 CU 类型的区别,请阅读选择合适的 CU 类型

确定 CU 类型后,您还需要选择 CU 大小。CU 大小决定了集群可容纳的 Collection 数量。在 Dedicated 集群中,每个计算单元(CU)可最多容纳 64 个 Collection,并且每个集群中的 Collection 总数不能超过 4096。有关限制的更多信息,请阅读使用限制

集群中的所有 Collection 共享 CU 资源。为节省 CU 资源,我们推荐您将一些不再使用的 Collection 从 CU 中释放出来。Collection 被释放后,其中的数据被转移到磁盘存储,从而可以释放 CU 资源以供其他已加载的 Collection 使用。需要查询已被卸载的 Collection 时,您可以将其重新加载至内存中。请注意,Collection 加载需要等待一段时间,因此我们不推荐频繁卸载和加载 Collection。

2-Collection

Collection 是一张二维数据表,包含固定列数和可变行数。Collection 数据表中的每 1 列对应 1 个字段,每 1 行表示 1 个 Entity。

下图中的示例 Collection 包含 6 个 Entity 和 8 个字段。

字段

通常我们会根据属性(如大小、重量、位置等)描述对象。对象属性类似于 Collection 中的字段。

Collection 中,主键是最特殊的字段,每个主键字段的值唯一且不重复。每 1 个主键都可以对应 Collection 中的 1 条 Entity 记录。如上图所示, 示例 Collection 中的 id 字段是主键。第 1 个 ID 0 对应标题为《The Mortality Rate of Coronavirus is Not Important》的文章。Collection 中的任何其他文章的 ID 都不会为 0

Schema

每个字段都具有自己的属性------字段中数据类型和相关限制(如向量维度和相似性类型)。通过定义字段及顺序,您的 Collection 会有 1 个 Schema,也就是 1 个数据结构框架。Collection Schema 类似于传统数据表的结构。

关于 Schema 中支持使用的数据类型,可参考Schema

索引

与 Milvus 实例不同,Zilliz Cloud 集群仅支持 AUTOINDEX 索引。该索引类型针对 Zilliz Cloud 提供的 3 种 CU 进行了优化。更多详情,请阅读 AUTOINDEX

3-Entity

Collection 中的 Entity 是指共享相同字段集的数据记录。存储在每个字段中的数据共同形成 1 个 Entity。

您可以向 Collection 中添加任意数量的 Entity。但是,随着 Entity 数量和维度增加,Entity占用的内存大小也会增加,影响 Collection 的搜索性能。

更多内容,可参考本手册 Schema 一节以合理规划您的 Collection。

4-Load 和 Release

对 Collection 执行 Load 操作是在 Collection 中进行 Search 和 Query 的前提条件。在加载 Collection 时,Zilliz Cloud 会将所有向量列的索引文件和所有标量列的数据加载到内存,从而快速响应搜索和查询请求。

由于 Search 和 Query 操作会占用较多的内存资源。为了减少资源消耗,您可以对暂时不需要使用的 Collection 执行 Release 操作,将相关数据从内存中释放出来。

在为 Collection 创建索引并将其加载到内存后,您就可以通过输入查询向量、选择相似性类型的方式对 Collection 中的 Entity 进行相似性搜索。例如,您可以将文本 "Interesting Python demo" 对应的向量表示作为查询向量进行搜索,Zilliz Cloud 会在 Collection 中进行相似性查询并返回所有标题语义与查询向量相似的 Entity。

在 Search 和 Query 过程中,您也可以使用过滤条件对某些标量字段进行过滤,找到符合指定条件的所有 Entity。

更多搜索和查询详情,请阅读Search, Query 和 Get

6-Partition

Partition 是从 Collection 中划分而来,和 Collection 保持相同的列数,只包含 Collection 的部分 Entity。

通过将 Entity 分别存入不同的 Partition,Milvus 商业版实现了对 Entity 的隔离与分组。在按 Partition 进行检索时,由于无须关注 Collection 中其它 Partition 的数据,检索效率得到了较大的提升。

关于 Partition 的更多内容,可以查看管理 Partition


7-内容总结

以下是文章内容要点的思维导图:
Zilliz Cloud 开发指南 集群 Collection Entity Load 和 Release Search 与 Query Partition 全托管 Milvus 实例 计算资源 CU 类型选择 CU 大小选择 Collection 数量限制 资源共享 Collection 释放与重新加载 二维数据表 字段 主键 Schema 索引 Entity 存储 字段属性 数据记录 字段数据 Entity 数量与性能 Load 操作 Release 操作 内存资源管理 相似性搜索 查询向量 相似性类型 过滤条件 标量字段过滤 Entity 分组 检索效率提升

详细知识点如下:

集群

  • 全托管 Milvus 实例:Zilliz Cloud 提供的全托管 Milvus 实例。
  • 计算资源:与 Milvus 实例相关的计算资源。
  • CU 类型选择:性能型和容量型两种选项。
  • CU 大小选择:决定了集群可容纳的 Collection 数量。
  • Collection 数量限制:每个 CU 最多 64 个 Collection,总数不超过 4096。
  • 资源共享:所有 Collection 共享 CU 资源。
  • Collection 释放与重新加载:释放 Collection 以节省资源,需要时重新加载。

Collection

  • 二维数据表:包含固定列数和可变行数。
  • 字段:描述对象属性,类似于数据库表中的列。
  • 主键:每个主键字段的值唯一且不重复。
  • Schema:定义字段及顺序的数据结构框架。
  • 索引:Zilliz Cloud 集群仅支持 AUTOINDEX 索引。
  • Entity 存储:Collection 中的 Entity 是共享相同字段集的数据记录。
  • 字段属性:字段中数据类型和相关限制。

Entity

  • 数据记录:存储在每个字段中的数据共同形成 1 个 Entity。
  • 字段数据:每个字段中存储的数据。
  • Entity 数量与性能:Entity 数量和维度增加会影响 Collection 的搜索性能。

Load 和 Release

  • Load 操作:在 Collection 中进行 Search 和 Query 的前提条件。
  • Release 操作:减少资源消耗,将数据从内存中释放出来。
  • 内存资源管理:通过 Load 和 Release 操作管理内存资源。
  • 相似性搜索:通过输入查询向量、选择相似性类型进行搜索。
  • 查询向量:用于搜索的向量表示。
  • 相似性类型:选择不同的相似性类型进行搜索。
  • 过滤条件:使用过滤条件对标量字段进行过滤。
  • 标量字段过滤:找到符合指定条件的所有 Entity。

Partition

  • Entity 分组:从 Collection 中划分而来,包含部分 Entity。
  • 检索效率提升:按 Partition 进行检索,提升检索效率。
相关推荐
amao99887 分钟前
数据库--dataset design
数据库
山沐与山1 小时前
【数据库】PostgreSQL架构与索引深度剖析
数据库·postgresql·架构
不穿格子的程序员1 小时前
Redis篇6——Redis深度剖析:从单机到集群,Redis高可用进化史
数据库·redis·集群·主从·高可用·哨兵
阿坤带你走近大数据1 小时前
什么是元数据管理?(附具体实施方案供参考)
数据库·金融
俊男无期2 小时前
超效率工作法
java·前端·数据库
2301_823438022 小时前
【无标题】解析《采用非对称自玩实现强健多机器人群集的深度强化学习方法》
数据库·人工智能·算法
中国胖子风清扬2 小时前
SpringAI和 Langchain4j等 AI 框架之间的差异和开发经验
java·数据库·人工智能·spring boot·spring cloud·ai·langchain
Elastic 中国社区官方博客2 小时前
Elasticsearch:你是说,用于混合搜索(hybrid search)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
czlczl200209252 小时前
高并发下的 Token 存储策略: Redis 与 MySQL 的一致性
数据库·redis·mysql
虹科网络安全2 小时前
艾体宝产品 | 基准测试:ArangoDB性能碾压Neo4j,速度最高提升8倍!
数据库·neo4j