一种大数据筛选方法及装置制造方法

文档序号:6633786阅读:289来源:国知局
一种大数据筛选方法及装置制造方法
【专利摘要】本发明公开了一种大数据筛选方法及装置,该方法包括按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块;接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块;访问所述数据快速筛选存储模块,使用所述索引筛选再查询结果,返回筛选结果。本发明提高了对大数据的数据查询结果进行筛选的效率,减少了对整个存储集群及查询WEB服务器并发查询的压力,提高了WEB系统查询结果处理的交互性,使得查询系统的应用性更佳。
【专利说明】一种大数据筛选方法及装置

【技术领域】
[0001]本发明涉及信息检索领域,特别是一种大数据筛选方法及装置。

【背景技术】
[0002]在进行TB、GB级原始数据查询时经常需要对已经查询出的大量结果数据进行筛选查询。如果想对查询出的结果数据再次附加条件查询筛选,在小数据量情况下,一般根据查询条件,对存储有原数据的数据库进行全库查询,或者对存储有原数据的数据表进行全表查询,得到查询结果。但对于大数据一般存储在多个集群存储器上,每个集群存储器按照预定策略分别记录一部分结果数据,从而达到数据存储负载均衡的目的,也即分布式的结果数据存储,另外在某些系统中还对每一个集群存储器设置冗余集群存储器的方式进行历史数据冗余。此时,系统中的结果数据分布式地存储于多个不同的集群存储器中,对于各项结果数据在集群存储器中与冗余集群存储器中均存在记录。在采用上述分布式结果数据存储系统时,对某项结果数据的再查询必须首先获取结果数据对应的集群存储器地址,同时该集群存储器当前能够响应查询请求并返回查询结果。存在互为冗余的集群存储器时,需要实时判断向哪个集群存储器进行查询。因此,对首次查询结果数据的再次查询难度较大,并且查询性能及中标率会有所下降。对于大数据的数据查询结果进行筛选的效率较低,并且对整个存储集群及查询WEB服务器产生极大的并发,使得整个查询系统的可用性不佳。


【发明内容】

[0003]本发明的目的是提供一种大数据筛选方法及装置,解决对首次查询结果进行再查询难度大、查询性能及中标率下降的问题,提高了对大数据的数据查询结果进行筛选的效率,减少了对整个存储集群及查询WEB服务器并发查询的压力,提高了 WEB系统查询结果处理的交互性,使得查询系统的应用性更佳。
[0004]本发明为实现上述目的采用的技术方案是:一种大数据筛选方法,包括如下步骤:
[0005]按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块;
[0006]接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块;
[0007]访问所述数据快速筛选存储模块,使用所述索引筛选再查询结果,返回筛选结果。
[0008]进一步,所述首次查询包括,按照首次查询条件查询数据存储模块,返回首次查询结果给页面展示模块用于页面展示,并将首次查询结果存储于缓存数据库。
[0009]进一步,所述按照首次查询条件对首次查询结果进行再查询之前包括,记录首次查询条件,访问缓存数据库并读取首次查询结果。
[0010]进一步,所述接收再查询结果之后、建立再查询结果的索引之前包括,建立再查询结果表。
[0011]进一步,所述建立再查询结果的索引包括,根据筛选条件建立索引,通过保存在所述索引中的页码找到再查询结果表中对应的记录。
[0012]进一步,所述将所述再查询结果和索引发送到数据快速筛选存储模块包括,将再查询结果表和索引存储于数据快速筛选存储模块的数据库内。
[0013]第二方面,一种大数据筛选装置,包括:
[0014]首次查询结果调度模块,用于按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块;
[0015]数据快速筛选准备模块,用于接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块;
[0016]筛选查询服务模块,用于访问所述数据快速筛选存储模块,使用索引筛选再查询结果,返回筛选结果。
[0017]进一步,还包括页面查询展示模块,用于提供首次数据查询接口和筛选查询接口。
[0018]进一步,所述首次查询结果调度模块包括:
[0019]首次查询条件获取单元,用于获取首次数据查询的查询条件;
[0020]首次查询结果获取单元,用于访问缓存数据库并读取首次查询结果;
[0021]数据再查询单元,用于按照首次查询条件对首次查询结果进行再查询,得到再查询结果;
[0022]再查询结果发送单元,用于将所述再查询结果表发送给数据快速筛选准备模块。
[0023]进一步,所述数据快速筛选准备模块包括:
[0024]再查询结果接收单元,用于接收所述再查询结果表;
[0025]索引创建单元,用于建立所述再查询结果表的索引;
[0026]数据发送单元,用于将再查询结果表和索引发送给数据快速筛选存储模块;
[0027]数据格式转换单元,用于将数据快速筛选存储模块返回的筛选结果的数据格式转换成与首次查询结果的数据格式相同,再发送给筛选查询服务模块。
[0028]本发明通过在第一次查询结束后,记录第一次查询的结果和查询条件,按照第一次查询条件对第一次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块,完成对原始数据的查询结果的调度;数据快速筛选准备模块为再查询结果建立索引,将所述再查询结果和索引发送到数据快速筛选存储模块。在对再查询结果进行筛选查询时,只需访问数据快速筛选存储模块,使用所述索引获得筛选结果,即可返回筛选结果;本发明提高了对大数据的数据查询结果进行筛选的效率,减少了对整个存储集群及查询WEB服务器并发查询的压力,提高了 WEB系统查询结果处理的交互性,使得查询系统的应用性更佳。

