分布式数据库的数据查询方法、装置和存储介质制造方法及图纸

技术编号:25988951 阅读:18 留言:0更新日期:2020-10-20 18:56
本公开涉及一种分布式数据库的数据查询方法、装置和存储介质,涉及电子信息技术领域,该方法包括:获取查询请求,查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件,若查询请求中存在目标查询字段,根据预先建立的目标索引,查询与目标查询字段对应的查询条件匹配的主关键字段的目标键值,目标查询字段为指定的非主关键字段,目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引,从分布式数据库中取出,主关键字段为目标键值的目标数据,并将目标数据作为查询请求对应的查询结果。本公开通过预先建立的目标索引,能够在分布式数据库中快速查询非主关键字段,提高了查询效率。

【技术实现步骤摘要】
分布式数据库的数据查询方法、装置和存储介质
本公开涉及电子信息
,尤其涉及分布式数据库的数据查询方法、装置和存储介质。
技术介绍
随着互联网和云计算等电子信息技术的发展,相应带来的数据量也呈现爆发式的增长,而传统的数据库已经不能满足海量数据的存储需求,因此对海量数据的存储通常会选用分布式数据库(英文:DistributedDataBase,缩写:DDB)。例如Hbase数据库,是一个分布式的、面向列的开源数据库,适合于非结构化数据存储。在Hbase数据库中读取一行数据的方式是,通过能够唯一标识一行数据的主关键字段(即:行键,英文:Rowkey)来实现。相关技术中,Hbase数据库只提供基于主关键字段的查询,主关键字段索引单一,无法实现多维度的查询,而对于非主键字段的查询,只能通过Filter或离线任务等方式,既浪费计算资源,又会导致延迟,查询效率较低。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种分布式数据库的数据查询方法、装置和存储介质。根据本公开实施例的第一方面,提供一种分布式数据库的数据查询方法,所述方法包括:获取查询请求,所述查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件;若所述查询请求中存在目标查询字段,根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值;所述目标查询字段为指定的非主关键字段,所述目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引;从所述分布式数据库中取出,主关键字段为所述目标键值的目标数据,并将所述目标数据作为所述查询请求对应的查询结果。可选地,所述方法还包括:将第一数据写入所述分布式数据库;若所述第一数据中存在目标建立字段,获取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值,所述目标建立字段为指定的非主关键字段;将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述目标索引。可选地,所述分布式数据库为Hbase数据库,所述将第一数据写入所述分布式数据库,包括:将所述第一数据写入所述Hbase数据库的预写日志;所述若所述第一数据中存在目标建立字段,获取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值,包括:通过Replication机制,判断所述第一数据中是否存在所述目标建立字段;若所述第一数据中存在目标建立字段,从所述预写日志中读取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值。可选地,所述将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述目标索引,包括:将所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值发送至搜索服务器,以使所述搜索服务器将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述搜索服务器中的所述目标索引。可选地,所述根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值,包括:将所述目标查询字段和所述目标查询字段对应的查询条件发送至存储有所述目标索引的搜索服务器,以使所述搜索服务器在所述目标索引中查询与所述目标查询字段对应的查询条件匹配的目标映射;从所述搜索服务器获取所述目标映射中主关键字段的键值,并将所述目标映射中主关键字段的键值作为所述目标键值。根据本公开实施例的第二方面,提供一种分布式数据库的数据查询装置,所述装置包括:第一获取模块,被配置为获取查询请求,所述查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件;查询模块,被配置为若所述查询请求中存在目标查询字段,根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值;所述目标查询字段为指定的非主关键字段,所述目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引;确定模块,被配置为从所述分布式数据库中取出,主关键字段为所述目标键值的目标数据,并将所述目标数据作为所述查询请求对应的查询结果。可选地,所述装置还包括:写入模块,被配置为将第一数据写入所述分布式数据库;第二获取模块,被配置为若所述第一数据中存在目标建立字段,获取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值,所述目标建立字段为指定的非主关键字段;建立模块,被配置为将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述目标索引。可选地,所述写入模块被配置为:将所述第一数据写入所述Hbase数据库的预写日志;所述第二获取模块包括:判断子模块,被配置为通过Replication机制,判断所述第一数据中是否存在所述目标建立字段;获取子模块,被配置为若所述第一数据中存在目标建立字段,从所述预写日志中读取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值。可选地,所述建立模块被配置为:将所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值发送至搜索服务器,以使所述搜索服务器将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述搜索服务器中的所述目标索引。可选地,所述查询模块包括:发送子模块,被配置为将所述目标查询字段和所述目标查询字段对应的查询条件发送至存储有所述目标索引的搜索服务器,以使所述搜索服务器在所述目标索引中查询与所述目标查询字段对应的查询条件匹配的目标映射;查询子模块,被配置为从所述搜索服务器获取所述目标映射中主关键字段的键值,并将所述目标映射中主关键字段的键值作为所述目标键值。根据本公开实施例的第三方面,提供一种分布式数据库的数据查询装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取查询请求,所述查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件;若所述查询请求中存在目标查询字段,根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值;所述目标查询字段为指定的非主关键字段,所述目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引;从所述分布式数据库中取出,主关键字段为所述目标键值的目标数据,并将所述目标数据作为所述查询请求对应的查询结果。根据本公开实施例的第四方面,提供一种计算机本文档来自技高网...

