基于多数据库的数据查询方法、系统和装置与流程

文档序号:11133974阅读:366来源:国知局
基于多数据库的数据查询方法、系统和装置与制造工艺

本发明涉及信息处理技术领域,特别是涉及一种基于多数据库的数据查询方法、系统和装置。



背景技术:

数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像以及声音等。随着技术的发展,一个数据库中通常都可存储有大量的数据。

然而,对于一些业务数据量大,或业务数据的分布广泛的公司,通常为了便于管理,而设置有多个数据库。对于上述的情况,当需要获取该多个数据库中的相关数据时,传统的查询方法通常需要针对每个数据库进行一一查询,然后再将查询出的数据进行汇总,其查询效率不高。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高查询效率的基于多数据库的数据查询方法、系统和装置。

一种基于多数据库的数据查询方法,所述方法包括以下步骤:

服务器获取查询请求,所述查询请求中携带查询信息,根据所述查询请求生成查询指令,将所述查询指令发送至中心数据库;

中心数据库接收所述查询指令,根据所述查询指令生成与所述查询指令对应的中心任务号以及与所述中心任务号相关联的多个分部任务号,将所述中心任务号以及多个分部任务号发送至所述服务器,所述分部任务号与对应的多个分部数据库相关联;

所述服务器接收所述中心任务号和多个分部任务号,将所述分部任务号发送至对应的多个分部数据库,使所述多个分部数据库根据所述多个分部任务号获取所述查询指令;

所述服务器接收每个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

在其中一个实施例中,所述根据所述查询指令生成与所述查询指令对应的中心任务号以及与所述中心任务号相关联的多个分部任务号的步骤,包括:

根据所述查询指令确定与所述查询信息相关的分部数据库;

生成中心任务号以及与查询信息相关的分部数据库对应的分部任务号。

在其中一个实施例中,在所述服务器接收每个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果的步骤之前,还包括:

所述多个分部数据库根据所述多个分部任务号获取所述查询指令,根据所述查询指令查询生成查询结果,将所述查询结果发送至所述服务器。

在其中一个实施例中,所述根据所述查询指令查询生成查询结果的步骤,包括:

根据预设频率获取分部数据库的空闲值,当所述空闲值大于预设阈值时,根据所述查询指令查询生成查询结果。

在其中一个实施例中,所述根据所述查询指令查询生成查询结果的步骤,包括:

根据所述分部数据库中预设的类别数生成对应数量的查询子任务,根据所述查询子任务进行异步查询,生成查询结果。

一种基于多数据库的数据查询方法,所述方法包括:

获取数据库查询请求,所述查询请求中携带查询信息,根据所述查询请求生成查询指令;

根据所述查询信息确定中心任务号与对应的多个分部任务号;

将所述多个分部任务号发送至对应的多个分部数据库,使所述多个分部数据库根据所述多个分部任务号获取所述查询指令;

接收所述多个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

一种基于多数据库的数据查询系统,所述系统包括服务器和中心数据库;

所述服务器用于获取查询请求,所述查询请求中携带查询信息,根据所述查询请求生成查询指令,将所述查询指令发送至中心数据库;

所述中心数据库用于接收所述查询指令,根据所述查询指令生成与所述查询指令对应的中心任务号以及与所述中心任务号相关联的多个分部任务号,将所述中心任务号以及多个分部任务号发送至所述服务器,所述分部任务号与对应的多个分部数据库相关联;

所述服务器还用于接收所述中心任务号和多个分部任务号,将所述分部任务号发送至对应的多个分部数据库,使所述多个分部数据库根据所述多个分部任务号获取所述查询指令;接收每个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

在其中一个实施例中,所述系统还包括多个分部数据库;

每个所述分部数据库用于根据对应的分部任务号获取所述查询指令,根据所述查询指令查询生成查询结果,将所述查询结果发送至所述服务器。

在其中一个实施例中,每个所述分部数据库还用于根据所述分部数据库中预设的类别数生成对应数量的查询子任务,根据所述查询子任务进行异步查询,生成查询结果。

一种基于多数据库的数据查询装置,所述装置包括:

查询请求获取模块,用于获取数据库查询请求,所述查询请求中携带查询信息,根据所述查询请求生成查询指令;

任务号确定模块,用于根据所述查询信息确定中心任务号与对应的多个分部任务号;将所述多个分部任务号发送至对应的多个分部数据库,使所述多个分部数据库根据所述多个分部任务号获取所述查询指令;

