当前位置: 首页 > 专利查询>李明昊专利>正文

一种向量数据库存储与检索方法技术

技术编号:32627068 阅读:13 留言:0更新日期:2022-03-12 18:00
本发明专利技术涉及计算机与人工智能领域,尤其涉及一种向量数据库存储与检索方法、装置、电子设备及存储介质。该向量数据库存储与检索方法包括:获取数据表,并将数据表水平切分,形成若干分片,其中,每个分片包括多个副本;获取数据,依据数据中所包含的键数据,进行第一次映射,键数据做Hash得到一个整数,依据整数对若干分片取模求余,得到分片号,而后,在进行第二次映射,依据分片号,获取分片号所对的多个副本;其中,分片号用于表征分片,每个分片对应有一个分片号;根据第一次映射和第二次映射为获取数据建立元数据服务器上的向量存储引擎,其中,向量存储引擎用于表征数据的查找方式。本发明专利技术具有提高检索准确率,降低检索延时,增加可靠性和易用性。可靠性和易用性。可靠性和易用性。

【技术实现步骤摘要】
一种向量数据库存储与检索方法


[0001]本专利技术涉及计算机与人工智能领域,具体涉及到分布式存储
,尤其涉及一种向量数据库存储与检索方法。

技术介绍

[0002]随着人工智能应用的普及,“向量相似度检索”作为一个最基本的服务,应用到越来越多的人工智能业务上。比如人脸识别,语音音识别,新闻推荐等。大部分的使用方式都是先用神经网络模型将图片,文本等变成特征向量,再选择一种距离计算方式(比如内积距离,余弦距离等)。这样,任意给定一个向量,就能找到与其距离相近的K个向量。我们把这种检索成为KNN检索(K Nearest Neighbours)。然而,虽然有各种各样的开源算法库用于KNN检索,但大多都只停留在代码库的层面,工程师需要使用编程语言对其进行初始化与调用,这给工程师的使用上带来了一些问题。例如,多人对同一份数据的索引共享以及数据量过大的导致系统性能差的问题等。

技术实现思路

