一种大数据查询方法与流程

文档序号:11774842阅读:355来源:国知局
一种大数据查询方法与流程

本发明涉及数据查询技术领域,特别涉及一种大数据查询方法。



背景技术:

在对存储有大数据的网络设备进行大数据查询时,有些可支持多个终端对其进行数据查询。例如,分组传送网(packettransportnetwork,简称为ptn)设备使用者接入设备的接入方式有:网络管理平台方式、cli(commandlineinterface,命令行界面)控制方式、snmp(simplenetworkmanagementprotoco,简单网络管理协议)web接入。这三种接入终端都可以到设备查询数据,从而实现对设备和网络的管理。不同类型的终端可以同时接入,同类型的终端也可以同时接入多个。比如现在有两个网管终端,两个cli终端同时接入到同一台ptn设备中,且都在执行查询数据操作。设备需要保证查询、应答的数据不冲突。

相关技术中,对多个接入终端的查询请求会生成一系列顺序节点,然后按照节点依次执行查询。这种查询方式是阻塞式的,当一个查询请求在执行中,另一个查询就处于等待状态。特别是当某个查询需要较长周期时,后面的查询都会被阻塞。这种方式对查询数据的及时性及有效性,以及用户体验都有较大影响。



技术实现要素:

本发明实施例的目的在于提供一种大数据查询方法,以至少解决相关技术中多终端不能同时对一台设备查询数据的问题。

为达到上述目的,本发明实施例公开了一种大数据查询方法,方法包括:

接收多个终端中每一终端发送的第一数据查询请求;

获取所述第一数据查询请求的标识信息,其中,所述标识信息包括:所述终端的信息;

基于所述标识信息和所述第一数据查询请求,生成第二数据查询请求;

按照所述第二数据查询请求,向存储有大数据信息的目标设备进行数据查询,并获取查询结果:

将所述查询结果发送至所述终端,实现针对所述目标设备的大数据查询。

可选的,获取所述第一数据查询请求的标识信息,包括:

确定所述终端的类型:

确定所述终端的身份信息:

确定所述第一数据查询请求所请求查询的对象的身份信息;

根据所述终端的类型、所述终端的身份信息以及所述请求查询的对象的身份信息,生成所述第一数据查询请求的标识信息。

可选的,根据所述终端的类型、所述终端的身份信息以及所述请求查询的对象的身份信息生成所述第一数据查询请求的标识信息,包括:

获取第一字符,其中,所述第一字符为所述第一数据查询请求在适配层映射的所述终端的类型;

获取第二字符,其中,所述第二字符为所述第一数据查询请求在所述适配层映射的终端的身份信息;

获取第三字符,其中,所述第三字符为所述第一数据查询请求在所述适配层映射的请求查询的对象的身份信息;

将所述第一字符、所述第二字符和所述第三字符,按照预设规则生成一个字符串,并将所述字符串作为所述第一数据查询请求的标识信息。

可选的,按照所述第二数据查询请求,向存储有大数据信息的目标设备进行数据查询前,所述方法还包括:

以所述标识信息为关键字,缓存所述第一数据查询请求。

可选的,在将所述查询结果发送至所述终端之后,所述方法还包括:

删除缓存的第一数据查询请求。

可选的,在按照所述第二数据查询请求,向存储有大数据信息的目标设备进行数据查询时,所述方法还包括:

启动定时器,其中,所述定时器用于指定所述第二数据查询请求的应答等待时间,并对等待应答所述第二数据查询请求的时间进行记录,其中,如果在所述应答等待时间之内未获取到所述查询结果,则删除所述缓存的第一数据查询请求。

可选的,在将所述查询结果发送至所述终端时,所述方法还包括:

停止所述定时器。

可选的,所述按照所述第二数据查询请求,向存储有大数据信息的目标设备进行数据查询,并获取查询结果,包括:

从存储有大数据信息的目标设备中,获取所述第二数据查询请求的应答报文;

对所述应答报文进行解析,获取所述应答报文中携带的所述标识信息;

获取所述标识信息对应的第一数据查询请求;