查询结果汇总模块,用于接收所述多个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

上述基于多数据库的数据查询方法、系统和装置,当需要在多个分部数据库中查询数据时,通过根据查询指令生成中心任务号与多个分部任务号,使得可一次性地查询到每个分部任务号中的相关信息,而无需对每个分部任务号进行一一查询,提高了查询效率。

附图说明

图1为一个实施例中基于多数据库的数据查询方法的流程图;

图2为另一个实施例中基于多数据库的数据查询方法的流程图;

图3为又一个实施例中基于多数据库的数据查询方法的流程图;

图4为一个实施例中基于多数据库的数据查询系统的结构示意图;

图5为一个实施例中基于多数据库的数据查询装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图1所示,提供了一种基于多数据库的数据查询方法,该方法包括下述步骤102~108。

步骤102,服务器获取查询请求,查询请求中携带查询信息,根据查询请求生成查询指令,将查询指令发送至中心数据库。

本实施例中,查询请求可为用户终端发送的查询请求,也可为后台系统自动发起的查询请求,查询请求中携带具体的查询信息。查询请求可包括但不限于保险业务相关的查询请求、银行或金融等业务相关的查询请求。服务器在获取到查询请求后,解析出该查询请求中的查询信息,并根据该查询请求中的查询信息生成相应的查询指令,将该查询指令发送至中心数据库。

以保险业务类的查询请求为例,则其所携带的查询信息中包括待查询险种的险种标识。该查询请求可包括保全信息变更的查询请求,对应的查询信息包括查询在第一时段内所发生的保险用户信息变更的相关保单号。查询请求还可包括寿险红利分配查询请求,对应的查询信息包括查询在第二预设时段中应向相关保险用户发放寿险红利的保险用户的保单号、姓名和发放数额等。其中,保全信息变更的查询请求可为用户终端发送的查询请求,服务器可接收该查询请求,获取该查询请求中所携带的对应查询信息。寿险红利分配查询请求可为后台系统自动发起的查询请求,后台系统中被预设有该查询请求,可在达到预设触发条件时,自动将该查询请求发送至服务器。比如,可检测当前时间,若当前时间到达预设时间,则自动发起该查询请求。进一步的,寿险红利分配查询请求可为周期性发起的查询请求,比如可为每天在固定时间段发起该查询请求,查询在前一天中的寿险红利分配结果等。

步骤104,中心数据库接收查询指令,根据查询指令生成与查询指令对应的中心任务号以及与中心任务号相关联的多个分部任务号,将中心任务号以及多个分部任务号发送至服务器。

本实施例中,中心数据库用于存储服务器所接收到的查询请求和/或发送的查询指令等记录。具体的,中心数据库接收服务器所发送的查询指令,并获取该查询指令中的查询信息,根据该查询信息生成相应的中心任务号和多个分部任务号。其中,中心任务号与每个分部任务号之间具有关联关系,每个分部任务号与相应的分部数据库相对应。分部数据库可具有多个,存储有相关用户数据或业务数据的数据表。分部数据库之间可位于不同的地方,且不一定具有关联。比如,可根据业务数据的范围,以地域为参考要素对应设置适应数量的相互独立无关联的分部数据库,每个分部数据库中对应存储有与其相对应的地域的用户数据或业务数据,以便于数据的存储与管理。

因此,中心数据库通过根据该查询指令生成与之关联的中心任务号与多个分部任务号,每个分部任务号与对应的分部数据库相对应,从而使得可根据中心任务号以及分部任务号使得每个分部数据库之间建立关联关系,共同执行该查询指令。

步骤106,服务器接收中心任务号和多个分部任务号,将分部任务号发送至对应的多个分部数据库,使多个分部数据库根据多个分部任务号获取查询指令。

步骤108,服务器接收每个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

具体的,服务器可将每个数据库反馈的查询结果汇总到查询结果表中,该查询结果表中存储有每个分部数据库反馈的查询结果。将该查询结果表发送给对应的用户终端。

进一步的,该查询结果表中的查询结果根据对应分部数据库的数据进行了分类,比如可按地域分类或按时间分类,使得查询结果更直观易懂。

更进一步的,服务器可检测所汇总的查询结果是否能够存储于一张查询结果表中,若否,则自动根据该查询结果表的存储容量与查询结果的数据量生成相应的多个具有关联的查询结果表,以避免数据无法完全显示。

