法律状态公告日
法律状态信息
法律状态
2019-10-25
授权
授权
2015-11-18
实质审查的生效 IPC(主分类):G06F17/30 申请日:20140403
实质审查的生效
2015-10-14
公开
公开
技术领域
本发明涉及信息技术领域,特别涉及一种查询数据的方法、管理控制节点及目标数据节点。
背景技术
随着传统的关系数据库、计算机网络和数字通信技术的飞速发展,提高数据查询的效率的重要性也呈现越来越重要的趋势,面对业务数据日益膨胀的局面,如何满足不断发展的对高效的数据查询方式的需要,是亟待考虑和解决的一个问题。
为了提高查询的效率,目前通常的做法是:采用高性能小型机和oracle数据库的方式来实现数据的运算处理存储,用高性能的设备实现对大数据查询的快速响应,也就是说靠硬件设备的高性能来提升数据查询响应的及时性;但是,由于该方法中的分布式系统是扁平化的,只有一级,那么关于某一特征的数据是存储在一台服务器上的,随着数据存储数量的增加,当要在存储数据的服务器上查询数据时,可能需要查询大量的数据才能找到目标数据,因此存在效率较低的缺陷。
例如:关于郑州的数据表存储在A服务器上,该数据表中有10000条条目,若要查找某一条条目时,可能需要遍历这10000条条目后,才能找到目标条目。
综上所述,目前的查询数据的方法存在效率较低的缺陷。
发明内容
本发明实施例提供一种查询数据的方法、管理控制节点及目标数据节点,用以解决现有技术中存在的查询耗时较长、效率较低的问题。
本发明实施例提供的具体技术方案如下:
一种查询数据的方法,应用于多级分布式系统,包括:
接收客户端发送的数据查询请求,所述数据查询请求用于查询存储于第二级数据节点中的数据;
根据所述数据查询请求确定第一级数据节点;
根据所述数据查询请求从所述第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;
将从所述目标数据节点中获取的数据转发至所述客户端。
一种查询数据的方法,包括:
目标数据节点接收管理控制节点转发的客户端发送的数据查询请求,所述数据查询请求用于查询存储于第二级数据节点中的数据,所述目标数据节点是所述管理控制节点根据所述数据查询请求确定第一级数据节点后,再根据所述数据查询请求从所述第一级数据节点关联的所有第二级数据节点中确定出的;
所述目标数据节点根据所述数据查询请求确定数据;
所述目标数据节点将所述确定的数据通过所述管理控制节点转发至所述客户端。
一种管理控制节点,应用于多级分布式系统,包括:
接收单元,用于接收客户端发送的数据查询请求,所述数据查询请求用于查询存储于第二级数据节点中的数据;
第一确定单元,用于根据所述数据查询请求确定第一级数据节点;
第二确定单元,用于根据所述数据查询请求从所述第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;
转发单元,用于将从所述目标数据节点中获取的数据转发至所述客户端。
一种目标数据节点,包括:
接收单元,用于接收管理控制节点转发的客户端发送的数据查询请求,所述数据查询请求用于查询存储于第二级数据节点中的数据,所述目标数据节点是所述管理控制节点根据所述数据查询请求确定第一级数据节点后,再根据所述数据查询请求从所述第一级数据节点关联的所有第二级数据节点中确定出的;
确定单元,用于根据所述数据查询请求确定数据;
发送单元,用于将所述确定的数据通过所述管理控制节点转发至所述客户端。
本发明有益效果如下:
现有技术中,分布式系统是扁平化的,只有一级,那么关于某一特征的数据是存储在一台服务器上的,随着数据存储数量的增加,当要在存储数据的服务器上查询数据时,可能需要查询大量的数据才能找到目标数据,因此存在效率较低的缺陷,而本发明实施例中,第一级数据节点中还存在子数据节点,如第二数据节点,查询时,需要先确定第一级数据节点,再从第一级数据节点管理的所有第二级数据节点中确定出目标数据节点,然后,从目标数据节点中查询数据即可,这样,由于原来存储在一台数据节点中的数据分布存储在了多个数据节点中,而数据节点中的每一个数据节点存储的数据与现有技术中的数据节点而言较少,因此,减少了查询所消耗的时间,提高了查询效率。
附图说明
图1A为本发明实施例中查询数据的一种详细流程图;
图1B为本发明实施例中管理控制节点和数据节点备份的示意图;
图2为本发明实施例中查询数据的另一种详细流程图;
图3为本发明实施例中查询数据的实施例;
图4为本发明实施例中管理控制节点的功能结构示意图;
图5为本发明实施例中目标数据节点的功能结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了解决现有技术中存在的耗时较长、效率较低的缺陷,本发明实施例中,提出一种查询数据的方法,应用于多级分布式系统,该方案具体为:接收客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据;根据数据查询请求确定第一级数据节点;根据数据查询请求从第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;将从目标数据节点中获取的数据转发至客户端,在该方案中,查询时,需要去目标数据节点中查询数据即可,而原来存储在第一级数据节点中的数据分布存储在了第二级数据节点中,因此,去目标数据节点中查询数据提高了查询效率,减少了耗时。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1A所示,本发明实施例中,查询数据的一种详细流程如下,应用于多级分布式系统:
步骤100:接收客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据;
步骤110:根据数据查询请求确定第一级数据节点;
步骤120:根据数据查询请求从第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;
步骤130:将从目标数据节点中获取的数据转发至客户端。
本发明实施例中,步骤100-130的执行主体有多种,可选的,可以为管理控制节点,当然,也可以为其他设备,在此不再进行一一详述。
为了避免当执行主体发生故障时,无法实现数据查询,提高分布式系统的可用性和稳定性,本发明实施例中,还有一个步骤100-130的执行主体的备用的执行主体,例如,执行主体为管理控制节点,那么就存在管理控制节点1、管理控制节点2,其中,管理控制节点1为主用节点、管理控制节点2为备用节点,当管理控制节点1、管理控制节点2都能正常工作时,默认的管理控制节点1接收数据查询请求,当管理控制节点1发生故障时,管理控制节点1通过心跳信息,将数据查询请求发送至管理控制节点2,管理控制节点2继续运行。
同理,数据节点也有备用数据节点,进行备份,也就是说,数据节点1中的数据可能存储在其他的数据节点中,例如,图1B所示。
在实际应用中,同时对这两台管理控制节点设置一个浮动IP(InternetProtocol,互联网协议),无论进行数据存储时,还是进行数据查询时,都只访问一个“浮动”IP,这样就能做到跟访问单台管理控制节点一样的方便。
在实际应用中,在实现数据查询时,要先存储数据,因此,本发明实施例中,在根据数据查询请求从第一级数据节点关联的所有第二级数据节点中确定出目标数据节点之前,还包括如下操作:
采用哈希算法将数据分布存储在所有第二级数据节点中。
本发明实施例中,采用哈希算法将数据分布存储在所有第二级数据节点中的方式有多种,可选的,可以采用如下方式:
采用哈希算法计算分布键值;
基于分别键值对所有第二级数据节点的个数进行取模运算,获得取模值;
根据取模值及预设配置规则,将数据分布存储在所有第二级数据节点中。
也就是说,先通过hash(哈希)算法计算分布键值,然后用这个分布键值对数据节点的总个数进行取摸运算,获取取模值,根据取模值以确定哪些数据分不到哪些数据节点上,再通过预设配置规则实现对数据节点上数据的分布。那么,数据在存储时,要首先判断每条记录的分布键值,获取分布键值对应的取模值,然后通过预设配置规则,知道每条数据要存储到哪个数据节点上。
Hash算法的格式如下:
在实际应用中,分布键值可能为0,此时,要将数据存储到每一台数据节点上。_
在实际应用中,数据查询请求中有可能携带业务指标信息,而获取的数据中可能有些数据是从不同维度表征同一业务指标信息的,那么这些数据就为重复的数据,此时,为了提高转发至客户端的数据的准确性,本发明实施例中,将从目标数据节点中获取的数据转发至客户端时,可选的,可以采用如下方式:
针对任意一业务指标信息,分别执行如下操作:
从目标数据节点中获取与任意一业务指标信息相对应的初始数据;
确定初始数据中用于从不同维度表征任意一业务指标信息的至少两份重复数据;
将至少两份重复数据中的任意一份重复数据进行保留,其他重复数据删除,并将保留的任意一份重复数据转发至客户端。
这样,就避免了将重复的数据转发至客户端,提高了客户端查询到的数据的准确度。
例如,查询河南省郑州市上网用户数量,此时,数据查询请求中携带的业务指标信息为“河南省郑州市上网用户数量”,在获取的数据中,可能得到通过2G制式的网络进行上网的用户数量为1000人,通过3G制式的网络进行上网的用户数量为4000人,通过4G制式的网络进行上网的用户数量为2000人,那么总人数为7000人,但是,有很多重复的数据,如,用户A通过2G制式的网络进行上网,也通过3G制式的网络进行上网,还通过4G制式的网络进行上网,那么,1000人中包括用户A、4000人中也包括用户A、2000人中也包括用户A,造成了重复,此时,只保留2G制式、3G制式、4G制式中任意一种制式的用户A即可。
随着业务的发展,当存储的数据量达到一定程度,若在当前的数据节点中再进行数据存储的话,从接收客户端发送的数据查询请求,至将从目标数据节点中获取的数据转发至客户端所需要的时间就比较长,此时,为了避免对查询耗时的影响,本发明实施例中,当存储的数据量达到一定程度时,需要对当前的数据节点进行扩展时,那么,在将从目标数据节点中获取的数据转发至客户端之后,还包括如下操作:
计算从接收客户端发送的数据查询请求,至将从目标数据节点中获取的数据转发至客户端所需要的时间;
确定计算出的时间大于预设时间门限值时,增加多级分布式系统的数据节点。。
本发明实施例中,增加多级分布式系统的数据节点的方式有多种,可选的,可以采用如下方式:
确定预设时间门限值对应的数据存储量门限值;
确定多级分布式系统的数据节点中对应的数据存储量大于数据存储量门限值的数据节点;
计算确定出的每一个数据节点的数据存储量分别与数据存储量门限值的差值之和;
根据差值之和确定出所需要增加的数据节点的数量,并根据数量增加多级分布式系统的数据节点。
参阅图2所示,本发明实施例中,查询数据的另一种详细流程如下:
步骤200:目标数据节点接收管理控制节点转发的客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据,目标数据节点是管理控制节点根据数据查询请求确定第一级数据节点后,再根据数据查询请求从第一级数据节点关联的所有第二级数据节点中确定出的;
步骤210:目标数据节点根据数据查询请求确定数据;
步骤220:目标数据节点将确定的数据通过管理控制节点转发至客户端。
在实际应用中,在查询数据之前,要先进行数据的存储,本发明实施例中,目标数据节点在根据数据查询请求确定数据之前,还包括如下操作:
存储管理控制节点采用哈希算法分布的对应的数据。
为了更好地理解本发明实施例,以下给出具体应用场景,针对查询数据的过程,作出进一步详细描述,如图3所示:
步骤300:管理控制节点1采用哈希算法计算分布键值;
步骤310:管理控制节点1基于分别键值对所有第二级数据节点的个数进行取模运算,获得取模值;
步骤320:管理控制节点1根据取模值及预设配置规则,将数据分布存储在12个数据节点中;
步骤330:管理控制节点1接收客户端发送的数据查询请求;
该步骤中,数据查询请求中携带业务指标信息。
步骤340:管理控制节点1根据数据查询请求确定出第一数据节点A,并从第一数据节点A管理的12个数据节点中确定出目标数据节点为数据节点2;
步骤350:管理控制节点1从目标数据节点2中获取与业务指标信息相对应的初始数据;
步骤360:管理控制节点1确定初始数据中用于从不同维度表征同一业务指标信息的三份重复数据;
步骤370:管理控制节点1将三份重复数据中的任意一份重复数据进行保留,其他重复数据删除,并将保留的重复数据转发至客户端。
基于上述技术方案,参阅图4所示,本发明实施例提供一种管理控制节点,该管理控制节点包括接收单元40、第一确定单元41、第二确定单元42,及转发单元43,其中,
接收单元40,用于接收客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据;
第一确定单元41,用于根据数据查询请求确定第一级数据节点;
第二确定单元42,用于根据数据查询请求从第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;
转发单元43,用于将从目标数据节点中获取的数据转发至客户端。
进一步的,本发明实施例中,还包括存储单元44,存储单元44用于采用哈希算法将数据分布存储在所有第二级数据节点中。
较佳的,本发明实施例中,存储单元44具体用于:
采用哈希算法计算分布键值;
基于分别键值对所有第二级数据节点的个数进行取模运算,获得取模值;
根据取模值及预设配置规则,将数据分布存储在所有第二级数据节点中。
较佳的,本发明实施例中,接收单元40接收到的数据查询请求中携带业务指标信息;
此时,转发单元43具体用于:
针对任意一业务指标信息,分别执行如下操作:
从目标数据节点中获取与任意一业务指标信息相对应的初始数据;
确定初始数据中用于从不同维度表征任意一业务指标信息的至少两份重复数据;
将至少两份重复数据中的任意一份重复数据进行保留,其他重复数据删除,并将保留的任意一份重复数据转发至客户端。
进一步的,本发明实施例中,还包括扩展单元45,扩展单元45用于计算从接收客户端发送的数据查询请求,至将从目标数据节点中获取的数据转发至客户端所需要的时间;确定计算出的时间大于预设时间门限值时,增加多级分布式系统的数据节点。
较佳的,本发明实施例中,扩展单元45具体用于:确定预设时间门限值对应的数据存储量门限值;确定多级分布式系统的数据节点中对应的数据存储量大于数据存储量门限值的数据节点;计算确定出的每一个数据节点的数据存储量分别与数据存储量门限值的差值之和;根据差值之和确定出所需要增加的数据节点的数量,并根据数量增加多级分布式系统的数据节点。
基于上述技术方案,参阅图5所示,本发明实施例提供一种数据节点,该数据节点包括接收单元50、确定单元51、发送单元52,其中,
接收单元50,用于接收管理控制节点转发的客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据,目标数据节点是管理控制节点根据数据查询请求确定第一级数据节点后,再根据数据查询请求从第一级数据节点关联的所有第二级数据节点中确定出的;
确定单元51,用于根据数据查询请求确定数据;
发送单元52,用于将确定的数据通过管理控制节点转发至客户端。
进一步的,本发明实施例中,还包括存储单元53,存储单元53用于存储管理控制节点采用哈希算法分布的对应的数据。
综上所述,本发明实施例中,提供一种查询数据的方法,应用于多级分布式系统,该方案具体为:接收客户端发送的数据查询请求,数据查询请求用于查询存储于第二级数据节点中的数据;根据数据查询请求确定第一级数据节点;根据数据查询请求从第一级数据节点管理的所有第二级数据节点中确定出目标数据节点;将从目标数据节点中获取的数据转发至客户端,在该方案中,查询时,需要去目标数据节点中查询数据即可,而原来存储在第一级数据节点中的数据分布存储在了第二级数据节点中,因此,去目标数据节点中查询数据提高了查询效率,减少了耗时。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
机译: 分散数据网络的操作方法包括:在查询节点发送查询之前,识别查询值被间隔覆盖的节点,并获取节点身份作为查询结果。
机译: 用于ad-hoc网络体系结构中的用于传输数据的多节点传输系统,其中中间节点根据协议从初始节点接收数据包,目标节点从中间节点接收数据包
机译: 用于管理控制节点的设备,用于该方法的方法,使用基于传感器网络元数据来管理控制节点的能力相同的增长环境传感器网络系统