一种信息查询方法、相关装置及可读存储介质与流程

文档序号:16390710发布日期:2018-12-22 11:31阅读:147来源:国知局
一种信息查询方法、相关装置及可读存储介质与流程

本发明实施例涉及通信技术领域,特别涉及一种信息查询方法、相关装置及可读存储介质。

背景技术

流计算中一个常见的需求就是为数据流补齐字段。因为数据采集端采集到的数据往往比较有限,在做数据分析之前,就要先将所需的纬度信息补全。比如采集到的交易日志中只记录了商品身份(identification,id),但是在做业务时需要根据店铺纬度或行业纬度进行聚合,这就需要先将交易日志与店铺纬度或行业维度进行关联,补全所需的纬度信息。这是一个典型的join(连接)问题,常见的连接操作包括交叉连接、内连接和外连接。传统join的实现方式是按照事实表中的key(关键词)同步访问维度表,进行全局查询匹配,如果匹配成功,则将维度表中该key对应的数据字段取出来与事实表中的数据字段拼接在一起,得到关联结果,如果查询不到该key,则返回空值。

发明人发现现有技术中至少存在如下问题:在大数据应用的场景下,传统的信息表查询过程是每次按照事实表中的一个key值去维度表中进行全表查询,由于事实表和维度表都是大数据量的数据,因此这是一个非常耗时的操作,影响信息表之间信息的查询效率。



技术实现要素:

本发明实施方式的目的在于提供一种信息查询方法、相关装置及可读存储介质,使得在通过信息表进行信息查询时,能够提高信息查询的效率。

为解决上述技术问题,本发明的实施方式提供了一种信息查询方法,包括以下步骤:确定第一信息表中需要进行信息查询的第一关键词;判断缓存区中是否存在包含第一关键的信息,若确定存在,则从缓存区中获取包含第一关键词的信息,否则,从第二信息表中查询包含第一关键词的信息,获得查询结果;其中,第二信息表中的信息包括缓存区中的信息。

本发明的实施方式还提供了一种信息查询装置,包括:确定模块,用于确定第一信息表中需要进行信息查询的第一关键词;判断模块,用于判断缓存区中是否存在包含第一关键的信息;查询模块,用于在判断模块确定缓存区中存在包含第一关键词的信息后,从缓存区中获取包含第一关键词的信息,否则,从第二信息表中查询包含第一关键词的信息,获得查询结果;其中,第二信息表中的信息包括缓存区中的信息。

本发明的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的信息查询方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现如上所述的信息查询方法。

本发明实施方式相对于现有技术而言,当需要根据第一信息表中的关键词从第二信息表中查询包含该关键词的信息之前,先从缓存区中进行查询,由于第二信息表中的信息包括缓存区中的信息,所以缓存区中的信息要少于第二信息表中的信息,如果在缓存区中能够查询到包含该关键词的信息,则不再从第二信息表中进行查询,因此根据关键词在缓存区中进行查询可以显著提高查询的效率。

另外,从第二信息表中查询包含第一关键词的信息,获得查询结果,具体包括:从第二信息表中查询包含第一关键词的信息,判断第二信息表中是否包含第一关键词的信息,若是,则从第二信息表中获取包含第一关键词的信息,否则,获得未查询到结果通知。该实现中,不管有没有查询到关键词的信息,都会把该关键词的查询信息存入缓存中,从而在下次查询时可以直接从缓存中获取,从而提高了查询效率。

另外,从第二信息表中查询包含第一关键词的信息,获得查询结果之后,还包括:将查询结果保存到缓存区中,其中,查询结果包括:包含第一关键词的信息或未查询到结果通知。该实现中,将查询结果保存到缓存区中,当有相同的关键词再次从缓存区中进行查询时,可以直接获取查询结果,不需要再次从第二信息表中进行查询,从而进一步提高了查询效率。

另外,确定第一信息表中需要进行信息查询的第一关键词之前,还包括:将第二信息表中的部分信息保存到缓存区中。

