发明内容
本发明的主要目的在于提供一种数据查询处理方法及装置,以解决现有技术中基于数据转化处理工具执行查询处理时,处理效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据查询处理方法。
根据本发明的数据查询处理方法包括:获取待查询数据;对待查询数据执行排序处理,得到排序后的待查询数据;判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询;如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果;以及将第一数据查询结果存储至缓存数据库。
进一步地,对待查询数据执行排序处理,得到排序后的待查询数据包括:确定待查询数据来源的系统;判断待查询数据来源的系统是否为支持数据排序的系统;如果待查询数据来源的系统为支持数据排序的系统,则对待查询数据执行排序处理,得到在与排序后的待查询数据对应的查询结果;如果待查询数据来源的系统不支持数据排序的系统,加载数据转化处理工具;以及根据数据转化处理工具中的排序组件对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果。
进一步地,如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询之后,该方法还包括:获取在缓存数据库中执行数据查询的第二数据查询结果;将第二数据查询结果发送至数据转化处理工具;以及数据转化处理工具将第二数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
进一步地,将第一数据查询结果存储至缓存数据库之后,该方法还包括:获取在查询数据库中执行数据查询的第一数据查询结果;将第一数据查询结果发送至数据转化处理工具;以及数据转化处理工具将第一数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
进一步地,在对待查询数据执行排序处理,得到排序后的待查询数据之后,在判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果之前,该方法还包括:将数据转化处理工具中的缓存模式设置为部分缓存模式,其中,在部分缓存模式下,数据转化处理工具缓存数据库中存储部分数据;以及在将数据转化处理工具中的缓存模式设置为部分缓存模式之后,确定缓存数据库,其中,缓存数据库用于对待查询数据执行查询的数据库。
进一步地,如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果包括:确定查询数据库;接收查询指令,其中,查询指令为用于指示执行数据查询的指令;以及根据查询指令在查询数据库中执行数据查询,得到第一数据查询结果。
为了实现上述目的,根据本发明的另一方面,提供了一种数据查询处理装置。
根据本发明的数据查询处理装置包括:第一获取单元,用于获取待查询数据;排序单元,用于对待查询数据执行排序处理,得到排序后的待查询数据;判断单元,用于判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;第一查询单元,用于在缓存数据库中能查询到与排序后的待查询数据对应的查询结果的情况下,在缓存数据库中执行数据查询;第二查询单元,用于在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果的情况下,在查询数据库中执行数据查询,返回第一数据查询结果;以及存储单元,用于将第一数据查询结果存储至缓存数据库。
进一步地,排序单元包括:第一确定模块,用于确定待查询数据来源的系统;判断模块,用于判断待查询数据来源的系统是否为支持数据排序的系统;第一排序模块,用于在待查询数据来源的系统为支持数据排序的系统的情况下,则对待查询数据执行排序处理,得到在排序后的待查询数据;加载模块,用于在待查询数据来源的系统不支持数据排序的系统的情况下,加载数据转化处理工具;以及第二排序模块,用于根据数据转化处理工具中的排序组件对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果。
进一步地,该装置还包括:第二获取单元,用于获取在缓存数据库中执行数据查询的第二数据查询结果;发送单元,用于将第二数据查询结果发送至数据转化处理工具;以及转发单元,用于数据转化处理工具将第二数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
进一步地,第二查询单元包括:第二确定模块,用于确定查询数据库;接收模块,用于接收查询指令,其中,查询指令为用于指示执行数据查询的指令;以及查询模块,用于根据查询指令在查询数据库中执行数据查询,得到第一数据查询结果。
通过本发明,采用以下步骤:获取待查询数据;对待查询数据执行排序处理,得到排序后的待查询数据;判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询;如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果;以及将第一数据查询结果存储至缓存数据库,解决了现有技术中基于数据转化处理工具执行查询处理时,处理效率低的问题,进而达到了基于数据转化处理工具执行查询处理时,提升处理效率的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明的实施例,提供了一种数据查询处理方法。
图1是根据本发明第一实施例的数据查询处理方法的流程图。如图1所示,该方法包括如下的步骤S101至步骤S106:
步骤S101,获取待查询数据。
获取需要查询的数据。获取需要查询的数据方式有多种,例如,通过接收外部数据的数据确定并获取需要查询的数据;通过获取数据源的数据作为需要查询的数据等等。
步骤S102,对待查询数据执行排序处理,得到排序后的待查询数据。
对上述获取到的需要查询数据执行排序处理,得到排序后的待查询数据。通过该步骤,对待查询数据进行排序,将相似或相同的数据排列相邻,在对待查询数据执行查询处理时,加快了对待查询数据查询处理的效率。
步骤S103,判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果。
需要说明的是,在发明中,缓存数据库为ETL缓存。ETL缓存为系统内的缓存,供ETL过程使用。
加载数据转化处理工具(SSIS),在SSIS的查询(Lookup)组件里,设置Cache模式为部分缓存模式,其中,在部分缓存模式下,该数据转化处理工具ETL缓存中存储部分数据。同时制定ETL缓存的大小(ETL缓存的大小会直接影响数据在ETL缓存中的生存周期),并且勾选“Enable cache for rows with no matching entries”选项,该选项允许ETL缓存中查询返回的数据。
判断在Lookup组件的ETL缓存中是否能够查询到与排序后的待查询数据对应的查询结果。
步骤S104,如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询。
如果在Lookup组件的ETL缓存中能够查询到与排序后的待查询数据对应的查询结果,在ETL缓存中执行数据查询。通过该步骤,在ETL缓存中执行数据查询是直接访问内存,因此,提高了数据查询速度。
步骤S105,如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果。
如果在Lookup组件的ETL缓存中不能查询到与排序后的待查询数据对应的查询结果,Lookup组件向查询数据库发出请求。上述步骤中设置了“Enable cache for rowswithno matching entries”,进行待查询数据查找操作时,如果ETL缓存中不存在与待查询数据对应关系的查询结果,则向查询数据库中发起查询,返回的查询结果会被存入ETL缓存中。后续相同的待查询数据可以直接访问缓存,而不需要再向查询数据库发出请求。
优选地,如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询包括:确定查询数据库;接收查询指令,其中,查询指令为用于指示执行数据查询的指令;以及根据查询指令在查询数据库中执行数据查询,得到第一数据查询结果。
步骤S106,将第一数据查询结果存储至缓存数据库。
通过该步骤,Lookup组件向查询数据库发出请求之后,使得查询数据库查询返回值即时存储至ETL缓存中,提高了在ETL缓存中执行数据查询的命中率,从而降低对数据库的请求次数,提升整个ETL过程的效率。
本发明实施例提供的数据查询处理方法,通过获取待查询数据;对待查询数据执行排序处理,得到排序后的待查询数据;判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询;如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果;以及将第一数据查询结果存储至缓存数据库,解决了现有技术中基于数据转化处理工具执行查询处理时,处理效率低的问题。进而达到了基于数据转化处理工具执行查询处理时,提升处理效率的效果。
图2是根据本发明第二实施例的数据查询处理方法的流程图。图2可以作为图1所示实施例的一种优选实施方式。如图2所示,该方法包括如下的步骤S201至步骤S210:
步骤S201,获取待查询数据。
该步骤同上述步骤S101,在此不在赘述。
步骤S202,确定待查询数据来源的系统。
确定待查询数据来源的系统。在SSIS中,通过数据源的驱动可以判断待查询数据来源的系统,如使用FlatFile(平文件)为驱动,待查询数据来源的系统为源文件,如果待查询数据来源的系统是OLE DB,则为数据库。
步骤S203,判断待查询数据来源的系统是否为支持数据排序的系统。
为了让相同或相近的数据相邻,需要对待查询数据进行排序,因此判断待查询数据来源的系统是否为支持数据排序的系统。
步骤S204,如果待查询数据来源的系统为支持数据排序的系统,则对待查询数据执行排序处理,得到在排序后的待查询数据。
如果判断出待查询数据来源的系统为支持数据排序的系统,则对待查询数据执行排序处理,得到在与排序后的待查询数据对应的查询结果。
例如,如果判断出待查询数据来源的系统为数据库,则在数据库抽取阶段,直接在数据库中对待查询数据进行排序。
通过该步骤,对待查询数据进行排序,因此相似或相同的数据排列在一起,在对待查询数据执行查询处理时,加快了对待查询数据查询处理的效率。
步骤S205,如果待查询数据来源的系统不支持数据排序的系统,加载数据转化处理工具。
如果判断出待查询数据来源的系统不支持数据排序的系统,加载数据转化处理工具。即加载SSIS。
步骤S206,根据数据转化处理工具中的排序组件对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果。
在加载的SSIS之后,在该SSIS上添加Sort组件,根据SSIS上Sort组件对待查询数据进行排序,得到与排序后的待查询数据对应的查询结果。
通过该步骤,对待查询数据进行排序,因此相似或相同的数据排列在一起,在对待查询数据执行查询处理时,加快了对待查询数据查询处理的效率。
步骤S207,判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果。
该步骤同上述步骤S103,在此不在赘述。
步骤S208,如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询;
该步骤同上述步骤S104,在此不在赘述。
步骤S209,如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果。
该步骤同上述步骤S105,在此不在赘述。
步骤S210,将第一数据查询结果存储至缓存数据库。
该步骤同上述步骤S106,在此不在赘述。
优选地,在本发明实施例提供的数据查询处理方法中,如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询之后,该方法还包括:获取在缓存数据库中执行数据查询的第二数据查询结果;将第二数据查询结果发送至数据转化处理工具;以及数据转化处理工具将第二数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
通过将在缓存数据库中执行数据查询得到的第二数据查询结果发送至目标数据库,保证了能够对数据查询结果进行统一入库,从而方便用户查看数据查询结果。
优选地,在本发明实施例提供的数据查询处理方法中,将第一数据查询结果存储至缓存数据库之后,该方法还包括:获取在查询数据库中执行数据查询的第一数据查询结果;将第一数据查询结果发送至数据转化处理工具;以及数据转化处理工具将第一数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
通过将在查询数据库中执行数据查询得到的第一数据查询结果发送至目标数据库,保证了能够对数据查询结果进行统一入库,从而方便用户查看数据查询结果。
优选地,在本发明实施例提供的数据查询处理方法中,在对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果之后,在判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果之前,该方法还包括:将数据转化处理工具中的缓存模式设置为部分缓存模式,其中,在部分缓存模式下,数据转化处理工具缓存数据库中存储部分数据;以及在将数据转化处理工具中的缓存模式设置为部分缓存模式之后,确定缓存数据库,其中,缓存数据库用于对待查询数据执行查询的数据库。
本发明实施例提供的数据查询处理方法,通过获取待查询数据;确定待查询数据来源的系统;判断待查询数据来源的系统是否为支持数据排序的系统;如果待查询数据来源的系统为支持数据排序的系统,则对待查询数据执行排序处理,得到在排序后的待查询数据;如果待查询数据来源的系统不支持数据排序的系统,加载数据转化处理工具;根据数据转化处理工具中的排序组件对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果;判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;如果在缓存数据库中能查询到与排序后的待查询数据对应的查询结果,在缓存数据库中执行数据查询;如果在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果,在查询数据库中执行数据查询,返回第一数据查询结果;以及将第一数据查询结果存储至缓存数据库,解决了现有技术中基于数据转化处理工具执行查询处理时,处理效率低的问题,进而达到了基于数据转化处理工具执行查询处理时,提升处理效率的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种数据查询处理装置,需要说明的是,本发明实施例的数据查询处理装置可以用于执行本发明实施例所提供的用于数据查询处理方法。以下对本发明实施例提供的数据查询处理装置进行介绍。
图3是根据本发明实施例的数据查询处理装置的示意图。如图3所示,该装置包括:第一获取单元10,排序单元20,判断单元30,第一查询单元40,第二查询单元50和存储单元60。
第一获取单元10,用于获取待查询数据。
排序单元20,用于对待查询数据执行排序处理,得到排序后的待查询数据。
优选地,排序单元20包括:第一确定模块,用于确定待查询数据来源的系统;判断模块,用于判断待查询数据来源的系统是否为支持数据排序的系统;第一排序模块,用于在待查询数据来源的系统为支持数据排序的系统的情况下,则对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果;加载模块,用于在待查询数据来源的系统不支持数据排序的系统的情况下,加载数据转化处理工具;以及第二排序模块,用于根据数据转化处理工具中的排序组件对待查询数据执行排序处理,得到与排序后的待查询数据对应的查询结果。
判断单元30,用于判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果。
第一查询单元40,用于在缓存数据库中能查询到与排序后的待查询数据对应的查询结果的情况下,在缓存数据库中执行数据查询。
第二查询单元50,用于在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果的情况下,在查询数据库中执行数据查询,返回第一数据查询结果。
优选地,第二查询单元50包括:第二确定模块,用于确定查询数据库;接收模块,用于接收查询指令,其中,查询指令为用于指示执行数据查询的指令;以及查询模块,用于根据查询指令在查询数据库中执行数据查询,得到第一数据查询结果。
存储单元60,用于将第一数据查询结果存储至缓存数据库。
优选地,在本发明实施例提供的数据查询处理装置中,该装置还包括:第二获取单元,用于获取在缓存数据库中执行数据查询的第二数据查询结果;发送单元,用于将第二数据查询结果发送至数据转化处理工具;以及转发单元,用于数据转化处理工具将第二数据查询结果转发至目标数据库,其中,目标数据库为用于存储数据查询结果的数据库。
本发明实施例提供的数据查询处理装置,通过第一获取单元10获取待查询数据;排序单元20对待查询数据执行排序处理,得到排序后的待查询数据;判断单元30判断在缓存数据库中是否能够查询到与排序后的待查询数据对应的查询结果;第一查询单元40在缓存数据库中能查询到与排序后的待查询数据对应的查询结果的情况下,在缓存数据库中执行数据查询;第二查询单元50在缓存数据库中不能查询到与排序后的待查询数据对应的查询结果的情况下,在查询数据库中执行数据查询,返回第一数据查询结果;以及存储单元60将第一数据查询结果存储至缓存数据库,解决了现有技术中基于数据转化处理工具执行查询处理时,处理效率低的问题,进而达到了基于数据转化处理工具执行查询处理时,提升处理效率的效果。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。