将所述第一数据查询请求和所述应答报文进行封装,得到所述查询结果。

可见,通过本发明实施例,接收终端发送的第一数据查询请求;获取第一数据查询请求的标识信息,其中,标识信息携带有终端的信息;根据标识信息和第一数据查询请求生成第二数据查询请求;按照第二数据查询请求执行查询,以获取查询结果;以及将查询结果发送至终端,解决了相关技术中多终端不能同时对一台设备查询数据的问题,进而通过获取第一数据查询请求的标识信息,根据标识信息和第一数据查询请求生成第二数据查询请求,并按照第二数据查询请求执行查询,以获取查询结果,达到了多终端可同时对一台设备查询数据的效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的数据查询方法的一种流程示意图。

图2为本发明实施例的提供的数据查询方法的查询架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本实施例中提供了一种数据查询方法,图1为本发明实施例提供的数据查询方法的一种流程示意图,如图1所示,可以包括如下步骤:

s101,接收多个终端中每一终端发送的第一数据查询请求。

例如,第一数据查询请求的发起端可以为网络管理终端、cli终端,或者snmpweb终端。第一数据查询请求的接收端可以为ptn设备。

s102,获取所述第一数据查询请求的标识信息,其中,所述标识信息包括:所述终端的信息。

其中,标识信息携带有终端的信息,用于对第一数据查询请求进行标识信息。在同时接收到多个终端发送的第一数查询据请求时,每个第一数据查询请求的标识信息对于接收该请求的设备来说是不同的。因此根据该标识信息,接收该请求的设备可以对不同的第一数据查询请求进行区分。

s103,基于所述标识信息和所述第一数据查询请求,生成第二数据查询请求。

第二数据查询请求同时携带了标识信息信息和第一数据查询请求的具体请求信息。也即,第二数据查询请求包含发送第一数据查询请求的终端的信息和查询命令的信息。

s104,按照所述第二数据查询请求,向存储有大数据信息的目标设备进行数据查询,并获取查询结果。

根据第二数据查询请求执行查询,获取的查询结果中携带了标识信息,也即携带了发送第一数据查询请求的终端的信息。因此,在多个终端同时对某存储有大数据信息的设备执行数据查询时,该设备可以根据本实施例的数据查询方法确定查询结果与终端的对应关系,进而同时将多个查询结果分别发送给其所对应的终端。

s105,将所述查询结果发送至所述终端,实现针对所述目标设备的大数据查询。

根据该实施例,通过接收终端发送的第一数据查询请求;获取第一数据查询请求的标识信息,其中,标识信息携带有终端的信息;根据标识信息和第一数据查询请求生成第二数据查询请求;按照第二数据查询请求执行查询,以获取查询结果;以及将查询结果发送至终端,解决了相关技术中多终端不能同时对一台设备查询数据的问题,进而通过获取第一数据查询请求的标识信息,根据标识信息和第一数据查询请求生成第二数据查询请求,并按照第二数据查询请求执行查询,以获取查询结果,达到了多终端可同时对一台设备查询数据的效果。

为了简化生成上述标识信息的过程,可以获取第一数据查询请求的标识信息包括:确定终端的类型;确定终端的身份信息id;确定第一数据查询请求请求查询的对象的身份信息id;以及根据终端的类型、终端的身份信息id以及请求查询的对象的身份信息id生成第一数据查询请求的标识信息。

终端的类型和终端的身份信息id用于标识发送第一数据查询请求的终端的信息。每个终端都可以用类型和身份信息id所标识信息。在管理信息模型中建立查询命令对象,每条查询命令对应一个对象身份信息id,也即第一数据查询请求请求查询的对象的身份信息id。终端的类型、终端的身份信息id以及请求查询的对象的身份信息id三者相结合,可以对第一数据查询请求进行唯一的标识。

