数据查询系统、方法、服务器、计算机可读存储介质与流程

文档序号:28944107发布日期:2022-02-19 08:09阅读:89来源:国知局
数据查询系统、方法、服务器、计算机可读存储介质与流程

1.本公开涉及大数据查询技术领域,尤其涉及一种数据查询系统、方法、服务器、计算机可读存储介质。


背景技术:

2.目前,相关技术中,报表在同步到mysql数据库后,报表服务可以直接查询mysql数据库,以获取到用户所需要的报表。在查询过程中,当被查询的数据总量小于千万级别时,相关技术中mysql数据库的响应时间可以被优化到十秒之内;但是,当被查询的数据总量超过千万、上亿甚至十亿条时,由于存储引擎存在搜索数量瓶颈,因此无论如何优化或者更改索引方式,均无法满足需要快速响应的多并发查询要求,还会对数据库产生较大的压力。


技术实现要素:

3.本公开提供一种数据查询系统、方法、服务器、计算机可读存储介质,以解决相关技术中存在的问题。
4.本公开的技术方案如下:
5.根据本公开实施例的第一方面,提供一种数据查询系统,包括:解析层模块、适配器层模块和存储引擎层模块;其中,
6.所述解析层模块,被配置为执行解析出各个查询请求的查询参数进行验证,并将验证通过后的查询请求发送给所述适配器层模块;
7.所述适配器层模块,被配置为执行根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;
8.所述存储引擎层模块,被配置为执行调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
9.可选地,还包括接口层模块,所述接口层模块与所述解析层模块连接,被配置为执行接入采用预设输入格式的各个查询请求;
10.所述适配器层模块,还被配置为执行将所述查询结果调整为预设输出格式;
11.所述接口层模块,还被配置为执行输出所述预设输出格式的查询结果。
12.可选地,还包括路由层模块,所述路由层模块分别与所述解析层模块和所述适配器层模块连接,被配置为执行根据所述查询请求的类型进行分类路由所述查询请求。
13.可选地,所述适配器层模块包括以下一种或者多种适配器:hbase适配器、druid适配器、es适配器和clickhouse适配器。
14.可选地,所述存储引擎模块包括以下一种或者多种存储引擎:hbase存储引擎、druid存储引擎、es存储引擎和clickhouse存储引擎。
15.可选地,所述目标数据由所述存储引擎层模块采用宽表或建立星型数据模型的方式预先存储。
16.根据本公开实施例的第二方面,提供一种数据查询方法,所述方法包括:
17.获取各个查询请求且解析出各个查询请求的查询参数进行验证;
18.根据验证通过后的查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划;
19.调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
20.可选地,所述方法还包括:
21.处理所接入的预设输入格式的各个查询请求,以及输出预设输出格式的查询结果;
22.所述预设输出格式的查询结果由所述适配器层模块对所述查询结果进行调整得到。
23.可选地,所述方法还包括:
24.获取查询请求,并根据所述查询请求的类型进行分类路由。
25.根据本公开实施例的第三方面,提供一种数据查询装置,所述装置包括:
26.查询参数验证模块,被配置为执行获取各个查询请求且解析出各个查询请求的查询参数进行验证;
27.查询计划生成模块,被配置为执行根据验证通过后的查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划;
28.查询结果输出模块,被配置为执行调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
29.可选地,所述装置还包括:
30.输入输出模块,被配置为执行处理所接入的预设输入格式的各个查询请求,以及输出预设输出格式的查询结果;
31.所述预设输出格式的查询结果由所述适配器层模块对所述查询结果进行调整得到。
32.可选地,所述装置还包括:
33.分类路由模块,被配置为执行获取查询请求,并根据所述查询请求的类型进行分类路由。
34.根据本公开实施例的第四方面,提供一种服务器,包括:
35.处理器;
36.用于存储所述处理器可执行的计算机程序的存储器;
37.其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如上述所述方法的步骤。
38.根据本公开实施例的第五方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的可执行的计算机程序由处理器执行时,能够实现如上述所述方法的步骤。
39.根据本公开实施例的第六方面,提供一种计算机应用程序,当该计算机应用程序由服务器的处理器执行时,使得所述服务器能够执行上述所述方法的步骤。
40.本公开的实施例提供的技术方案至少带来以下有益效果:
41.本实施例中可以设置解析层模块、适配器层模块和存储引擎层模块;解析层模块被配置为执行解析出各个查询请求的查询参数,并将查询参数发送给适配器层模块;适配器层模块,被配置为执行根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;存储引擎层模块,被配置为执行调用目标存储引擎,根据查询计划查询出目标数据,将目标数据作为查询请求的查询结果输出。这样,本实施例中通过设置多个不同的存储引擎,可以发挥各个存储引擎的特点,有利于提升数据查询效率,尤其适合多并发的查询场景。
42.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
43.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1是根据一示例性实施例示出的一种应用场景示意图。
45.图2是根据一示例性实施例示出的一种数据查询系统的架构示意图。
46.图3是根据一示例性实施例示出的另一种数据查询系统的架构示意图。
47.图4是根据一示例性实施例示出的又一种数据查询系统的架构示意图。
48.图5是根据一示例性实施例示出的一种数据查询方法的流程图。
49.图6是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
50.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
51.目前,相关技术中,报表在同步到mysql数据库后,报表服务可以直接查询mysql数据库,以获取到用户所需要的报表。在查询过程中,当被查询的数据总量小于千万级别时,相关技术中mysql数据库的响应时间可以被优化到十秒之内;但是,当被查询的数据总量超过千万、上亿甚至十亿条时,由于存储引擎存在搜索数量瓶颈,因此无论如何优化或者更改索引方式,均无法满足需要快速响应的多并发查询要求,还会对数据库产生较大的压力。
52.为此,本公开实施例提供了一种数据查询系统,适用于服务器,其发明构思在于,设置多个存储引擎,通过多个存储引擎存储数据和查询数据;这样各存储引擎可以发挥各自的特点,满足多并发应用场景的查询要求。图1是根据一示例性实施例示出的一种应用场景示意图,参见图1,服务器20可以分别与若干电子设备10连接,各电子设备10上可以安装客户端。用户11可以通过电子设备10上的客户端向服务器20发送查询请求。服务器20可以采用一种数据查询方法来查询该查询请求对应的查询结果,并反馈给客户端,以供用户查阅。
53.图2是根据一示例性实施例示出的一种数据查询系统的架构示意图,参见图2,一
种数据查询系统,包括:解析层模块10、适配器层模块20和存储引擎层模块30;其中,
54.解析层模块10,被配置为执行解析出各个查询请求的查询参数,并将查询参数发送给适配器层模块20;
55.适配器层模块20,被配置为执行根据查询参数从预设的多个存储引擎中匹配出目标存储引擎,将查询参数适配为目标存储引擎的查询模型,并生成查询计划发送给存储引擎层模块30;
56.存储引擎层模块30,被配置为执行调用目标存储引擎,根据查询计划查询出目标数据,将目标数据作为查询请求的查询结果输出。
57.本实施例中,查询请求中可以包括以下一种或者多种查询参数:报表名称,查询维度(如工资、出勤等),过滤条件(如月份、员工)。查询请求的内容可以根据具体场景进行设置,在此不作限定。
58.本实施例中,存储引擎层模块30可以包括以下一种或者多种存储引擎:hbase存储引擎、druid存储引擎、es存储引擎和clickhouse存储引擎。以图2所示例中的4个存储引擎为例,各存储引擎具有不同的特点:
59.例如,hbase存储引擎可以利用hdfs的分布式处理模式,并从hadoop的mapreduce程序模型中获益。hbase存储引擎可以融合key/value存储模式带来实时查询的能力,以及通过mapreduce进行离线处理或者批处理的能力。总的来说,hbase存储引擎可以随着数据量增多来扩展节点进行支撑,即可以自动水平切分扩展报表,适合存储非结构化和半结构化的松散数据;并且,可以通过zookeeper协调查找数据,访问速度块。
60.又如,druid存储引擎在不同场景下可以有很多的查询类型,包括:聚合查询:时间序列查询(timeseries)、排名查询(topn)、分组查询(groupby)。
61.以排名查询(topn)为例,topn查询根据规范返回给定维度的有序结果集,即topn查询可以认为是单维度、有序的类似分组查询。在某些情况下,topn查询比分组查询(groupby query)快。topn查询结果返回json数组对象,在每个节点将顶上k个结果排名,在druid默认情况下最大值为1000。
62.实际使用中,建议使用时间序列和topn查询代替分组查询;时间序列查询是明显快于groupby查询,这样因为聚合不需要分组尺寸。对于分组和排序在一个单一的维度,topn查询更优于groupby查询。
63.再如,es存储引擎(elasticserach)是面向文档(document oriented)的,可以存储整个对象或文档(document)。并且,es存储引擎采用倒排索引,即数值(value)—》键值(key),可以支持分布式搜索,可以索引每个文档的内容使之可以被搜索,如可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤,从而执行复杂的全文搜索。并且,支持分片和复制,从而方便水平分割和扩展,保证其高可用和高吞吐。
64.再如,clickhouse存储引擎中的数据可以按列存储,同时还可以按向量进行处理;索引非b树结构,无需满足最左原则;只要过滤条件在索引列中包含即可。
65.本实施例中可以分别发挥各个存储引擎的优点,例如部分存储引擎负责显示报表类的数据查询任务,部分存储引擎负责分析报表类的数据查询任务,这样有利于提升查询效率。为进一步提高查询效率,本实施例中在存储过程中对所同步的数据进行预处理,即可以根据所同步数据的数据规模(如数据量大小、存储过程中需要处理已经存储数据的工作
量、已存储的报表的数量),选择将该数据处理成宽表形式或者建立星型数据模型形式,并存储到对应的存储引擎之中。
66.例如,当待同步数据可以存储为宽表时,可以处理成宽表形式;在处理成宽表的过程中,若已经存储对应的宽表,则可以继续处理成宽表,也可以另建立一个宽表;若宽表的宽度或者数量足够大,可以对这些宽表建立星型数据模型。即,本示例中通过对同步数据进行预处理,可以减少数据量,有利于后续的数据查询。
67.为保证各存储引擎的正常使用,本实施例中还需要将查询请求的查询参数适配成各存储引擎所需要的查询模型或查询计划,为此,数据查询系统还设置有适配器层模块20。该适配器层模块20包括以下一种或者多种适配器:hbase适配器、druid适配器、es适配器和clickhouse适配器。各个适配器根据查询请求的查询参数解析出查询模型,并生成查询计划发送给目标存储引擎。
68.实际应用中,为简化设计,适配器层模块20中的适配器可以与存储引擎层模块30中的存储引擎一一对应。可理解的是,在一些示例中,适配器层模块20中设置适配器的数量多于存储引擎的数据,以支持后续存储引擎的扩展。
69.在一实施例中,参见图3,一种数据查询系统还包括接口层模块40。接口层模块40与解析层模块10连接,被配置为执行接入采用预设输入格式的各个查询请求。相应地,适配器层模块20,还被配置为执行将查询结果调整为预设输出格式;接口层模块40,还被配置为执行输出上述预设输出格式的查询结果。本实施例中通过对外提供统一的查询接口,可以帮助用户屏蔽各存储引擎的差异,方便提升用户使用体验。
70.在一实施例中,参见图4,一种数据查询系统还包括路由层模块50。路由层模块50分别与解析层模块10和适配器层模块20连接,被配置为执行根据查询请求的类型进行分类路由各查询请求到适配器层模块20中的各适配器。例如,各查询请求中可以包括查询类型(如显示报表或者分析报表),路由层模块50可以根据查询类型对各请求进行分类路由,分别标识出属于显示报表分类的查询请求和属于分析报表分类的查询请求,适配器层模块30可以根据上述标识来匹配出存储引擎。本实施例中通过分类路由可以均衡查询请求的流量,保证查询的稳定性。
71.需要说明的是,继续参见图4,解析层模块10和路由层模块50可以设置到同一个模块中,即解析层模块10对查询请求的解析和验证过程,与路由层模块50的分类路由过程可以位于彼此前后,而不影响到本公开方案。以图4所示例的路由层模块50分别解析层模块10和适配器层模块20连接为例,路由层模块50可以获取解析层模块10输出的各查询请求,由于解析层模块10已经过滤掉不符合存储引擎要求的查询请求,故可以减少路由层模块50所接入的查询请求的类型,提升路由层模块50的分类路由的效率。
72.至此,本实施例中可以设置解析层模块、适配器层模块和存储引擎层模块;解析层模块被配置为执行解析出各个查询请求的查询参数,并将查询参数发送给适配器层模块;适配器层模块,被配置为执行根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;存储引擎层模块,被配置为执行调用目标存储引擎,根据查询计划查询出目标数据,将目标数据作为查询请求的查询结果输出。这样,本实施例中通过设置多个不同的存储引擎,可以发挥各个存储引擎的特点,有利于提升数据查询效率,尤其适合多并发的
查询场景。
73.结合图1~图4所示的场景,详细描述一种数据查询系统的工作过程:
74.客户端响应于用户的触发操作,获取用户输入的检索词,并基于检索词作为查询参数生成查询请求并发送给服务器20。由于服务器所连接的客户端的数量可达数亿,服务器在同一时刻可以接收到多个查询请求(如1000)。服务器执行上述数据查询方法:
75.接口层模块接入上述多个查询请求,并将查询请求发送给解析层模块,解析层模块对各查询请求进行解析,得到如报表名称、查询维度或过滤条件等查询参数,然后验证查询参数是否符合存储引擎的要求,在不符合要求时向客户端反馈“查询失败”或者“调整查询请求”的信息,在符合要求时,则将查询请求发送给路由层模块。路由层模块根据查询请求的分类对各查询请求进行区分隔离,如显示报表类的查询和分析报表类的查询,并依次发送给适配器层模块。适配器层模块根据查询参数选择最优的查询路径,即根据查询请求的报表名称(datasource)来确定所使用的目标存储引擎,并解析出该目标存储引擎的查询模型,生成查询计划;然后,将查询计划下发到目标存储引擎。当查询计划较多时,目标存储引擎将接收的查询计划进行缓存排队,并依次获取各查询计划。在目标存储引擎执行查询计划返回查询结果后,再适配为统一的数据输出格式,返回查询结果到客户端,供用户使用。经过实际验证,本示例中可以在被查询的数据达到数十亿量级的情况下,达到在1秒以内返回结果的效果,并且支持1000以上的查询并发。
76.本公开实施例还提供了一种数据查询方法,适用于上述数据查询系统,图5是根据一示例性实施例示出的一种数据查询方法的流程图。参见图5,所述方法包括:
77.在步骤51中,获取各个查询请求且解析出各个查询请求的查询参数进行验证;
78.在步骤52中,根据验证通过后的查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划;
79.在步骤53中,调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
80.本实施例中,可以设置解析层模块、适配器层模块和存储引擎层模块;解析层模块被配置为执行解析出各个查询请求的查询参数,并将查询参数发送给适配器层模块;适配器层模块,被配置为执行根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;存储引擎层模块,被配置为执行调用目标存储引擎,由目标存储引擎根据查询计划查询出目标数据,将目标数据作为查询请求的查询结果输出。这样,本实施例中通过设置多个不同的存储引擎,可以发挥各个存储引擎的特点,有利于提升数据查询效率,尤其适合多并发的查询场景。
81.在一实施例中,所述方法还包括:
82.处理所接入的预设输入格式的各个查询请求,以及输出预设输出格式的查询结果;
83.所述预设输出格式的查询结果由所述适配器层模块对所述查询结果进行调整得到。
84.本实施例中通过对外提供统一的查询接口,可以帮助用户屏蔽各存储引擎的差异,方便提升用户使用体验。
85.在一实施例中,所述方法还包括:
86.获取查询请求,并根据所述查询请求的类型进行分类路由。
87.本实施例中,各查询请求中可以包括查询类型(如显示报表或者分析报表),数据查询系统中的路由层模块50可以根据查询类型对各请求进行分类路由,分别标识出属于显示报表分类的查询请求和属于分析报表分类的查询请求。本实施例中通过分类路由可以均衡查询请求的流量,保证查询的稳定性。
88.关于上述实施例中的方法,其中方法中各步骤的具体实现方式已经在描述系统实施例时进行了详细描述,此处将不做详细阐述说明。
89.在本公开实施例提供的一种数据查询方法的基础上,本公开实施例还提供了,所述装置包括:
90.查询参数验证模块,被配置为执行获取各个查询请求且解析出各个查询请求的查询参数进行验证;
91.查询计划生成模块,被配置为执行根据验证通过后的查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划;
92.查询结果输出模块,被配置为执行调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
93.在一实施例中,所述装置还包括:
94.输入输出模块,被配置为执行处理所接入的预设输入格式的各个查询请求,以及输出预设输出格式的查询结果;
95.所述预设输出格式的查询结果由所述适配器层模块对所述查询结果进行调整得到。
96.在一实施例中,所述装置还包括:
97.分类路由模块,被配置为执行获取查询请求,并根据所述查询请求的类型进行分类路由。
98.关于上述实施例中的装置,其中装置中各模块的具体实现方式已经在描述方法和系统实施例时进行了详细描述,此处将不做详细阐述说明。
99.图6是根据一示例性实施例示出的一种服务器的框图。参照图6,服务器600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。
100.处理组件602通常控制服务器600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成图3所示方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
101.存储器604被配置为存储各种类型的数据以支持在服务器600的操作。这些数据的示例包括用于在服务器600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除
可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
102.电源组件606为服务器600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为服务器600生成、管理和分配电力相关联的组件。
103.多媒体组件608包括在服务器600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当服务器600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
104.音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当服务器600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
105.i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
106.传感器组件614包括一个或多个传感器,用于为服务器600提供各个方面的状态评估。例如,传感器组件614可以检测到服务器600的打开/关闭状态,组件的相对定位,例如所述组件为服务器600的显示器和小键盘,传感器组件614还可以检测服务器600或服务器600一个组件的位置改变,用户与服务器600接触的存在或不存在,服务器600方位或加速/减速和服务器600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
107.通信组件616被配置为便于服务器600和其他设备之间有线或无线方式的通信。服务器600可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或6g),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
108.在本公开一实施例中,服务器600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如下步骤:所述解析层模块获取各个查询请求且解析出各个查询请求的查询参数进行验证,并将验证通过后的查询请求发送给所述适配器层模块;所述适配器层模块根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生
成查询计划发送给所述存储引擎层模块;所述存储引擎层模块调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
109.在本公开一实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由服务器600的处理器620执行如下步骤:所述解析层模块获取各个查询请求且解析出各个查询请求的查询参数进行验证,并将验证通过后的查询请求发送给所述适配器层模块;所述适配器层模块根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;所述存储引擎层模块调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
110.在本公开一实施例中,还提供了一种计算机应用程序,当该计算机应用程序由服务器的处理器执行时,使得所述服务器能够执行如下步骤:所述解析层模块获取各个查询请求且解析出各个查询请求的查询参数进行验证,并将验证通过后的查询请求发送给所述适配器层模块;所述适配器层模块根据所述查询参数从预设的多个存储引擎中匹配出目标存储引擎,将所述查询参数适配为所述目标存储引擎的查询模型,并生成查询计划发送给所述存储引擎层模块;所述存储引擎层模块调用所述目标存储引擎,根据所述查询计划查询出目标数据,将所述目标数据作为所述查询请求的查询结果输出。
111.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/服务器/计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
113.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖上述各实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
114.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1