[0003]针对现有技术的上述缺陷,本专利技术提供的一种向量数据库存储与检索方法,解决了上述技术问题,提供一种能够解决多人对同一份数据的索引共享以及数据量过大的导致系统性能差的问题的一种向量数据库存储与检索方法。
[0004]为了达到上述目的,本专利技术提供如下技术方案:
[0005]在本专利技术实施例的第一方面,首先提供了一种向量数据库存储与检索方法,方法包括:获取数据表,并将数据表水平切分,形成若干分片,其中,每个分片包括多个副本;
[0006]获取数据,依据数据中所包含的键数据,进行第一次映射,键数据做Hash得到一个整数,依据整数对若干分片求余,得到分片号,而后,再进行第二次映射,根据第一次映射和第二次映射为获取数据建立元数据服务器;其中,分片号用于表征分片,每个分片对应多个副本,并且,多个副本中包括一个主副本,每个副本对应一个向量存储引擎,依据分片号,获取主副本对应的向量存储引擎;
[0007]基于获取到的一个主副本向量存储引擎,对其写入向量数据;
[0008]基于获取到的主副本向量存储引擎,对其进行向量相似度检索。
[0009]在一个可选的实施方式中,获取数据表,并将数据表水平切分,形成若干分片的步骤中,包括:
[0010]元数据服务器包括若干数据服务器,基于Raft协议在若干数据服务器中选取一个主服务器以及其他副服务器,主服务器与副服务器进行数据交互,以便主服务器与副服务器中元数据的一致性。
[0011]在一个可选的实施方式中,获取数据,依据数据中所包含的链数据,进行第一次映射,键数据做Hash得到一个整数,依据整数对若干分片求余,得到分片号,而后,再进行第二次映射,根据第一次映射和第二次映射为获取数据建立元数据服务器;其中,分片号用于表
征分片,每个分片对应多个副本,并且,多个副本中包括一个主副本,每个副本对应一个向量存储引擎,依据分片号,获取主副本对应的向量存储引擎的步骤中,包括:
[0012]将若干分片赋予数字,依据获取的整数与数字进行匹配,获得分片号,以便确定分片。
[0013]在一个可选的实施方式中,基于获取到的一个主副本向量存储引擎,对其写入向量数据的步骤中,包括:
[0014]数据还包括向量数据,每个副本对应一个数据服务器上的向量引擎;
[0015]基于数据包括的向量数据和键数据,确定该数据对应一个具体数据服务器上的向量存储引擎。
[0016]在一个可选的实施方式中,基于获取到的一个主副本向量存储引擎,对其写入向量数据的步骤后,包括:
[0017]获取向量数据相似度的索引请求,对每个分片所包括的至少一个副本做索引,在索引的副本中选取相似度最高的预设数量的向量数据,再将索引到的预设数量的向量数据进行相似度排序,选取相似度最高的预设数量的向量数据输出。
[0018]在一个可选的实施方式中,基于获取到的主副本向量存储引擎,对其进行向量相似度检索的步骤中,包括:
[0019]依据获取数据,将向量数据使用浮点数数组表征,再将浮点数数组转化为二进制数据,并将二进制数据存储在键数据值存储引擎中,其中,键数据存储引擎用以键数据的索引;
[0020]若索引数据,依据键数据在键数据值存储引擎中查询二进制数据,再将二进制数据转化为向量数据输出。
[0021]在一个可选的实施方式中,获取数据表,并将数据表水平切分,形成若干分片,其中,每个分片包括多个副本的步骤中,数据表包括:
[0022]内存表,置于内存中的表;
[0023]固定内存表,置于磁盘中的表;其中,
[0024]内存表数量达到第一预设阈值后,转为固定内存表,并对固定内存表中的向量数据建立向量存储引擎,向量存储引擎存储到磁盘上,生成第一索引文件;
[0025]第一索引文件数量达到第二预设阈值时,将多个第一索引文件整合为第二索引文件。
[0026]在本专利技术实施例的第二方面,还提供了一种向量数据库装置,装置包括:
[0027]创建单元,用于获取数据表,并将数据表水平切分,形成若干分片,其中,每个分片包括多个副本;
[0028]数据获取单元,用于获取数据,依据数据中所包含的键数据,进行第一次映射,键数据做Hash得到一个整数,依据整数对若干分片求余,得到分片号,而后,再进行第二次映射,根据第一次映射和第二次映射为获取数据建立元数据服务器;其中,分片号用于表征分片,每个分片对应多个副本,并且,多个副本中包括一个主副本,每个副本对应一个向量存储引擎,依据分片号,获取主副本对应的向量存储引擎;
[0029]写入向量数据单元,用于基于获取到的一个主副本向量存储引擎,对其写入向量数据;
[0030]向量相似度检索单元,用于基于获取到的主副本向量存储引擎,对其进行向量相似度检索。
[0031]在本专利技术实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现的方法步骤。
[0032]在本专利技术实施例的第四方面,还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现的方法。
[0033]本专利技术实施例提供的技术方案,获取数据表,并将数据表水平切分,形成若干分片,在将获取的数据进行两次映射,以使得获取的数据存储在元数据服务器内,并对数据建立向量存储引擎,以便后续想要获取数据时可通过向量存储引擎快速查找,在检索的数据量,减少检索延时,检索准确率,系统性能,可靠性,易用性等指标上,均有显著提高。
[0034]为了能更进一步了解本专利技术的特征以及
技术实现思路
,请参阅以下有关本专利技术的详细说明与附图,然而附图仅提供参考与说明用,并非用来对本专利技术加以限制。
附图说明
[0035]下面结合附图,通过对本专利技术的具体实施方式详细描述,将使本专利技术的技术方案及其它有益效果显而易见。
[0036]图1是本专利技术一种向量数据库本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种向量数据库存储与检索方法,其特征在于,包括:获取数据表,并将数据表水平切分,形成若干分片,其中,每个所述分片包括多个副本;获取数据,依据数据中所包含的键数据,进行第一次映射,所述键数据做Hash得到一个整数,依据所述整数对所述若干分片求余,得到分片号,而后,再进行第二次映射,根据所述第一次映射和所述第二次映射为所述获取数据建立元数据服务器;其中,分片号用于表征分片,每个所述分片对应多个副本,并且,多个所述副本中包括一个主副本,每个副本对应一个向量存储引擎,依据所述分片号,获取所述主副本对应的向量存储引擎;基于获取到的一个所述主副本向量存储引擎,对其写入向量数据;基于获取到的所述主副本向量存储引擎,对其进行向量相似度检索。2.根据权利要求1所述的向量数据库存储与检索方法,其特征在于,所述获取数据表,并将数据表水平切分,形成若干分片的步骤中,包括:所述元数据服务器包括若干数据服务器,基于Raft协议在若干数据服务器中选取一个主服务器以及其他副服务器,所述主服务器与所述副服务器进行数据交互,以便所述主服务器与所述副服务器中所述元数据的一致性。3.根据权利要求1所述的向量数据库存储与检索方法,其特征在于,所述获取数据,依据数据中所包含的键数据,进行第一次映射,所述键数据做Hash得到一个整数,依据所述整数对所述若干分片求余,得到分片号,而后,再进行第二次映射,根据所述第一次映射和所述第二次映射为所述获取数据建立元数据服务器;其中,分片号用于表征分片,每个所述分片对应多个副本,并且,多个所述副本中包括一个主副本,每个副本对应一个向量存储引擎,依据所述分片号,获取所述主副本对应的向量存储引擎的步骤中,包括:将所述若干分片赋予数字,依据获取的所述整数与所述数字进行匹配,获得分片号,以便确定所述分片。4.根据权利要求3所述的向量数据库存储与检索方法,其特征在于,所述基于获取到的一个所述主副本向量存储引擎,对其写入向量数据的步骤中,包括:所述数据还包括所述向量数据,每个所述副本对应一个所述数据服务器上的向量引擎;基于所述数据包括的向量数据和键数据,确定该数据对应一个具体所述数据服务器上的向量存储引擎。5.根据权利要求4所述的向量数据库存储与检索方法,其特征在于,所述基于获取到的一个所述主副本向量存储引擎,对其写入向量数据的步骤后,包括:获取所述向量数据相似度的索引请求,对每个所述分片所包括的至少一个副本做索引,在索引的所述副本中选取相似度最高的预设数量的向量数据,再将索引到的预...

【专利技术属性】
技术研发人员:李明昊
申请(专利权)人:李明昊
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1