另外,将第二信息表中的部分信息保存到缓存区中之前,还包括:将第一信息表中的每一个关键词按照属性进行分区处理,将具有相同属性的关键词保存到同一分区中;将查询结果保存到缓存区中之后,还包括:判断是否继续进行信息查询;若是,则判断第一信息表中需要进行信息查询的第二关键词是否与第一关键词位于同一分区中,若是,则直接获取查询结果,否则,重新执行信息查询方法;否则,结束信息查询方法。该实现中,通过对第一信息表中的关键词进行分区,并将具有相同属性的关键词保存到同一分区中,如果同一分区中中的任意一个关键词的查询结果已经保存在缓存区中之后,同一分区中的其它关键词可以直接获取该查询结果,不需要再次从第二信息表中进行查询,从而进一步提高了查询效率。

另外,属性包括名称或类别。

另外,将查询结果保存到缓存区中之后,还包括:若确定缓存区中的信息在预设时间内未被查询,则将缓存区中的信息进行删除。通过在预设时间内删除缓存区中未被查询的信息,从而实现对缓存区中信息的定期更新,避免缓存区中的数据过多。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本申请第一实施例中信息查询方法的流程图;

图2是本申请第一实施例中一个具体实现中信息查询方法方法的流程图;

图3是本申请第二实施例中信息查询方法的流程图;

图4是本申请第三实施例中信息查询装置的方框示意图;

图5是本申请第五实施例中服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种信息查询方法,具体流程如图1所示,包括以下步骤:

步骤101,将第二信息表中的部分信息保存到缓存区中。

具体的说,本实施方式中的第二信息表可以是维度表,通常是存储在磁盘中的,并且在大数据的流计算中,维度表中的数据往往是非常庞大的,如果直接对第二信息表中的信息进行查询,则需要进行全局查询,查询效率非常缓慢。本实施方式中可以将第二信息表中的部分信息保存到缓存区中,从缓存区中进行查询。当然,对于保存到缓存区中的信息可以是第二信息表中的任意一部分信息,本实施方式中并不限定从第二信息表中获取的具体信息。例如,在第二信息表中有两万行信息,可以根据用户的指令,将第二信息表中的第100行至300行的信息保存到缓存区中。

步骤102,确定第一信息表中需要进行信息查询的第一关键词。

具体的说,本实施方式中的第一信息表可以是事实表,并且在大数据的应用场景中,事实表中的数据也是非常庞大的,并且事实表中的信息是不断更新的,在根据第一信息表对第二信息表进行查询的时候,主要是根据第一信息表中的关键词来进行查询的,因此在进行查询之前首先需要确定第一信息表中需要进行信息查询的第一关键词。

例如,第一信息表中共有三列,每列的标题分别是姓名,年龄和地址,并且有三行信息分别是第一行信息(王五20北京)、第二行信息(张三30南京)和第三行信息(李四20上海),因此每行具体信息分别包含三个元素,分别是姓名、年龄和地址。针对一个具体的信息可以将三个元素中的任意一个具体元素确定为第一关键词,例如,选择第一信息表中的第一行信息中的王五作为第一关键词,则(王五20北京)是与第一关键词所对应的有效值。并且本实施方式中的关键词用key表示,与关键词key所对应的有效值用value表示。

步骤103,判断缓存区中是否包含第一关键词的信息,若是,则执行步骤104,否则,执行步骤105。

具体的说,在本实施方式中,是通过遍历缓存区中的每条信息,来判断缓存区中是否包含第一关键词的信息。当遍历缓存区中的每条信息后,如果没有查询到包含第一关键词的信息,则确定缓存区中不包含第一关键词的信息;当遍历缓存区中的信息时,如果查询到包含第一关键词的信息,则确定缓存区中包含第一关键词的信息,然后将第一关键词对应的所有有效值取出,并且不再对缓存区中的剩余信息进行查询。

步骤104,从缓存区中获取包含第一关键词的信息。

具体的说,当确定缓存区中包含第一关键词的信息时,则直接从缓存区中获取包含第一关键词的信息。

例如,确定第一信息表中需要进行查询的第一关键词为“王五”,并且缓存区中的信息也是以列表的形式进行存储。其中,列表的标题分别是姓名,性别和工资,并且有三行信息分别是第一行信息(赵明男5000)、第二行信息(李红女4000)和第三行信息(王五男5000),因此缓存区中的列表中每条具体信息分别包含三个元素,分别是姓名、性别和工资。当经过查询确定缓存区中存在包含第一关键词“王五”的信息,即第三行信息(王五男5000),则直接从缓存区中获取包含王五的信息即(王五男5000)。