比如,预设的查询结果表的格式为excel 2003的格式,其最多可写入65536行,当查询结果超过该行数时,则使得超过部分无法显示。

本实施例中,中心数据库根据查询指令生成中心任务号与多个分部任务号,使得可一次性地查询到每个分部任务号中的相关信息,而无需对每个分部任务号进行一一查询,提高了查询效率。

在一个实施例中,根据查询指令生成与查询指令对应的中心任务号以及与中心任务号相关联的多个分部任务号的步骤,包括:根据查询指令确定与查询信息相关的分部数据库;生成中心任务号以及与查询信息相关的分部数据库对应的分部任务号。

本实施例中,中心数据库在接收到查询指令后,对该查询指令进行解析,获取其所携带的查询信息,根据该查询信息确定与之相关的分部数据库,并生成和查询信息相关的分部数据库对应的分部任务号,对于与查询信息无关的分部数据库,则无需生成对应的分部任务号,从而还可降低对查询资源的占用。

在一个实施例中,中心数据库所生成的中心任务号和多个分部任务号中可携带任务优先级。该任务优先级可由根据查询指令确定,使得分部数据库在存在接收到多个待执行的任务号时,可根据每个任务号的任务优先级来确定待执行的任务号执行次序。

在一个实施例中,如图2所示,提供了另一种基于多数据库的数据查询方法,该方法还包括:

步骤107,多个分部数据库根据多个分部任务号获取查询指令,根据查询指令查询生成查询结果,将查询结果发送至服务器。

以该多个分部数据库的数量为N(即第1分部数据库、第2分部数据库至第N分部数据库)进行示例性地说明,则对应的分部任务号也可为N个(即第1分部任务号、第2分部任务号至第N分部任务号),第i分部任务号与第i分部数据库相对应。服务器在接收到第i分部任务号后,可确定其对应的第i分部数据库,并将其发送给第i分部数据库。

第i分部数据库在接收到该第i分部任务号时,可根据该第i分部任务号获取该查询指令,并在第i分部数据库进行查询,生成查询结果,将查询结果发送至服务器。

在一个实施例中,根据查询指令查询生成查询结果的步骤,包括:根据预设频率获取分部数据库的空闲值,当空闲值大于预设阈值时,根据查询指令查询生成查询结果。

本实施例中,空闲值用于表征反映对应分部数据库的当前资源占用率的情况,空闲值越大,则说明该分部数据库的资源占用率越小,其对指令或任务的执行速度则越快;空闲值越小,则说明该分部数据库的资源占用率越大,其对指令或任务的执行速度则越慢,甚至会造成系统崩溃,使得指令或任务执行失败。第i分部数据库的第i预设频率可为任意频率,比如可为每小时检测一次;第i预设阈值可为用户自定义的任意数值,也可为系统设置的默认数值。第i空闲值用于表征第i分部数据库的资源占用率的情况,当第i空闲值越大,则说明第i分部数据库越空闲。当判断当前时间下的第i空闲值不大于预设阈值时,可根据该第i预设频率和当前时间来确定下一次的检测时间,使当前时间到达了下一次的检测时间时,则再次检测在该检测时间下的操作系统的空闲值是否大于预设阈值,若是,则根据查询指令查询生成查询结果,否则,可再次根据第i预设频率继续确定下一次的用于判断是否执行备份的检测时间。

进一步的,还可设置检测次数或执行时间,使得当判断第i空闲值是否大于第i预设阈值的判断结果为否的判断的次数到达该检测次数后,直接执行该查询指令,或者在当前时间到达了执行时间后,也直接执行该查询指令,以避免当第i分部数据库一直处于小于第i预设阈值下,无法完成对查询指令的执行的情况。

由于第i分部数据库中可能还存在其它的需要执行的进程,当在第i分部数据库繁忙下进行数据查询时会使得查询效率下降,并影响其它正在执行的进程的执行效率,本实施例中通过在分部数据库的空闲值大于预设阈值下进行对数据查询,可进一步提高数据查询的执行效率。

在一个实施例中,根据查询指令查询生成查询结果的步骤,包括:根据分部数据库中预设的类别数生成对应数量的查询子任务,根据查询子任务进行异步查询,生成查询结果。

本实施例中,分部数据库中的数据可对所存储的数据类型进行分类,并设置多个等级,每个等级由可被下分多个子等级。举例来说,可根据存储的数据的归属地域进行分类,比如,每个分部数据库中存储有全国的一个或多个省份的保险用户数据,可将保险用户数据按照所归属的省份和市县等对应划分为二级数据和三级数据,每个二级数据下可包含多个三级数据。