具体的,可以根据终端的类型、终端的身份信息id以及请求查询的对象的身份信息id生成第一数据查询请求的标识信息包括:获取第一字符,其中,第一字符为第一数据查询请求在适配层映射的终端的类型;获取第二字符,其中,第二字符为第一数据查询请求在适配层映射的终端的身份信息id;获取第三字符,其中,第三字符为第一数据查询请求在适配层映射的请求查询的对象的身份信息id;以及第一字符、第二字符和第三字符按照预设规则生成一个字符串,并将字符串作为第一数据查询请求的标识信息。

以终端类型(link_type)和终端身份信息id(link_id)定义每个终端。设备收到第一数据查询请求(报文)在适配层映射终端类型和终端身份信息id。在管理信息模型中建立查询命令对象,每条查询命令对应一个对象身份信息id(object_id)。可获取第一数据查询请求在适配层的映射命令对象身份信息id。根据link_type、link_id、object_id生成本次查询的身份信息id(query_id,也即上述的标识信息),此身份信息id对于接收第一数据查询请求的设备来说是唯一的。

例如,预先定义为一个固定长度的字符串,从高位到低位分别填充为link_type、link_id以及object_id。

具体的,可以在按照第二数据查询请求执行查询之前,该方法还包括:以标识信息为关键字,缓存第一数据查询请求,在将查询结果发送至终端之后,该方法还包括删除缓存的第一数据查询请求。

以标识信息作为关键字保存第一数据查询请求,以备应答时使用。在最终获取到查询结果之后,可以将缓存的第一数据查询请求(报文)删除,以释放内存。

为了提高数据查询的有效性和执行效率,可以在按照第二数据查询请求执行查询的同时,该方法还包括:启动定时器,其中,定时器用于指定第二数据查询请求的应答等待时间,并对等待应答第二数据查询请求的时间进行记录,其中,如果在应答等待时间之内未获取到查询结果,则删除缓存的第一数据查询请求,在将查询结果发送至终端的同时,该方法还包括:停止定时器。

预先设定应答等待时间(超时时间),如果在应答等待时间内接收到了应答,则执行后续的过程,并在将查询结果发送至终端的同时,停止计时器;如果在应答等待时间之内未获取到查询结果,则删除缓存的第一数据查询请求,以释放内存。

具体的,可以从存储有大数据信息的目标设备中,获取第二数据查询请求的应答报文;对应答报文进行解析,以获取应答报文中携带的标识信息;获取标识信息对应的第一数据查询请求;以及将第一数据查询请求和应答报文进行封装,以得到查询结果,其中,按照标识信息将查询结果发送至终端。

在根据第二数据查询请求执行查询并获取到应答报文之后,为了获知该应答报文对应于哪个终端,也即识别该应答报文该发送至哪个终端,可以对应答报文进行解析,以获取应答报文中携带的标识信息。根据该标识信息,可以获知终端的信息,以及该标识信息对应的第一数据查询请求(在缓存中查找)。将第一数据查询请求和应答报文进行封装之后,可将其发送至上述识别出的终端。

图2是根据本发明第一实施例的数据查询方法的查询架构的示意图。如图2所示,命令行界面cli终端、网管终端和简单网络协议snmpweb终端同时向设备(ptn设备)发出数据查询请求(即图1所示实施例中的第一数据查询请求),设备的适配层首先对该数据查询请求进行处理,之后执行后续的命令处理。后续的命令处理包括向业务模块发送经过处理的数据查询请求(即图1示实施例中的第二数据查询请求)、启动定时器等。

其中,标识信息由link_type(终端类型,数据量为8比特)、link_id(终端身份信息id,数据量为8比特)和object_id(对象身份信息id,数据量为16比特)组成。该方法中定义标识信息为一个固定长度的字符串,从高位到低位分别填充为link_type、link_id和object_id。

在管理信息模型中建立查询命令对象,每个命令对象对应一个对象身份信息id(object_身份信息id),查询单板运行状态即可获取该对象身份信息id,例如,object_id=25866。另外,为了提高数据查询的准确性,也可以获取单板位置属性(包括机架号、槽位号等,用attribute_id表示),例如,attribute_id=88。