步骤105,从第二信息表中查询包含第一关键词的信息,获得查询结果。

在一个具体实现中,如图2所示为该具体实现中的信息查询方法的流程图,其中步骤1051至步骤1053是对步骤105的具体说明。

步骤1051,从第二信息表中查询包含第一关键词的信息,判断第二信息表中是否包含第一关键词的信息,若是,则执行步骤1052,否则,执行步骤1053。

具体的说,在本实施方式中,是通过遍历第二信息表中的每条信息进行查询,判断第二信息表中是否包含第一关键词的信息。当遍历缓存区中的每条信息后,如果没有查询到包含第一关键词的信息,则确定第二信息表中不包含第一关键词的信息;当遍历第二信息表中的信息时,如果查询到包含第一关键词的信息,则确定第二信息表中包含第一关键词的信息,并且不再对缓存区中的剩余信息进行查询。

步骤1052,从第二信息表中获取包含第一关键词的信息。

具体的说,当确定第二缓存区中包含第一关键词的信息时,则直接从第二信息表中获取包含第一关键词的信息。

步骤1053,获得未查询到结果通知。

具体的说,当根据第一关键词从第二信息表中进行查询时,当经过遍历第二信息表中的所有信息后,依然没有查询到包含第一关键词的信息,则会获得未查询到结果通知。例如,当确定第一信息表中需要进行查询的第一关键词为“王五”,当遍历第二信息表中的所有信息后,都没有查询到包含“王五”的信息,则会获得关于“王五”的查询结果通知(王五nullnull),表示未查询到包含“王五”的的信息。

与现有技术相比,本实施方式提供的信息查询方法,当需要根据第一信息表中的关键词从第二信息表中查询包含该关键词的信息之前,先从缓存区中进行查询,由于第二信息表中的信息包括缓存区中的信息,所以缓存区中的信息要少于第二信息表中的信息,如果在缓存区中能够查询到包含该关键词的信息,则不再从第二信息表中进行查询,因此根据关键词在缓存区中进行查询可以显著提高查询的效率。

本发明的第二实施方式涉及一种信息查询方法。本实施例在第一实施例的基础上做了进一步改进,具体改进之处为:在将第二信息表中的部分信息保存到缓存区中之前,增加了对第一信息表中的每一个关键词按照属性进行分区处理的操作;在获得查询结果之后,增加了将查询结果保存到缓存区中的操作;并增加了是否继续进行信息查询的后续操作。本实施例中的信息查询方法的流程如图3所示。具体的说,在本实施例中,包括步骤201至步骤210,其中步骤202至步骤206与第一实施方式中的步骤101至步骤105大致相同,此处不再赘述,下面主要介绍不同之处,未在本实施方式中详尽描述的技术细节,可参见第一实施例所提供的信息查询方法,此处不再赘述。

步骤201,将第一信息表中的每一个关键词按照属性进行分区处理。

具体的说,在本实施方式中,将第一信息表中的每一个关键词按照属性进行分区处理,将具有相同属性的关键词保存到同一分区中。本实施方式中的属性包括名称或类别,当然,在本实施方式中属性还可能包括其它类型,本实施方式中只是举例进行说明。

在一个具体实现中,第一信息表中共有100个关键词,并且每一个关键词分别用keyi表示,i表示每一个关键词的序号。假设将第一信息表中的关键词分到三个分区中,第一个分区中的关键词包括{key1,key2,....,key30},第二个分区中的关键词包括{key31,key32,....,key80},第三个分区中的关键词包括{key81,key82,....,key100},并且同一分区中的类别相同,例如,第一分区中的类别是水果,key1表示红提葡萄,key2表示青提葡萄等;第二分区中的类别是蔬菜,key31表示白菜,key32表示茄子等;第三分区中的类别是杂粮,key81表示小米,key82表示玉米等。

步骤201之后,执行步骤202至步骤206。

步骤207,将查询结果保存到缓存区中。