分部数据库可根据其所对应预设的多个二级结构或三级机构,生成与该二级结构或三级机构对应数量的查询子任务,并异步执行该查询子任务,汇总每个查询子任务所生成的查询结果,将汇总后的查询结果发送给服务器。

本实施例中,通过将查询指令对应拆分成多个查询子任务进行异步查询,可进一步提高查询效率。

在一个实施例中,如图3所示,提供了一种基于多数据库的数据查询方法,其特征在于,该方法包括:

步骤302,获取数据库查询请求,查询请求中携带查询信息,根据查询请求生成查询指令。

步骤304,根据查询信息确定中心任务号与对应的多个分部任务号。

本实施例中,可将该查询指令发送给中心数据库,使中心数据库生成相应的中心任务号与对应的多个分部任务号,并获取该中心任务号与多个分部任务号。

步骤306,将多个分部任务号发送至对应的多个分部数据库,使多个分部数据库根据多个分部任务号获取查询指令。

步骤308,接收多个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

具体的,可将每个数据库反馈的查询结果汇总到查询结果表中,该查询结果表中存储有每个分部数据库反馈的查询结果。将该查询结果表发送给对应的用户终端。

本实施例中,当需要在多个分部数据库中进行查询时,可通过根据查询指令生成中心任务号与多个分部任务号,使得可一次性地查询到每个分部任务号中的相关信息,而无需对每个分部任务号进行一一查询,提高了查询效率。

在一个实施例中,如图4所示,提供了一种基于多数据库的数据查询系统的。参见图4,服务器402可通过网络与中心数据库404以及其它的多个分部数据库406(如第1分部数据库、第2分部数据库至第N分部数据库)相连。服务器402可接收用户终端发送的查询请求,或接收后台系统自动发起的查询请求,生成查询指令,并将查询指令发送给中心数据库404。中心数据库404用于存储服务器402所发送的任务指令,并为该查询指令生成中心任务号以及与之关联的分部任务号,将其发送至服务器402,服务器402再将该分部任务号发送给对应的分部数据库406,使其进行相关查询。分部数据库404中存储有与查询信息相关的数据,分部数据库404可将查询结果发送给服务器402,服务器接收并汇总对应的多个分部数据库所发送的查询结果信息。

在一个实施例中,基于多数据库的数据查询系统包括服务器402和中心数据库404,其中,

服务器402用于获取查询请求,查询请求中携带查询信息,根据查询请求生成查询指令,将查询指令发送至中心数据库;

中心数据库404用于接收查询指令,根据查询指令生成与查询指令对应的中心任务号以及与中心任务号相关联的多个分部任务号,将中心任务号以及多个分部任务号发送至服务器,分部任务号与对应的多个分部数据库相关联;

服务器402还用于接收中心任务号和多个分部任务号,将分部任务号发送至对应的多个分部数据库,使多个分部数据库根据多个分部任务号获取查询指令;接收每个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

在一个实施例中,中心数据库404还用于根据查询指令确定与查询信息相关的分部数据库;生成中心任务号以及与查询信息相关的分部数据库对应的分部任务号。

在一个实施例中,基于多数据库的数据查询系统还包括多个分部数据库406;

每个分部数据库406用于根据对应的分部任务号获取查询指令,根据查询指令查询生成查询结果,将查询结果发送至服务器。

在一个实施例中,每个分部数据库406用于根据预设频率获取分部数据库的空闲值,当空闲值大于预设阈值时,根据查询指令查询生成查询结果。

在一个实施例中,每个分部数据库406还用于根据分部数据库中预设的类别数生成对应数量的查询子任务,根据查询子任务进行异步查询,生成查询结果。

在一个实施例中,如图5所示,一种基于多数据库的数据查询装置,其特征在于,该装置包括:

查询请求获取模块502,用于获取数据库查询请求,查询请求中携带查询信息,根据查询请求生成查询指令;

任务号确定模块504,用于根据查询信息确定中心任务号与对应的多个分部任务号;将多个分部任务号发送至对应的多个分部数据库,使多个分部数据库根据多个分部任务号获取查询指令;

查询结果汇总模块506,用于接收多个分部数据库反馈的查询结果,汇总每个分部数据库反馈的查询结果。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1