【专利附图】

【附图说明】
[0029]图1是本发明实施例1提供的大数据筛选方法的流程图;
[0030]图Ι-a是本发明实施例1中步骤按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块的具体的实现方式的流程图;
[0031]图l_b是本发明实施例1中步骤接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块的优选的实现方式的流程图;
[0032]图2是本发明的实施例2提供的大数据筛选装置的结构示意图;
[0033]图3是本发明的大数据筛选装置的结构示意图。

【具体实施方式】
[0034]为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]实施例1:
[0036]本方法主要是对大数据进行查询,现阶段主要的大数据存储在关系型数据库以及非关系型数据库中。关系型数据库主要代表有Oracle,非关系型数据库的代表有HBASE(Hadoop database)。不论原始数据存储在哪种类型的数据库,数据库均是以集群的方式存在,因此,此方法不仅适用于关系型数据库,同时也适用于非关系型数据库。下面以两种数据库混装数据进行持久化为例,具体说明本方法的技术方案。
[0037]如图1所示,本发明提供一种大数据筛选方法,包括:
[0038]步骤S100:按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块;
[0039]首次查询条件是第一次查询存储原始数据的数据存储模块的条件,首次查询结果是按照第一次查询条件查询数据存储模块所获得的查询结果。对于不同的首次查询条件,得到的首次查询结果也不同。
[0040]参照图Ι-a所示,为实现步骤S100的具体的实现方式,该步骤具体包括:
[0041]步骤101:记录首次查询条件和首次查询结果;
[0042]大量原始数据存储在数据存储模块的HBASE集群中,部分存储在Oracle集群中,第一次查询数据存储模块时,根据查询条件返回查询结果,暂存查询结果和查询条件,从而避免筛选第一次查询结果时再访问数据存储模块,提高了查询效率。数据存储模块是用以存储数据的数据库集群,包括关系型数据库和非关系型数据库。
[0043]步骤102:按照首次查询条件查询首次查询结果,得到再查询结果;
[0044]利用首次查询条件筛选首次查询结果中与查询条件无关的数据,确保数据的准确度。如果首次查询比较精确,首次查询结果中没有与查询条件无关的数据,那么,按照首次查询条件查询首次查询结果所得到的再查询结果的数据与首次查询结果的数据相同。
[0045]步骤103:将再查询结果发送给数据快速筛选准备模块;
[0046]将经过筛选后的再查询结果的数据格式转换成JS0N格式发送给数据快速筛选准备模块中。具体是:再查询结果中包括Oracle数据库中的数据对象和Hbase数据库中的数据对象。使用JAVA语言中java对象转JS0N对象的工具包将Oracle数据库提供的java数据对象转换为JS0N对象。Hbase数据库中得到的结果为压缩的键值对字符串,将其解压后利用JAVA语言的java字符串转JS0N对象的工具包将其转为JS0N对象。JS0N作为一种轻量级的数据交换格式,基于 JavaScript (Standard ECMA-262 3rd Edit1n-December1999)的一个子集,完全独立于语言的文本格式,是一种理想的数据交换语言,具有易于人阅读和编写,同时也易于机器解析和生成的特点。
[0047]步骤S110:接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块;
[0048]参照图Ι-b所示,为步骤S110的一个优选地实现方式,该步骤具体包括:
[0049]步骤S111:接收所述JS0N格式的再查询结果,并利用solr技术建立再查询结果的索引;所述索引是根据筛选条件来建,是筛选条件表中一列或多列按照一定顺序建立的列值与记录行之间的对应关系表,其中可以按照需要以升序或降序的顺序建立列值与记录行之间的对应关系,尤其重要的是需要筛选的字段必须建索引。索引的建立是由solr技术本身提供的方法进行实现。Solr是一个独立的企业级搜索应用服务器,它对外提供ffeb-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
[0050]再查询结果是按照第一次查询条件对首次查询结果进行筛选得到的查询结果。将所述再查询结果和索引发送到数据快速筛选存储模块;筛选存储模块是服务器中分配的物理存储单元。
[0051]数据快速筛选准备模块具体作用是将通过第一次查询所得的数据转化为JS0N对象,并且将JS0N对象存储到数据存储模块。
[0052]步骤112:将再查询结果和索引存储于数据快速筛选存储模块的Mongo DB ;存放再查询结果和索引的数据库不在原始数据存储的数据存储模块中,避免再次查找存储大量数据的集群,提高了查询效率。Mongo DB是一种非关系型数据库,其可以很好的实现面向对象的思想,在Mongo DB中每一条记录都是一个Document对象。
[0053]步骤S120:访问所述数据快速筛选存储模块,使用所述索引筛选再查询结果,每二次查询或是筛选查询时不再去原始的Oracle数据库和Hbase数据库进行查询,而是直将查询条件发送到筛选查询服务模块,在索引中找到符合筛选条件的索引值,通过保存在所述索引中的页码快速找到表中对应的记录,从数据快速筛选存储模块中取数据,返回给前台,供页面展示。
[0054]筛选再查询结果是通过http收到一个JS0N响应来实现的。
[0055]按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块;根据筛选条件,建立再查询结果的索引,并将索引文件和再查询结果存储于数据快速筛选存储模块。当需要对第一次查询结果进行筛选时,可以通过索引,准确的查找到目标数据。第一次查询数据的结果和索引文件均存储于数据快速筛选模块,实现对数据查询结果的快速筛选,避免了对第一查询结果进行筛选时再访问数据存储模块,减少了查询服务器对数据存储模块的并发压力,提高了整个系统的可用性。页面查询展示模块提供筛选查询接口,利用筛选查询服务模块对数据快速筛选存储模块进行数据查询,使用所述再查询结果的索引快速查找到拟筛选的数据,将筛选结果返回数据快速筛选准备模块,由数据筛选准备模块将筛选结果的数据格式转换成与原页面展示的数据格式相同,并发送给筛选查询服务模块,由筛选查询模块将筛选结果经筛选查询接口发送给页面查询展示模块,避免改变原有的页面展示,客户的体验度更好。
[0056]实施例2:
[0057]如图2所示,一种大数据筛选装置,包括:
[0058]首次查询结果调度模块220,用于按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块240 ;
[0059]所述首次查询结果调度模块220包括:
[0060]首次查询条件获取单元221,用于获取首次数据查询的查询条件;
[0061]首次查询结果获取单元222,用于访问缓存数据库,并读取首次查询结果;
[0062]其中,缓存数据库是服务器上指定的物理存储空间。
[0063]数据再查询单元223,用于按照首次查询条件对首次查询结果进行再查询,得到再查询结果;另外,还用于利用JAVA语言中java对象转JS0N对象的工具包将Oracle数据库提供的java数据对象转换为JS0N对象。Hbase数据库中得到的结果为压缩的键值对字符串,将其解压后利用JAVA语言的java字符串转JS0N对象的工具包将其转为JS0N对象。
[0064]再查询结果发送单元224,用于将所述再查询结果表发送给数据快速筛选准备模块 240。
[0065]数据快速筛选准备模块240,用于接收所述再查询结果,按照筛选条件建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块250 ;
[0066]所述数据快速筛选准备模块240包括:
[0067]再查询结果接收单元241,用于接收所述再查询结果表;
[0068]索引创建单元242,用于建立所述再查询结果表的索引;
[0069]数据发送单元243,用于将再查询结果表和索引发送给数据快速筛选存储模块250 ;
[0070]数据格式转换单元244,用于将数据快速筛选存储模块250返回的筛选结果的数据格式转换成与首次查询结果的数据格式相同,此处数据快速筛选存储模块250返回的查询结果为JS0N格式的数据,需要将其格式为java格式的数据对象。整个转格式过程是将JS0N字符串通过JAVA语言提供的方法将其转换成对应的java对象,再发送给筛选查询服务模块230。
[0071]筛选查询服务模块230,用于访问所述数据快速筛选存储模块250,使用索引筛选再查询结果,返回筛选结果。
[0072]该装置还包括页面查询展示模块210,用于提供首次数据查询接口和筛选查询接□。
[0073]综上所述,在原有的数据查询系统增加数据快速筛选准备模块240和数据快速筛选存储模块250,数据快速筛选准备模块240为首次查询结果调度模块220中产生的再查询结果建立索引,并将建立的索引文件连同再查询结果存储到数据快速筛选存储模块250。在对第一次查询结果进行再次查询时,仅需要直将查询条件发送到筛选查询服务模块230,在索引中找到符合筛选条件的索引值,通过保存在所述索引中的页码快速找到表中对应的记录,从数据快速筛选存储模块250中取数据,返回给前台,供页面展示。解决对首次查询结果进行再查询难度大、查询性能及中标率下降的问题,提高了对大数据的数据查询结果进行筛选的效率,减少了对整个存储集群及查询WEB服务器并发查询的压力,提高了 WEB系统查询结果处理的交互性,使得查询系统的应用性更佳。
[0074]实施例3:
[0075]参照图3所示,为本发明大数据筛选装置的结构框图。
[0076]页面查询展示模块310提供查询接口和筛选接口,根据不同的业务需求分别向数据库查询服务层320和筛选查询服务模块321发送查询数据指令,并分别接收数据库查询服务层320和数据快速筛选准备模块340返回的查询结果。第一次查询数据库时,数据库查询服务层320通过查询接口接收查询数据指令,访问数据存储模块330,根据查询条件返回查询结果给页面查询展示模块310,进行展示。首次查询结果调度模块322记录第一次查询的查询条件,并按照所述第一次查询条件对第一次查询结果进行再查询调度,滤除第一次查询结果中可能存在的与第一次查询条件无关的数据。若不存在与第一次查询条件无关的数据,则再查询调度的结果与第一次查询结果相同。查询结果调度模块322将再查询调度得到的对象的java格式转换成JSON格式,并发送给数据快速筛选准备模块340。数据快速筛选准备模块340根据筛选条件建立索引,并将索引文件和再查询结果存储于数据快速筛选存储层350。对第一次查询结果进行再次筛选时,筛选查询服务模块321通过筛选接口接收筛选指令,在索引中找到符合筛选条件的索引值,通过保存在所述索引中的页码快速找到表中对应的记录,访问数据快速筛选存储层350,获得待查询数据,并发送给数据快速筛选准备模块340。数据快速筛选准备模块340通过JAVA语言提供的方法将JSON字符串转换成第一次查询结果的数据格式相同的java对象,将转换后的筛选结果通过筛选接口发送给页面查询展示模块310进行展示。
[0077]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
[0078]以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种大数据筛选方法,其特征在于,包括如下步骤: 按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块; 接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块; 访问所述数据快速筛选存储模块,使用所述索引筛选再查询结果,返回筛选结果。
2.根据权利要求1所述的大数据筛选方法,其特征在于:所述首次查询包括按照首次查询条件查询数据存储模块,返回首次查询结果给页面展示模块用于页面展示,并将首次查询结果存储于缓存数据库。
3.根据权利要求1或2所述的大数据筛选方法,其特征在于:所述按照首次查询条件对首次查询结果进行再查询之前包括,记录首次查询条件,访问缓存数据库并读取首次查询结果。
4.根据权利要求3所述的大数据筛选方法,其特征在于:所述接收再查询结果之后、建立再查询结果的索引之前包括,建立再查询结果表。
5.根据权利要求1所述的大数据筛选方法,其特征在于:所述建立再查询结果的索引包括,根据筛选条件建立索引,通过保存在所述索引中的页码找到再查询结果表中对应的记录。
6.根据权利要求4或5所述的大数据筛选方法,其特征在于:所述将所述再查询结果和索引发送到数据快速筛选存储模块包括,将再查询结果表和索引存储于数据快速筛选存储模块的数据库内。
7.一种大数据筛选装置,其特征在于,包括: 首次查询结果调度模块,用于按照首次查询条件对首次查询结果进行再查询,将再查询结果发送给数据快速筛选准备模块; 数据快速筛选准备模块,用于接收所述再查询结果,建立再查询结果的索引,将所述再查询结果和索引发送到数据快速筛选存储模块; 筛选查询服务模块,用于访问所述数据快速筛选存储模块,使用索引筛选再查询结果,返回筛选结果。
8.根据权利要求7所述的大数据筛选装置,其特征在于,还包括页面查询展示模块,用于提供首次数据查询接口和筛选查询接口。
9.根据权利要求7所述的大数据筛选装置,其特征在于,所述首次查询结果调度模块包括: 首次查询条件获取单元,用于获取首次数据查询的查询条件; 首次查询结果获取单元,用于访问缓存数据库并读取首次查询结果; 数据再查询单元,用于按照首次查询条件对首次查询结果进行再查询,得到再查询结果; 再查询结果发送单元,用于将所述再查询结果表发送给数据快速筛选准备模块。
10.根据权利要求8所述的大数据筛选装置,其特征在于,所述数据快速筛选准备模块包括: 再查询结果接收单元,用于接收所述再查询结果表; 索引创建单元,用于建立所述再查询结果表的索引; 数据发送单元,用于将再查询结果表和索引发送给数据快速筛选存储模块; 数据格式转换单元,用于将数据快速筛选存储模块返回的筛选结果的数据格式转换成与首次查询结果的数据格式相同,再发送给筛选查询服务模块。
【文档编号】G06F17/30GK104408084SQ201410636420
【公开日】2015年3月11日 申请日期:2014年11月6日 优先权日:2014年11月6日
【发明者】吴雄辉 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1