具体的说,查询结果包括包含第一关键词的信息或未查询到结果通知,例如,第一关键词是红提葡萄,第二信息表中共有三列,每列的标题分别是名称、出口国家和出口数量(吨),如果根据红提葡萄在第二信息表中查询获得(红提葡萄美国1000),则表示在第二信息表中查询到包含红提葡萄的信息;如果根据红提葡萄在第二信息表中查询获得(红提葡萄nullnull),则表示在第二信息表中未查询到包含红葡萄的信息。并且不论是查询到还是未查询都将查询结果保存到缓存区中。

需要说明的是,在本申请实施方式中,在将查询结果保存到缓存区中之后,确定缓存区中的信息在预设时间内未被查询,则将缓存区中的信息进行删除,从而实现定时更新缓存区中的信息。并且,缓存区还设置有内存调节机制,可以根据需要实时调整缓存区的大小。

步骤208,判断是否继续进行信息查询,若是,则执行步骤209,否则结束。

具体的说,在实际应用中,可以根据是否接收到用户指令来确定是否继续进行信息查询,并且可以设定预设时间,判断在预设时间内是否接收到用户指令,若在预设时间内接收到用户发出的继续进行查询的指令,则执行步骤209,并确定需要继续进行查询的第二关键词,否则结束。

步骤209,判断第一信息表中需要进行查询的第二关键词是否与第一关键词位于同一分区内,若是,则执行步骤210,否则,重新执行步骤202。

具体的说,在确定第一信息表中需要进行信息查询的第二关键词之后,确定第二关键词所在的分区,并在分区中进行全局搜索,确定第二关键词所在的分区内是否包含第一关键词,若搜索到第一关键词,则确定第二关键词与第一关键词位于同一分区内。

步骤210,直接获取查询结果。

其中,若确定第二关键词与第一关键词位于同一分区内,则直接从缓存区中获取第一关键词的查询结果。例如,如果第一关键词是红提葡萄,第二关键词是青提葡萄,并且缓存区中保存了红提葡萄的未查询到结果通知即(红提葡萄nullnull),说明在第二信息表中不存在包含红提葡萄的信息,由于青提葡萄与红提葡萄位于同一个分区内,当在缓存区中未查找到包含青提葡萄的信息时,则直接根据红提葡萄的未查询到结果通知,获得青提葡萄的查询结果是(青提葡萄nullnull),并且即使在缓存区中查询不到包含青提葡萄的信息也不再从第二信息表中进行查询了。

与现有技术相比,本实施方式提供的信息查询方法,当需要根据第一信息表中的关键词从第二信息表中查询包含该关键词的信息之前,先从缓存区中进行查询,由于第二信息表中的信息包括缓存区中的信息,所以缓存区中的信息要少于第二信息表中的信息,如果在缓存区中能够查询到包含该关键词的信息,则不再从第二信息表中进行查询,因此根据关键词在缓存区中进行查询可以显著提高查询的效率。并且通过对第一信息表中的关键词进行分区处理,当同一分区中的任意一个关键词的查询结果已经保存在缓存区中之后,同一分区中的其它关键词可以直接获取该查询结果,不需要再次从第二信息表中进行查询,从而进一步提高了查询效率。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施方式涉及一种信息查询装置,具体结构如如图4所示。

如图4所示,信息查询装置包括:保存模块401、确定模块402、判断模块403和查询模块404。

其中,保存模块401,用于将第二信息表中的部分信息保存到缓存区中。

确定模块402,用于确定第一信息表中需要进行信息查询的第一关键词。

判断模块403,用于判断缓存区中是否包含第一关键词的信息。

查询模块404,用于在判断模块401确定缓存区中存在包含第一关键词的信息后,从缓存区中获取包含第一关键词的信息;在判断模块401确定缓存区中不存在包含第一关键词的信息后,从第二信息表中查询包含第一关键词的信息,获得查询结果;其中,第二信息表中的信息包括缓存区中的信息。

不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第四实施方式涉及一种服务器,如图5所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述实施例中的信息查询方法。

本实施例中,处理器501以中央处理器(centralprocessingunit,cpu)为例,存储器502以可读写存储器(randomaccessmemory,ram)为例。处理器501、存储器502可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中实现信息查询方法的程序就存储于存储器502中。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述信息查询方法方法。

存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个程序模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施例中的信息查询方法方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请的第六实施方式涉及一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时能够实现本发明任意方法实施例中涉及的信息查询方法方法。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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