一种海量数据实时查询方法及系统与流程

文档序号:12364102阅读:547来源:国知局
一种海量数据实时查询方法及系统与流程
本发明涉及电视技术,特别涉及一种海量数据实时查询方法及系统。
背景技术
:随着智能电视的普及,用户量及视频量都迅速增长。智能电视上都会有根据频道、视频分类、视频地区、视频年代等多个维度的条件组合查询。当用户和视频数量达到一定级别时,基于传统数据库的实时查询方法会遇到瓶颈,导致用户点击查询时的等待时间很长才能显示结果,或者直接显示查询超时或一直缓冲查询,给用户带来不便。因而现有技术还有待改进和提高。技术实现要素:鉴于上述现有技术的不足之处,本发明的目的在于提供一种海量数据实时查询方法及系统,以解决现有海量数据实时查询时等待时间较长的问题。为了达到上述目的,本发明采取了以下技术方案:一种海量数据实时查询方法,其包括:步骤A、收到查询请求时,将查询条件转换成预设格式的条件组合;步骤B、根据条件组合生成对应的哈希值,根据该哈希值从键值对应表获取预先生成的查询结果;步骤C、反馈查询结果。所述的海量数据实时查询方法中,所述步骤A之前,还包括:步骤A1、初始化时,将各个类别下的所有维度的条件进行排列组合生成对应的条件组合;步骤A2、将各条件组合生成对应的哈希值,将条件组合和哈希值的对应关系存入数据库中;步骤A3、以各条件组合在基础数据中进行数据查询,将查询结果与相应的哈希值对应生成键值对应表、并存储至缓存中。所述的海量数据实时查询方法中,所述类别是需要查询的内容的分类;每个类别下都设置有排序固定的若干个维度,所述维度表示各类别的特征属性:每个维度中设置有排序固定的若干个条件。所述的海量数据实时查询方法中,在所述步骤A1中,每个维度中只能选择一个条件或不选择,不选择时用空字符表示;根据各维度的顺序将选出的条件或空字符按序用加号连接,每个条件组合以加号开头且以加号+结尾。所述的海量数据实时查询方法中,还包括:步骤D0、当检测基础数据增删一条数据,且对应增删维度内的条件时;步骤D1、根据增删的数据的维度查询出所属条件,从所有条件组合中查找与所属条件相关的条件组合及其哈希值;步骤D2、以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中。所述的海量数据实时查询方法中,还包括:步骤D10、当检测基础数据更新一条数据,且维度未变时;步骤D11、查询出更新的数据各维度下的条件,从现有的条件组合中找出与该条件相关的条件组合;步骤D12、将找出来的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中。所述的海量数据实时查询方法中,还包括:步骤D20、当检测基础数据更新一条数据,且维度内的条件也更新时;步骤D21、查询出该数据更新前后的条件,从所有条件组合中查找与更新前后的条件相关的条件组合及其哈希值;步骤D22、以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中。一种实现所述的海量数据实时查询方法的系统,其包括请求转换模块、处理模块、反馈模块、数据库和缓存服务器;所述请求转换模块收到查询请求时,将查询条件转换成预设格式的条件组合;处理模块根据条件组合生成对应的哈希值,根据该哈希值从键值对应表获取预先生成的查询结果;反馈模块反馈查询结果;所述数据库存储条件组合和哈希值的对应关系,缓存服务器存储键值对应表。所述的系统中,所述请求转换模块还用于初始化时,将各个类别下的所有维度的条件进行排列组合生成对应的条件组合;所述处理模块还用于,将各条件组合生成对应的哈希值,将条件组合和哈希值的对应关系存入数据库中;以各条件组合在基础数据中进行数据查询,将查询结果与相应的哈希值对应生成键值对应表、并存储至缓存中。所述的系统中,所述处理模块还用于当检测基础数据增删一条数据,且对应增删维度内的条件时;根据增删的数据的维度查询出所属条件,从所有条件组合中查找与所属条件相关的条件组合及其哈希值;以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中。相较于现有技术,本发明提供的海量数据实时查询方法及系统,在收到查询请求时,将查询条件转换成预设格式的条件组合;根据条件组合生成对应的哈希值,根据该哈希值从键值对应表获取预先生成的查询结果;反馈查询结果。通过将各种条件组合对应的哈希值和查询结果预先存储,查询时将查询条件转换成对应的条件组合,根据该条件组合生成哈希值,再根据哈希值即可直接调用相应的查询结果,从而达到了快速查询的目的,解决了现有海量数据实时查询等待时间较长的问题。附图说明图1为本发明提供的海量数据实时查询方法流程图。图2为本发明提供的海量数据实时查询的系统的结构框图。具体实施方式本发明提供一种海量数据实时查询方法及系统,通过将海量的查询条件设置为若干个固定的维度,各维度有固定可选组合,将各种条件组合对应一种查询结果并存储到缓存中。用户查询时将查询条件转换成对应的条件组合,根据该条件组合即可直接调用对应的查询结果,从而达到了快速显示查询的目的。为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本实施例提供的海量数据实时查询方法可应用与电脑(网页的站内搜索)搜索、智能电视搜索。电脑或智能电视将用户输入的查询请求发送至服务器中,由服务器执行上述海量数据实时查询方法。请参阅图1,本发明提供的海量数据实时查询方法包括:S100、收到查询请求时,将查询条件转换成预设格式的条件组合;S200、根据条件组合生成对应的哈希值,根据该哈希值从键值对应表获取预先生成的查询结果;S300、反馈查询结果。本实施例中,当服务器第一次启动时,需进行初始化以生成键值对应表。后续启动时直接使用该键值对应表。则所述进行初始化以生成键值对应表的步骤具体包括:步骤101、当服务器第一次启动时,将各个类别下的所有维度的条件进行排列组合生成对应的条件组合;步骤102、将各条件组合生成对应的哈希值,将条件组合和哈希值的对应关系存入数据库中;步骤103、以各条件组合在基础数据中进行数据查询,将查询结果与相应的哈希值对应生成键值对应表、并存储至缓存中。本实施例中,所述类别、即需要查询的内容的分类,如美食、视频、音乐、文学等。每个类别下都设置有排序固定的若干个维度,所述维度表示各类别的特征属性。每个维度中设置有排序固定的若干个条件。如,美食的维度可以包括种类(条件包括如火锅、自助餐、西餐等)、地区(即各美食所在地,条件包括如南山区、罗湖区等)、用餐人数(条件包括不限、单人餐、双人餐等)。音乐的维度可以包括风格(条件包括如流行、摇滚、中国风等)、语种(条件包括如国语、粤语、英语等)、主题(条件包括如80后、经典、动漫等)。此处对维度和条件的设置不作限定。智能电视主要涉及视频方面的搜索查询,此处的类别以视频为例、来阐述所述海量数据实时查询方法。所述视频包括四个维度(频道、分类、地区、年代)和16个条件,其排序如下所述:a、频道:电影、电视剧、综艺、动漫;b、分类:喜剧、武侠、历史、爱情、悬疑;c、地区:大陆、港台、亚洲、美国、欧洲;d、年代:2015、2014、2013、2012。每个维度中只能选择一个条件,则每个维度的条件值为0(均不选)或1(选择其中1个条件)。进行排列组合时,若某维度选了其中一个条件,则提取出该条件;若没有选择,则用空字符表示。接着根据各维度的顺序将所选出的条件或空字符按序用加号+连接,每个条件组合以加号+开头且以加号+结尾。由于各维度的顺序是固定的,得到的各条件组合也是固定且不相同的。例如:条件组合1:+电影+喜剧+++;表示条件组合为“电影+喜剧”,“地区”和“年代”中未选条件,则表示对应的全部条件都算。后面倒数第3个加号+与倒数第2个加号+之间,倒数第2个加号+与倒数第1个加号+之间均为空字符。条件组合2:+电视剧+爱情+大陆++;表示视频限定为大陆拍摄的爱情电视剧,对年代不限制。条件组合3:++++2012+;表示条件组合只限定视频上映的年代,其他条件不限定。从左起的4个加号之间有3个空字符。各条件组合分别进行哈希值转换,“电影”、“喜剧”等是固定的字符串,根据字符串生成哈希值是现有技术,此处对此不作详述。条件组合与哈希值的对应关系如下表1所示:哈希值条件组合f9fd261967b441146684a97717673c10+电影+喜剧+++6115a1d00cee578a8d4bc9b107a69d21+电视剧+爱情+大陆++9d0f5e709d1d1d54276ba3df72853c64++++2012+............表1该表1中的哈希值仅为示例。接着以条件组合进行数据查询,查询结果包括所有符合该条件组合的视频及其链接。这样条件组合、哈希值、查询结果之间就形成了一一对应的键值对应表。在所述步骤S100中,当用户进行查询时,先在智能电视机上选择所需的查询条件,点击查询图标则生成查询请求,解析查询条件并转换成预设格式(以加号连接)的条件组合。如查询条件为“频道=电影&分类=喜剧”,则得到的条件组合为“+电影+喜剧+++”。在步骤S200中,将该条件组合生成哈希值,如“f9fd261967b441146684a97717673c10”;再根据该哈希值从键值对应表中找到早已生成的查询结果。最后即可将查询结果返回给用户的终端。由于事先存储好各种查询条件对应的查询结果,实际查询时即可快速调用出对应的查询结果,大大加快了查询结果的查询速度。本实施例中的基础数据(即数据资源,如视频,则为视频数据表,其中包含各视频名称、频道、分类、地区、年代、发布时间、内容、播放链接等属性内容,其增加或删除并不会导致维度的变化)都存储于现有的数据库(MySQL(关系型数据库)、Oracle数据库等)中,用户查询请求的结果来自于内存级的缓存服务器(如MemCached、Redis等)。在数据库与缓存服务器之间建立缓存更新服务。当基础数据变更时,缓存更新服务立即将基础数据的变更同步到缓存(即缓存服务器)中。需要理解的是,服务器中的数据是会变化的,在所述步骤S300之后,若服务器检测到基础数据变化,同步更新缓存中的查询结果。变更的数据涉及到条件组合时,具体包括以下三种情况:情况一:当基础数据增加或删除一条数据,且对应增删维度内的条件时。根据增删的数据的维度(即条件属性,如频道、分类、地区、年代)查询出所属条件,从所有条件组合中查找与所属条件相关的条件组合及其哈希值;再以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值对应更新键值对应表、并存储至缓存中。例如,某个视频上线(新增加一部影片,视频数据表中增加对应的数据)或下线(删除某影片,视频数据表中删除对应的数据);先查询出其所属条件(如在频道中的所属条件是电影,分类中的所属条件是喜剧),再从现有的条件组合中查询出与更改(增减)的条件相关的条件组合,如哪些条件组合中有电影,查找出来。再将这些找出来的条件组合重新进行一次数据查询,获得新的查询结果(若删除则查询结果中无该影片,若新增则查询结果中对应增加该影片)。将新的查询结果与各条件组合的哈希值相对应,从而更新键值对应表。情况二、当检测基础数据更新一条数据时,如果其维度(频道、分类、地区、年代)没有变化。先查询出更新的数据各维度下的条件,再从现有的条件组合中找出与该条件相关的条件组合,接着将这些找出来的条件组合重新进行一次数据查询,获得新的查询结果。将新的查询结果与各条件组合的哈希值相对应,从而更新键值对应表。以视频为例,更新的数据是视频的格式(如原来是标清的,后更改为高清的),但没有更改其维度中的条件(频道=电影、分类=喜剧、地区=大陆)。先查询该数据维度下的条件(涉及电影、喜剧、大陆),再从现有的条件组合中找出与电影、喜剧、大陆相关的条件组合,接着将这些找出来的条件组合重新进行一次数据查询,获得新的查询结果。将新的查询结果与各条件组合的哈希值相对应,从而更新键值对应表。这样新查询出的该视频就是高清格式的。情况三、当检测基础数据更新一条数据时,如果其维度(频道、分类、地区、年代)内的条件也更新时。查询出该数据更新前后的条件,从所有条件组合中查找与更新前后的条件相关的条件组合及其哈希值;再以查找出的条件组合从基础数据中进行数据查询,将查询结果与相应的哈希值对应更新键值对应表、并存储至缓存中。例如,某个视频的分类由喜剧更改为爱情;更改后则喜剧片中不能出现该视频,爱情片中需出现该视频。因此,需先查询出该数据更新前后的条件分别是喜剧、爱情。再从现有的条件组合中查询出与喜剧、爱情相关的条件组合。再将这些找出来的条件组合重新进行一次数据查询,则与喜剧相关的查询结果中不再出现该视频,与爱情相关的查询结果中显示该视频。最后将新的查询结果与各条件组合的哈希值相对应,从而更新键值对应表。基于上述的海量数据实时查询方法,本发明实施例还提供一种海量数据实时查询的系统,请参阅图2、所述服务器包括请求转换模块10、处理模块20、反馈模块30、数据库40和缓存服务器50(即缓存),所述请求转换模块10、处理模块20、反馈模块30依次连接。请求转换模块10和反馈模块30与发出查询请求的终端通讯连接。请求转换模块10收到终端的查询请求时,将查询条件转换成预设格式的条件组合。处理模块20根据条件组合生成对应的哈希值,根据该哈希值从键值对应表获取预先生成的查询结果。反馈模块30反馈查询结果给终端。数据库40存储条件组合和哈希值的对应关系,缓存服务器50存储键值对应表。其中,请求转换模块10还用于初始化时,将各个类别下的所有维度的条件进行排列组合生成对应的条件组合。所述处理模块20还用于将各条件组合生成对应的哈希值,将条件组合和哈希值的对应关系存入数据库中;以各条件组合在基础数据中进行数据查询,将查询结果与相应的哈希值对应生成键值对应表、并存储至缓存中。本实施例中,所述处理模块20包括:哈希值单元201,用于初始化时,将各条件组合生成对应的哈希值,将条件组合和哈希值的对应关系存入数据库中;及收到查询请求时,根据条件组合生成对应的哈希值,并存入数据库中;查询生成单元202,用于初始化时,以各条件组合在基础数据中进行数据查询,将查询结果与相应的哈希值对应生成键值对应表、并存储至缓存中;获取单元203,用于收到查询请求时,根据哈希值从键值对应表获取预先生成的查询结果。所述处理模块20还包括:检测单元,用于检测基础数据是否增删一条数据,且是否对应增删维度内的条件;以及检测基础数据是否更新一条数据,且维度是否更新;所述查询生成单元202还用于,根据增删的数据的维度内的条件查询出所属条件,从所有条件组合中查找与所属条件相关的条件组合及其哈希值;以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中;所述查询生成单元202还用于,查询出更新的数据各维度下的条件,从现有的条件组合中找出与该条件相关的条件组合;将找出来的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中;所述查询生成单元202还用于,查询出该数据更新前后的条件,从所有条件组合中查找与更新前后的条件相关的条件组合及其哈希值;以查找出的条件组合在更新的基础数据中进行数据查询,将查询结果与相应的哈希值相对应以更新键值对应表、并存储至缓存中。综上所述,本发明通过将海量的查询条件设置为若干个固定的维度,将各维度的条件进行排列组合生成对应的条件组合,根据条件组合生成哈希值并进行查询获得一种查询结果,将查询结果和哈希值的键值对应表存储到缓存中。在用户查询时将查询条件转换成对应的条件组合,再生成对应的哈希值,由于事先存储好各种查询条件对应的查询结果,通过查询键值对应表即可直接调用对应的查询结果,从而达到了加快查询请求响应速度的目的,还不会出现查询超时或查询出错的问题。上述功能模块的划分仅用以举例说明,在实际应用中,可以根据需要将上述功能分配由不同的功能模块来完成,即划分成不同的功能模块,来完成上述描述的全部或部分功能。本领域普通技术人员可以理解上述实施例方法中的全部或部分流程,是可以通过计算机(移动终端)程序来指令相关的硬件完成,所述的计算机(移动终端)程序可存储于一计算机(移动终端)可读取存储介质中,程序在执行时,可包括上述各方法的实施例的流程。其中的存储介质可以为磁碟、光盘等。可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1