关键概念
向量(Vector)
向量是一组数值的有序集合,通常用于表示对象或事物的属性或特征。这些数值可以有不同的维度,每个维度代表一个属性或特征。在计算机科学中,向量通常以一维数组的形式表示。在机器学习和人工智能领域,向量用于表示图像、文本、音频等数据类型,通过计算向量之间的距离或相似度实现分类、聚类、检索等任务。
莫愁
百度向量数据库内核系统的名称为“莫愁”(Mochow),灵感来源于中国古诗“莫愁前路无知己,天下谁人不识君”,寓意系统的智能和能力。
实例(Instance)
实例是百度云中独立运行的数据库环境,是用户购买向量数据库服务的基本单位。它以单独的进程存在,并可以包含多个用户创建的数据库。用户可以在控制台创建、修改和删除实例。实例之间相互独立、资源隔离,避免了资源抢占的问题。
分片(Shard)
分片是数据库技术中将数据分布存储在不同节点上的方法。一个集合通常会按某个维度分成多个部分,每个部分就是一个分片,分布在不同的节点上。这种方法提高了数据库的性能和可扩展性。
副本(Replica)
副本是同一个分片的备份数据,至少包含三个副本。副本作为硬件故障时的冗余备份,保护数据不丢失,并为读操作如向量检索和文档查询提供服务,确保数据库在节点故障和负载变化时的正常运行。
数据库(Database)
数据库是按照数据结构来组织、存储和管理数据的仓库。每个数据库实例可以创建并包含多个数据库。
数据表(Table)
在向量数据库中,数据表(或集合)类似于关系型数据库中的表,包含多条文档数据。数据表没有固定的结构,可以存储不同格式和类型的数据。支持多分片、多副本特性,可按需指定分片数和副本数。
字段(Field)
字段是文档中的一个属性或数据项,表示为键值对(key:value)。每个字段都有自己的类型和取值范围,可以是字符串、数字等不同类型的数据。
记录(Row)
在向量数据库中,记录可以指的是一个文档或数据实体,相当于关系型数据库中的一行数据。
索引(Index)
索引是一种特殊的数据结构,用于快速查找和访问数据,主要存储在内存中。索引本身不存储数据,而是存储指向数据存储位置的指针或键值对。Baidu Cloud VectorDB 支持如HNSW等常见的向量索引类型。
ANN(Approximate Nearest Neighbor Search)
近似最近邻搜索(ANN)是一种用于高维数据空间中快速查找最近邻点的方法。相比精确最近邻搜索,ANN牺牲了一定的精度以换取更高的搜索速度,在处理大规模数据集时具有较高的效率。ANN方法通常会对数据进行预处理,减少查询时的计算距离次数。
HNSW(Hierarchical Navigable Small World)
HNSW是一种基于图的高维向量相似性搜索算法,通过构建层次化图结构来表示向量间的相似度关系,使用优化策略加速搜索过程。
PUCK
PUCK是一种类似于IVF的厂内自研搜索算法,在海量数据时比HNSW更具优势。