Collection 是一组具有相似属性的文档集合,相当于关系型数据库中的表。在向量数据库中,数据存储为 Document,一组文档构成一个 Collection,一个 Database 中可以包含多个 Collection。
管理集合
腾讯云向量数据库(Tencent Cloud VectorDB)提供了一组 API 接口,用于创建、删除和查看数据库中的集合,方便管理数据库的集合。如下表所示。
API 接口 | 功能 | SDK | 详细信息 |
创建集合 | Python:create_collection() Java:createCollection() | 创建集合,需指定分片数、副本数、主键索引、向量索引(包括索引类型、相似度计算方法)、Filter 索引等。 应用 Embedding 功能, 创建 Collection 时,需指定 Embedding 模型,并配置相关参数。 | |
删除集合 | Python:drop_collection() Java:dropCollection()
| 删除操作将清除集合下的所有数据。 | |
展示指定 Database 下的所有集合列表 | Python:list_collections() Java:listCollections() | 展示数据库下所有的集合。 | |
返回指定集合的详细信息 | Python:describe_collection() Java:describeCollection()
| 展示指定集合的分片/副本配置、状态、文档数量、创建时间等详细信息。 | |
清空集合 | Python:truncate_collection() Java:truncateCollections() | 清空集合中所有数据与索引。 |
副本和分片
创建 Collection 时可以根据预估数据规模和业务需求,指定集合的副本数和分片数。
分片数量:可根据数据规模判断,单分片数据量建议控制在300万以内,例如,若某个 Collection 有500万向量,可设置2个分片。如果数据量小于300万,建议使用1分片。系统对1分片有特定优化,可显著提升性能。当前支持的分片数量最小为1分片,最大为100分片。
副本数量:可以根据业务容灾以及吞吐量来判断,当前支持的副本数量两可用区最少为1个(不包含主节点),三可用区最少为2个,最大不超过实例的节点数量。搜索请求量越高的索引,建议设置越多的副本数,避免负载不均衡。并且,副本默认为可读,可以分担主节点的读压力,提升系统性能。
动态 Schema
腾讯云向量数据库(Tencent Cloud VectorDB)支持在创建 Collection 时灵活扩展标量字段,同时支持在更新数据时新增字段。这意味着用户无需预先定义所有的字段,可以根据需要在插入数据时自动识别并调整模式。这种设计使得 VectorDB 更加灵活和易于使用,同时也避免了预定义所有字段带来的限制。具体规则如下:
使用 /collection/create 接口创建 Collection 时,仅需根据不同 Index 类型指定索引字段即可。
使用 /document/upsert 接口写入数据时,可灵活增加或删除标量字段,数据库会自动识别并调整模式。
使用 /document/update 接口更新数据时,支持更新已有字段的数据,支持新增字段。
Index
腾讯云向量数据库具备 Schemaless 特性。即不需要预先定义模式,便可以将任意数量和类型的字段添加到 Document 中。使用时,仅需关注需要构建索引的字段。索引的具体信息,请参见 Index。