【技术保护点】
1.一种分布式数据库的数据查询方法,其特征在于,所述方法包括:/n获取查询请求,所述查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件;/n若所述查询请求中存在目标查询字段,根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值;所述目标查询字段为指定的非主关键字段,所述目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引;/n从所述分布式数据库中取出,主关键字段为所述目标键值的目标数据,并将所述目标数据作为所述查询请求对应的查询结果。/n

【技术特征摘要】
1.一种分布式数据库的数据查询方法,其特征在于,所述方法包括:
获取查询请求,所述查询请求中包括至少一个查询字段,和每个查询字段对应的查询条件;
若所述查询请求中存在目标查询字段,根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值;所述目标查询字段为指定的非主关键字段,所述目标索引为在数据写入分布式数据库时建立的,包括了指定的非主关键字段与主关键字段之间映射关系的索引;
从所述分布式数据库中取出,主关键字段为所述目标键值的目标数据,并将所述目标数据作为所述查询请求对应的查询结果。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将第一数据写入所述分布式数据库;
若所述第一数据中存在目标建立字段,获取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值,所述目标建立字段为指定的非主关键字段;
将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述目标索引。


3.根据权利要求2所述的方法,其特征在于,所述分布式数据库为Hbase数据库,所述将第一数据写入所述分布式数据库,包括:
将所述第一数据写入所述Hbase数据库的预写日志;
所述若所述第一数据中存在目标建立字段,获取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值,包括:
通过Replication机制,判断所述第一数据中是否存在所述目标建立字段;
若所述第一数据中存在目标建立字段,从所述预写日志中读取所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值。


4.根据权利要求2所述的方法,其特征在于,所述将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述目标索引,包括:
将所述第一数据中所述目标建立字段的值,与所述第一数据中主关键字段的键值发送至搜索服务器,以使所述搜索服务器将所述第一数据中所述目标建立字段的值与所述第一数据中主关键字段的键值,作为所述目标建立字段与主关键字段的一个映射,并存入所述搜索服务器中的所述目标索引。


5.根据权利要求1所述的方法,其特征在于,所述根据预先建立的目标索引,查询与所述目标查询字段对应的查询条件匹配的主关键字段的目标键值,包括:
将所述目标查询字段和所述目标查询字段对应的查询条件发送至存储有所述目标索引的搜索服务器,以使所述搜索服务器在所述目标索引中查询与所述目标查询字段对应的查询条件匹配的目标映射;
从所述搜索服务器获取所述目标映射中主关键字段的键值,...

【专利技术属性】
技术研发人员:牛豫林
申请(专利权)人:北京小米松果电子有限公司
类型:发明
国别省市:北京;11

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

1