一种数据查询、存储、及对存储数据的操作方法及装置制造方法

文档序号:6629771阅读:169来源:国知局
一种数据查询、存储、及对存储数据的操作方法及装置制造方法
【专利摘要】本发明提供了一种数据查询、存储、及对存储数据的操作方法及装置,其中数据查询方法包括接收数据查询请求;对数据存储节点配置随机加权值;根据该加权值对数据存储节点的数据进行查询;在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值进行查询,直至得到查询结果。采用本发明提供的技术方案,通过配置随机加权值合理优化了应用各个节点的硬件设备,减少了查询热点节点;修改、删除操作限定在同一个切片的范围内,避免了由于误操作对数据造成的安全隐患;自动创建副本,将人工干预操作转化为自动执行,保证了高可用性。
【专利说明】一种数据查询、存储、及对存储数据的操作方法及装置

【技术领域】
[0001]本发明涉及数据处理领域,特别涉及一种数据查询、存储、及对存储数据的操作方法及装置。

【背景技术】
[0002]Apache Solr是基于Lucene的开源检索引擎。Apache Solr提供了丰富的接口实现了检索引擎的负载均衡、数据隔离以及高可用性等特性。
[0003]1、对于负载均衡:
[0004]Apache Solr使用轮询的方式来确保LoadBalance (负载均衡)以及failover (失效转移)的过程。
[0005]用户的查询请求首先会发送至数据存储节点Nodel,Nodel会首先查询自身,若查询成功,就会直接返回;
[0006]若Nodel第一次查询失败,就会向Node2转发查询,Node2查询成功,会将数据返回Node I,由Nodel将查询结果发送用户;
[0007]若Node2也查询失败,此时Nodel会向Node3转发查询,若Node3能够查询成功,会将数据返回Node I,由Nodel将查询结果发送用户。
[0008]2、对于数据隔离策略:
[0009]Apache Solr按照集合collect1n >切片shard >核心core从大到小来组织同一类型的索引,在写入数据的时候,Apache Solr只提供了两种写入数据隔离策略,例如在利用DIH(Data Import Handler,数据导入处理程序)将数据库向Apache Solr写入数据的时候:(I)Apache Solr能够向collect1n中所有的shard中的所有core插入、修改、删除数据;(2)或者只向某个单独shard的特定的core插入、修改、删除数据。
[0010]3、对于高可用性:
[0011]Apache Solr的高可用性的解决方案提供了高可用性的基本解决框架,即提供副本replica机制来实现可用性,但是并不关心replica自身的灵活性以及容灾问题。
[0012]现有技术的不足在于:
[0013]采用轮询的方式实现负载均衡会带来数据存储节点负载过高,出现查询热点节点;当Nodel出现崩溃时,则不能接受用户的查询请求,降低用户体验;另外,轮询的方式无法实现将查询请求优先发送至某个数据查询节点。
[0014]还有,现有的Apache Solr的数据隔离策略,可能会存在数据安全隐患,即误操作(如误修改、误删除)会在整个collect1n范围内蔓延;以及数据冗余,如插入操作也会在整个collect1n都蔓延,所有shard中的core都保存新插入的数据,会造成数据((Ncore-D+Nrepiica)倍的冗余。
[0015]另外,可以通过提供副本replica机制来实现可用性,但是Apache Solr的replica需要使用者手动创建replica,不够灵活;当replica发生异常之后,不能自动重建replica,无容灾操作。


【发明内容】

[0016]本发明实施例中提供了一种数据查询方法,包括步骤:
[0017]接收数据查询请求;
[0018]对数据存储节点配置随机加权值;
[0019]根据该加权值对数据存储节点的数据进行查询;
[0020]在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值进行查询,直至得到查询结果。
[0021]本发明实施例中还提供了一种数据查询装置,包括:
[0022]第一接收模块,用于接收数据查询请求;
[0023]加权模块,用于对数据存储节点配置随机加权值;
[0024]查询模块,用于根据该加权值对数据存储节点的数据进行查询;
[0025]加权模块,进一步用于在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值;
[0026]查询模块,进一步用于根据重新配置的加权值对数据存储节点的数据进行查询,直至得到查询结果。
[0027]有益效果是:
[0028]本发明实施例提供的技术方案中,通过在接收到数据查询请求或收到数据查询失败的消息后对数据存储节点配置随机加权值,根据该加权值对数据存储节点的数据进行查询,避免了因轮询方式而产生的查询热点节点,在其中一个数据存储节点崩溃时并不影响用户的查询,并且可以通过设置加权值高低来实现将查询请求优先发送至某个数据查询节点。
[0029]本发明实施例中又提供了一种对存储数据的操作方法,包括步骤:
[0030]接收将要存储的数据;
[0031]将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n是包含多个shardο
[0032]本发明实施例中还提供了一种对存储数据的操作装置,包括:
[0033]第二接收模块,用于接收将要存储的数据;
[0034]第一存储模块,用于将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n是包含多个shard。
[0035]有益效果是:
[0036]将待存储的数据发送至一个同时包含core和replica的shard中存储,可以实现在同一个shard中的core和replica数据的同步,若发生误操作,仅在该shard中会出现问题,并不会蔓延至整个collect1n ;由于只是将数据发送至某一个shard中的core和replica中存储,因此不会造成数据的冗余。
[0037]本发明实施例中再提供了一种数据存储方法,包括步骤:
[0038]接收将要存储的数据;
[0039]将数据分别发送至一个shard下的core和replica中存储,所述replica是创建core时创建的。
[0040]本发明实施例中还提供了一种数据存储装置,包括:
[0041]第三接收模块,用于接收将要存储的数据;
[0042]第二存储模块,用于将数据分别发送至一个shard下的core和replica中存储,所述replica是创建core时创建的。
[0043]有益效果是:
[0044]在创建core时自动创建replica,将人工干预操作转化为自动执行,使得replica的创建更加灵活。

【专利附图】

【附图说明】
[0045]下面将参照附图描述本发明的具体实施例,其中:
[0046]图1为本发明实施例中采用现有轮询方式进行数据查询的实施示意图;
[0047]图2为本发明实施例中的数据查询方法的使用流程示意图;
[0048]图3为本发明实施例中采用加权随机方式进行数据查询的实施示意图;
[0049]图4为本发明实施例中的数据查询装置的结构示意图;
[0050]图5为本发明实施例中采用现有技术对存储数据进行操作的实施示意图;
[0051]图6为本发明实施例中的对存储数据的操作方法的使用流程示意图;
[0052]图7为本发明实施例中对存储数据进行操作的实施示意图;
[0053]图8为本发明实施例中的对存储数据的操作装置的结构示意图;
[0054]图9为本发明实施例中的数据存储方法的使用流程示意图;
[0055]图10为本发明实施例中的数据存储装置的结构示意图。

【具体实施方式】
[0056]为了使本发明实施例中的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
[0057]针对现有技术的不足,本发明实施例中提供了一种数据查询、存储、及对存储数据的操作方法及装置,通过配置随机加权值合理优化了应用各个节点的硬件设备,减少了查询热点节点;修改、删除操作限定在同一个切片的范围内,避免了由于误操作对数据造成的安全隐患;自动创建副本,将人工干预操作转化为自动执行,保证了高可用性。下面以实施例进行描述。
[0058]Apache Solr的LoadBalance (负载均衡)以及failover (失效转移)特性保证了用户数据查询请求的能够正确及时响应。但是它的LoadBalance以及failover策略是轮询的方式,如图1所示。
[0059]图1为采用现有轮询方式进行数据查询的实施示意图,如图所示,可以包括如下情形:
[0060]首先将用户的查询请求发送给数据存储节点Nodel,Nodel查询自身,若查询成功,则直接返回查询结果;
[0061]若Nodel第一次查询失败,此时向Node2转发查询,若Node2查询成功,则将查询结果返回Node I,由Nodel将查询结果发送给用户;
[0062]若Node2也查询失败,此时Nodel会向Node3转发查询,若Node3能够查询成功,则将查询结果返回Node I,由Nodel将查询结果发送给用户。
[0063]采用轮询方式来实现负载均衡的缺点是:
[0064](I)由于查询会优先发送给数据存储节点Nodel,此时Nodel节点的负载就会很高,此时出现查询热点节点。
[0065](2)由于在实际生产环境中,由于硬件配置以及负载的不一致,需要将某些查询请求优先发送到某一台Solr上面去,Apache Solr的轮询策略就不能达到此要求了。
[0066](3)若Nodel出现崩溃,此时Nodel就不能接受用户的查询请求,此时用户查询失败,降低用户体验,如图1所示。
[0067]图2为本发明实施例中的数据查询方法的使用流程示意图,如图所示,可以包括步骤:
[0068]步骤201、接收数据查询请求;
[0069]步骤202、对数据存储节点配置随机加权值;
[0070]步骤203、根据该加权值对数据存储节点的数据进行查询;
[0071]步骤204、在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值进行查询,直至得到查询结果。
[0072]实施中,根据该加权值对数据存储节点的数据进行查询时,还可以包括:
[0073]确定加权值最高的数据存储节点;
[0074]对该加权值最高的数据存储节点的数据进行查询。
[0075]具体实施中,图3为采用加权随机方式进行数据查询的实施示意图。如图3所示,可以包括如下情形:
[0076]接收到数据查询请求后,第一次配置随机加权值,若确定Nodel的加权值最高,则先查询Nodel中的数据,若查询成功,则直接返回查询结果;
[0077]若Nodel第一次查询失败、或者检测到异常,此时进行第二次配置随机加权值,确定加权值最高的数据存储节点,例如获得Node2,则向Node2发出查询请求,若Node2查询成功,则将查询结果返回给用户;
[0078]若第二次查询失败、或者检测到异常,则进行第三次配置随机加权值,选择加权值最高的数据存储节点进行查询,直至得到查询结果并返回给用户。
[0079]实施中,在接收到数据查询请求后,对数据存储节点的数据进行查询之前,还可以包括:
[0080]对接收到的数据查询请求进行语法解析;
[0081]根据语法解析确定该查询请求将要查询的数据存储节点;
[0082]对该数据存储节点合成数据查询的查询接口。
[0083]具体实施中,接收到数据查询请求后,可以对该数据查询请求进行语法解析,通过语法解析确定数据源(即数据存储节点),该数据源可以以服务形式发布,数据源和shard对应信息发布到Solr上面。确定了数据源之后,可以合成Solr可识别的查询接口,通过该接口,对数据进行查询。对查询到的结果,可以进一步进行处理,例如拼接、过滤、或进行复杂运算等。
[0084]实施中,在得到查询结果后,还可以包括:
[0085]对查询到的数据进行数据封装;
[0086]将该封装的数据返回至发出查询请求的终端。
[0087]具体实施中,可以将查询到的数据进行数据封装,以便进行传输,或者将查询到的数据转化为用户设备可以识别和使用的形式。这里并不限制数据封装的方法和程序,该步骤是本领域技术人员容易理解和实现的。
[0088]实施中,可以接收数据查询请求并发送至开源的搜索服务器Apache Solr,在Apache Solr中对数据存储节点的数据进行查询。
[0089]具体实施中,上述数据查询方法可以适用于开源的搜索服务器Apache Solr0
[0090]基于同一发明构思,本发明实施例中还提供了一种数据查询装置,由于该装置解决问题的原理与一种数据查询方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0091]图4为本发明实施例中数据查询装置的结构示意图,可以包括:
[0092]第一接收模块401,用于接收数据查询请求;
[0093]加权模块402,用于对数据存储节点配置随机加权值;
[0094]查询模块403,用于根据该加权值对数据存储节点的数据进行查询;
[0095]加权模块402,进一步用于在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值;
[0096]查询模块403,进一步用于根据重新配置的加权值对数据存储节点的数据进行查询,直至得到查询结果。
[0097]实施中,查询模块403还可以用于在根据该加权值对数据存储节点的数据进行查询时,确定加权值最高的数据存储节点,并对该加权值最高的数据存储节点的数据进行查询。
[0098]实施中,可以进一步包括:
[0099]解析模块404,用于在接收到数据查询请求后对接收到的数据查询请求进行语法解析;
[0100]确定模块405,用于根据语法解析确定该查询请求将要查询的数据存储节点;
[0101]接口模块406,用于对数据存储节点的数据进行查询之前对该数据存储节点合成数据查询的查询接口。
[0102]实施中,可以进一步包括:
[0103]封装模块407,用于在将查询到的数据返回终端之前,对查询到的数据进行数据封装。
[0104]实施中,第一接收模块401还可以用于接收数据查询请求并发送至开源的搜索服务器Apache Solr,在Apache Solr中对数据存储节点的数据进行查询。
[0105]为了描述的方便,以上所述装置的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
[0106]下面结合一个具体的实施示例来进行说明。
[0107]首先,第一接收模块401接收到数据查询请求,将该数据查询请求发送至解析模块404,解析模块404可以对该数据查询请求进行语法解析,并将解析结果发送至确定模块405,确定模块405根据语法解析结果及加权模块402配置随机加权值的高低确定待查询的数据存储节点,确定了要查询的数据存储节点之后,接口模块406可以合成Solr可识别的查询接口,通过该接口,查询模块403对数据进行查询。对查询到的结果,封装模块407可以进行数据封装后返回给用户。
[0108]通过上述实施例,可以看出,本发明实施例提供的技术方案通过在接收到数据查询请求或收到数据查询失败的消息后对数据存储节点配置随机加权值,根据该加权值对数据存储节点的数据进行查询,避免了因轮询方式而产生的查询热点节点,在其中一个数据存储节点崩溃时并不影响用户的查询,并且可以通过设置加权值高低来实现将查询请求优先发送至某个数据查询节点。
[0109]此外,Apache Solr按照collect1n > shard > core从大到小来组织同一类型的索引,并为core提供了 replica来保证索引数据的高可用性。
[0110]在写入数据的时候,Apache Solr只提供了两种写入数据隔离策略,例如在利用DIH将数据库向Apache Solr写入数据的时候:(I) Apache Solr能够向collect1n中所有的shard中的所有core插入、修改、删除数据(如图5上图),或者(2)只向某个单独shard的特定的core插入、修改、删除数据(如图5下图)。
[0111]对于Apache Solr的数据隔离策略(I),对数据的操作(插入、修改、删除)会在整个collect1n扩展开来,增加了数据的安全隐患。并且如插入操作也在整个collect1n蔓延,所有shard中的core都保存新插入的数据,会造成数据((N_rl)+NreplicJ倍的冗余。
[0112]对于Apache Solr的数据隔离策略(2),将所有的操作限制于某个特定core,杜绝了数据安全隐患,但是其缺点是数据写入也只能仅限于特定的core,不能写入到replica中,如图5下图所示,在写入数据到shardN的corel的时候,replical不能接收到数据,此时高可用性就等于形同虚设。
[0113]图6为本发明实施例中的对存储数据操作方法的使用流程示意图,如图所示,可以包括步骤:
[0114]步骤601、接收将要存储的数据;
[0115]步骤602、将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n是包含多个shardο
[0116]实施中,通过数据导入处理程序DIH将将要存储的数据发送到一个shard下的core和replica中存储。
[0117]实施中,可以进一步包括:
[0118]对同一个shard下的core中存储的数据进行修改或删除时,根据core中修改或删除的数据对该shard下的replica中存储的数据进行修改或删除。
[0119]具体实施中,同一个shard下的core中存储的数据与其对应的replica中存储的数据可以是同步的,core中的数据进行修改或删除时,replica中的数据根据core中修改或删除的数据对该shard下的replica中存储的数据进行修改或删除。
[0120]实施中,可以接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行操作。
[0121]具体实施中,本发明实施例中改进了 Apache Solr,使得数据隔离策略更加灵活,具体表现为:在Apache Solr两种的数据隔离策略的基础上面,提供了第三种数据隔离侧路,即向同一个shard下面的所有core写入数据,如图7所示。
[0122]图7为本发明实施例中对存储数据操作方法的实施示意图,如图所示,通过DIH导入数据到Apache Solr的corel中,同时也会导入到replical中,但不会影响到其他shard的数据;对某个core上面的数据进行操作(删除或者修改),只会影响同一 shard下面的core和replica,影响不到其他shard的数据。
[0123]基于同一发明构思,本发明实施例中还提供了一种对存储数据的操作装置,由于该装置解决问题的原理与一种对存储数据的操作方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0124]图8为本发明实施例中对存储数据的操作装置的结构示意图,可以包括:
[0125]第二接收模块801,用于接收将要存储的数据;
[0126]第一存储模块802,用于将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n 是包含多个 shard。
[0127]实施中,第一存储模块802还可以用于通过数据导入处理程序DIH将将要存储的数据发送到一个shard下的core和replica中存储。
[0128]实施中,第一存储模块802还可以用于对同一个shard下的core中存储的数据进行修改或删除时,根据core中修改或删除的数据对该shard下的replica中存储的数据进行修改或删除。
[0129]实施中,第二接收模决801还可以用于接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行操作。
[0130]为了描述的方便,以上所述装置的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
[0131]下面结合一个具体的实施示例来进行说明。
[0132]首先,第二接收模块801接收将要存储的数据,然后第一存储模块802通过数据导入处理程序DIH将将要存储的数据发送到一个shard下的core和replica中存储,该shard是同时包含core和replica。当同一个shard下的core中存储的数据进行了修改或删除后,该shard下的replica会进行数据同步,使其中的数据与core中的数据保持一致。
[0133]通过上述实施例,可以看出,本发明实施例提供的技术方案将待存储的数据发送至一个同时包含core和replica的shard中存储,可以实现在同一个shard中的core和replica数据的同步,若发生误操作,仅在该shard中会出现问题,并不会蔓延至整个collect1n ;由于只是将数据发送至某一个shard中的core和replica中存储,因此不会造成数据的冗余。
[0134]另外,本发明实施例中还提供了一种数据存储方法,如9为本发明实施例中数据存储方法的使用流程示意图,如图所示,可以包括步骤:
[0135]步骤901、接收将要存储的数据;
[0136]步骤902、将数据分别发送至一个shard下的core和replica中存储,所述replica是创建core时创建的。
[0137]具体实施中,仓Il建core时可以自动创建replica。利用这个特性,本发明实施例中提供的技术方案可以自动检测replica数目,并与core对应的创建replica ;当某个replica出现问题的时候,可以自动重建replica,这保证了高可用性,并且简化了 replica的创建过程,将人为干预转化为系统自动执行,保证了 replica的数量,确保了数据安全。
[0138]实施中,可以定时从不同的数据源接收将要存储的数据并将其存储在同一个shard 下的 core 和 replica 中。
[0139]具体实施中,定时从不同数据源接收数据的任务能够方便快捷的实时写入来自各种不同数据源的数据,数据写入延时可以为秒级,从而为用户提供近实时查询服务。
[0140]实施中,在core状态异常时,可以将数据发送至同一个shard下的replica中存储。
[0141]具体实施中,在core发生异常时,可以将任务直接切换到与其对应的replica中,这样做保证了系统的正常运行。
[0142]实施中,在创建replica失败、core状态异常、以及定时接收将要存储的数据的过程发生异常其中任意一个出现时,可以进行故障通知。
[0143]具体实施中,本发明实施例中可以监控各个部分的状态和操作,若出现问题,能够快速及时的进行故障通知,使运维人员准确进行故障修理。
[0144]实施中,可以接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行存储。
[0145]实施中,仓1」建core和replica可以是根据存储在Apache Solr上的core基本信息、定时数据导入信息、定时数据导入执行信息、以及索引数据分布信息来创建的。
[0146]基于同一发明构思,本发明实施例中还提供了一种数据存储装置,由于该装置解决问题的原理与一种数据存储方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0147]图10为本发明实施例中数据存储装置的结构示意图,可以包括:
[0148]第三接收模块1001,用于接收将要存储的数据;
[0149]第二存储模块1002,用于将数据分别发送至一个shard下的core和replica中存储,该replica是创建core时创建的。
[0150]实施中,第三接收模块1001还可以用于定时从不同的数据源接收将要存储的数据;
[0151]第二存储模块1002还可以用于将从不同数据源接收的数据存储在同一个shard下的core和replica中。
[0152]实施中,第二存储模块1002还可以用于在core状态异常时,将数据发送至同一个shard下的replica中存储。
[0153]实施中,还可以进一步包括:
[0154]通知模块1003,用于在创建r印Iica失败、core状态异常、以及定时接收将要存储的数据的过程发生异常其中任意一个出现时进行故障通知。
[0155]实施中,第三接收模块1001还可以进一步用于接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行存储。
[0156]实施中,还可以进一步包括:
[0157]创建模块1004,用于根据存储在Apache Solr上的core基本信息、定时数据导入信息、定时数据导入执行信息、以及索引数据分布信息来创建core和replica。
[0158]为了描述的方便,以上所述装置的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
[0159]下面结合一个具体的实施示例来进行说明。
[0160]首先,第三接收模块1001接收将要存储的数据,然后第二存储模块1002将数据分别发送至一个shard下的core和replica中存储,该replica是创建core时创建的。同时,第三接收模块1001会定时地从不同的数据源接收要存储的数据,并发送至第二存储模块1002将其存储在同一个shard下的core和replica中。在存储过程中出现异常时,若core无法继续存储,则将数据发送至同一个shard下的replica中存储;若存储失败则通知通知模决1003进行故障通知。
[0161]通过上述实施例,可以看出,本发明实施例提供的技术方案在创建core时自动创建replica,将人工干预操作转化为自动执行,使得replica的创建更加灵活。
[0162]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0163]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0164]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0165]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0166]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0167]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种数据查询方法,其特征在于,所述方法包括步骤: 接收数据查询请求; 对数据存储节点配置随机加权值; 根据该加权值对数据存储节点的数据进行查询; 在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值进行查询,直至得到查询结果。
2.如权利要求1所述的方法,其特征在于,根据该加权值对数据存储节点的数据进行查询时,进一步包括: 确定加权值最高的数据存储节点; 对该加权值最高的数据存储节点的数据进行查询。
3.如权利要求1或2所述的方法,其特征在于,在接收到数据查询请求后,对数据存储节点的数据进行查询之前,进一步包括: 对接收到的数据查询请求进行语法解析; 根据语法解析确定该查询请求将要查询的数据存储节点; 对该数据存储节点合成数据查询的查询接口。
4.如权利要求1至3任一所述的方法,其特征在于,在得到查询结果后,进一步包括: 对查询到的数据进行数据封装; 将该封装的数据返回至发出查询请求的终端。
5.如权利要求1至4任一所述的方法,其特征在于,接收数据查询请求并发送至开源的搜索服务器Apache Solr,在Apache Solr中对数据存储节点的数据进行查询。
6.一种数据查询装置,其特征在于,所述装置包括: 第一接收模块,用于接收数据查询请求; 加权模块,用于对数据存储节点配置随机加权值; 查询模块,用于根据该加权值对数据存储节点的数据进行查询; 加权模块,进一步用于在接收到数据查询失败的消息后,重新对数据存储节点配置随机加权值; 查询模块,进一步用于根据重新配置的加权值对数据存储节点的数据进行查询,直至得到查询结果。
7.如权利要求6所述的装置,其特征在于,查询模块进一步用于在根据该加权值对数据存储节点的数据进行查询时,确定加权值最高的数据存储节点,并对该加权值最高的数据存储节点的数据进行查询。
8.如权利要求6或7所述的装置,其特征在于,进一步包括: 解析模块,用于在接收到数据查询请求后对接收到的数据查询请求进行语法解析; 确定模块,用于根据语法解析确定该查询请求将要查询的数据存储节点; 接口模块,用于对数据存储节点的数据进行查询之前对该数据存储节点合成数据查询的查询接口。
9.如权利要求6至8任一所述的装置,其特征在于,进一步包括: 封装模块,用于在将查询到的数据返回终端之前,对查询到的数据进行数据封装。
10.如权利要求6至9任一所述的装置,其特征在于,第一接收模块进一步用于接收数据查询请求并发送至开源的搜索服务器Apache Solr,在Apache Solr中对数据存储节点的数据进行查询。
11.一种对存储数据的操作方法,其特征在于,所述方法包括步骤: 接收将要存储的数据; 将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n是包含多个shard。
12.如权利要求11所述的方法,其特征在于,通过数据导入处理程序DlH将将要存储的数据发送到一个shard下的core和replica中存储。
13.如权利要求11或12所述的方法,其特征在于,进一步包括: 对同一个shard下的core中存储的数据进行修改或删除时,根据core中修改或删除的数据对该shard下的replica中存储的数据进行修改或删除。
14.如权利要求11至13任一所述的方法,其特征在于,接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行操作。
15.一种对存储数据的操作装置,其特征在于,所述装置包括: 第二接收模块,用于接收将要存储的数据; 第一存储模块,用于将数据分别发送至集合collect1n下一切片shard下的核心core和副本replica中存储,所述shard是同时包含core和replica,所述collect1n是包含多个shard ο
16.如权利要求15所述的装置,其特征在于,第一存储模块进一步用于通过数据导入处理程序DIH将将要存储的数据发送到一个shard下的core和replica中存储。
17.如权利要求15或16所述的装置,其特征在于,第一存储模块进一步用于对同一个shard下的core中存储的数据进行修改或删除时,根据core中修改或删除的数据对该shard下的replica中存储的数据进行修改或删除。
18.如权利要求16至17所述的装置,其特征在于,第二接收模块进一步用于接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行操作。
19.一种数据存储方法,其特征在于,所述方法包括步骤: 接收将要存储的数据; 将数据分别发送至一个shard下的core和replica中存储,所述replica是创建core时创建的。
20.如权利要求19所述的方法,其特征在于,定时从不同的数据源接收将要存储的数据并将其存储在同一个shard下的core和replica中。
21.如权利要求19或20所述的方法,其特征在于,在core状态异常时,将数据发送至同一个shard下的replica中存储。
22.如权利要求19至21任一所述的方法,其特征在于,在创建replica失败、core状态异常、以及定时接收将要存储的数据的过程发生异常其中任意一个出现时进行故障通知。
23.如权利要求19至22任一所述的方法,其特征在于,接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行存储。
24.如权利要求23所述的方法,其特征在于,其特征在于,创建core和replica是根据存储在Apache Solr上的core基本信息、定时数据导入信息、定时数据导入执行信息、以及索弓I数据分布信息来创建的。
25.一种数据存储装置,其特征在于,所述装置包括: 第三接收模块,用于接收将要存储的数据; 第二存储模块,用于将数据分别发送至一个shard下的core和replica中存储,所述replica是创建core时创建的。
26.如权利要求25所述的装置,其特征在于,第三接收模块进一步用于定时从不同的数据源接收将要存储的数据; 第二存储模块进一步用于将从不同数据源接收的数据存储在同一个shard下的core和 replica 中。
27.如权利要求25或26所述的装置,其特征在于,第二存储模块进一步用于在core状态异常时,将数据发送至同一个shard下的replica中存储。
28.如权利要求25至27任一所述的装置,其特征在于,进一步包括: 通知模块,用于在创建replica失败、core状态异常、以及定时接收将要存储的数据的过程发生异常其中任意一个出现时进行故障通知。
29.如权利要求25至28任一所述的装置,其特征在于,第三接收模块进一步用于接收将要存储的数据并发送至开源的搜索服务器Apache Solr,在Apache Solr中对同一个shard下的core和replica中的数据进行存储。
30.如权利要求29所述的装置,其特征在于,其特征在于,进一步包括: 创建模块,用于根据存储在Apache Solr上的core基本信息、定时数据导入信息、定时数据导入执行信息、以及索引数据分布信息来创建core和replica。
【文档编号】G06F17/30GK104268262SQ201410531834
【公开日】2015年1月7日 申请日期:2014年10月10日 优先权日:2014年10月10日
【发明者】孙陶然, 杨有鹏, 符子文, 全伟 申请人:拉卡拉支付有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1