下面提供了根据本发明第二实施例的数据查询方法。该实施例可以作为图1所示实施例的一种优选的实施方式。在该实施例中,提供了网管终端和cli终端同时到设备查询单板运行状态的多终端数据查询方法。该方法包括:

接收到网管终端的查询单板运行状态的命令;

图1所示实施例中的第一数据查询请求可以为该命令。

获取映射:ink_type=5,link_id=4,object_id=25866;

根据上述命令在适配器映射终端类型(ink_type)和终端身份信息id(link_id),以及查询单板运行状态的命令的对象身份信息id(object_id)。其中,映射的终端类型以及终端身份信息id分别为:link_type=5,link_id=4;查询单板状态命令映射的对象身份信息id为object_id=25866。

计算query_id=0x0504650a;

query_id即图1所示实施例中的标识信息。

缓存查询请求报文;

该查询请求报文即s502中查询单板运行状态的命令所对应的报文。将查询请求报文以query_id(0x0504650a)为关键字,存储到map映射表中。

将查询请求下发至业务模块;

将查询请求发送到业务模块执行查询。该查询请求携带有query_id,该查询请求也即图1所示实施例中的第二数据查询请求。

启动定时器。

用于在cli终端进行数据查询的方法包括:

接收到cli终端的查询单板运行状态的命令;

图1所示实施例中的第一数据查询请求可为该命令。

获取映射:ink_type=1,link_id=2,object_id=25866。

根据上述命令在适配器映射终端类型(ink_type)和终端身份信息id(link_id),以及查询单板运行状态的命令的对象身份信息id(object_id)。其中,映射的终端类型以及终端身份信息id分别为:link_type=1,link_id=2;查询单板状态命令映射的对象身份信息id为object_id=25866。

计算query_id=0x0102650a;

query_id即图1所示实施例中的标识信息。

缓存查询请求报文;

该查询请求报文即s602中查询单板运行状态的命令所对应的报文。将查询请求报文以query_id(0x0102650a)为关键字,存储到map映射表中。

将查询请求下发业务模块;

将查询请求发送到业务模块执行查询。该查询请求携带有query_id,该查询请求也即图1所示实施例中的第二数据查询请求。

启动定时器。

需要说明的是,该方法可使网管终端和cli终端同时到设备查询单板运行状态。

收到查询应答时执行查询处理的方法包括:

收到业务模块的查询应答;

取出query_id;

从查询应答中提取query_id;

根据query_id从缓存中取出查询请求报文;

打包上报应答报文;

将查询请求报文与查询应答报文进行封装,得到查询结果,并将其发送至网管终端或者cli终端(如果两个终端发送的请求均得到了应答,则将两个查询结果分别发送至其对应的终端;如果只有一个终端发送的请求得到了应答,则只向该终端发送查询结果)。

停止定时器,删除缓存的查询请求报文。

具体地,如果收到query_id=0x0102650a的应答报文,则从map表中找到查询请求报文。将其与应答报文封装后发送到cli终端。同时停止定时器,并将缓存的查询请求报文从map表中删除,查询结束。

如果收到query_id=0x0504650a的应答报文,则从map表中找到查询请求报文。将其与应答报文封装后发送到到网管终端。同时停止定时器,并将缓存的查询请求报文从map表中删除。查询结束。

在未收到查询应答时执行查询处理的方法包括:超时未收到业务模块的查询应答;删除缓存的查询请求报文;如果超时未收到业务模块的查询应答,则将缓存的查询请求报文从map表中删除,并结束查询。

可见,通过本发明实施例,接收终端发送的第一数据查询请求;获取第一数据查询请求的标识信息,其中,标识信息携带有终端的信息;根据标识信息和第一数据查询请求生成第二数据查询请求;按照第二数据查询请求执行查询,以获取查询结果;以及将查询结果发送至终端,解决了相关技术中多终端不能同时对一台设备查询数据的问题,进而通过获取第一数据查询请求的标识信息,根据标识信息和第一数据查询请求生成第二数据查询请求,并按照第二数据查询请求执行查询,以获取查询结果,达到了多终端可同时对一台设备查询数据的效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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