一种大量数据情况下的可靠即时检索方法及系统的制作方法

文档序号:6547770阅读:133来源:国知局
一种大量数据情况下的可靠即时检索方法及系统的制作方法
【专利摘要】本发明公开了一种大量数据情况下的可靠即时检索方法,包括以下步骤:S1:存储数据库配置信息;S2:接受检索内容;S3:将检索目标内容进行数据切分,形成切片数据;S4:根据数据库配置信息的映射关系对切片数据进行查询解析,并计算切片数据的存储位置;S5:将查询解析后的信息分发至数据库配置信息中对应的数据存储数据库;S6:从对应的数据存储数据库提取需要检索的特征数据;S7:将提取的特征数据进行归并。本方法具有快速、准确的特点:在复杂海量数据中,将筛选后的目标内容,根据数据抽象模块进行切分,通过查询解析与分发模块,寻找对应数据,最后通过结果归并模块得出搜索结果。通过提高关系操作效率,满足大数据高并发读写需求。
【专利说明】一种大量数据情况下的可靠即时检索方法及系统
【技术领域】
[0001]本发明涉及计算机信息管理系统领域,特别涉及一种大量数据情况下的可靠即时检索方法及系统。
【背景技术】
[0002]现有检索方法核心主要还是使用遍历的思想,在遍历的基础上,针对搜索目标范围做了不同程度的改进,主要使用以下几种检索方法:
[0003]根据用户的工作环境、任务、常用程序和关注焦点,利用非侵入方式的代理软件的监视来实现即时信息检索;
[0004]对网页中的关键字进行即时检索的方法:在向客户端加载网页的同时,加载对网页内容进行关键字检索的脚本程序,实时监视接收鼠键操作,等待查询;
[0005]基于多协同的即时信息检索框架模型:将双基协同、多代理协同、多向量协同用于即时信息检索,并增加缓冲知识库,考虑在代理通信和检索中利用兴趣向量和结果向量;
[0006]基于Web的面向主题的知识检索方法:以开放动态的Web信息为基础,以用户选定的主题为中心,构成与用户主题相关的知识检索结果;
[0007]分布式、分散式数据检索方法:分散请求用于数据检索的带宽,分散计算环境;
[0008]基于稀疏哈希的大数据检索方法:对大数据检索的时间复杂度为线性,解决流形学习无显式函数的问题,降低大数据的存储量。
[0009]这些技术存在的问题:首先不完全适用于对大量数据的检索应用;其次,每个方法各有长短,但是其短处在大数据背景下被放大,不能有效地实现即时可靠的检索,所述最后一种方法,也只是在一定程度上降低了存储量,并未显著达到大数据搜索的快速可靠的要求。
[0010]在大数据时代,传统数据查询方法在搜索数据时费时较多并且可能会对信息有遗漏。
[0011]因此需要一种大量数据情况下的可靠即时检索方法及系统。

【发明内容】

[0012]有鉴于此,本发明所要解决的技术问题是提供一种大量数据情况下的可靠即时检索方法及系统。
[0013]本发明的目的之一是提出一种大量数据情况下的可靠即时检索方法;本发明的目的之二是提出一种大量数据情况下的可靠即时检索系统。
[0014]本发明的目的之一是通过以下技术方案来实现的:
[0015]本发明提供的一种大量数据情况下的可靠即时检索方法,包括以下步骤:
[0016]S1:存储数据库配置信息;
[0017]S2:接受查询内容;
[0018]S3:将检索目标内容进行数据切分,形成切片数据;[0019]S4:根据数据库配置信息的映射关系,对切片数据进行查询解析,计算切片数据的存储位置;
[0020]S5:将查询解析后的信息分发至数据库配置信息中对应的数据存储数据库;
[0021]S6:从对应的数据存储数据库提取符合检索条件的特征数据;
[0022]S7:将提取的特征数据进行归并。
[0023]进一步,所述信息分发包括以下步骤:
[0024]S51:预分发过程,将存在过滤条件的数据分发至特定的物理数据库,并按照MapReduce方式处理;
[0025]S52:其余未执行的查询过程会被分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
[0026]进一步,所述数据切分包括以下步骤:
[0027]S31:将检索目标内容按类别进行分类,并将不同的类分别以不同的表分布于不同的、互相独立且相互间不存在通信过程的物理数据库中;
[0028]S32:判断类的数据量是否超过内存的大小,如果否,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出;
[0029]S33:如果是,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;再次进项上述S31开始的步骤。
[0030]进一步,在步骤S4后还包括以下步骤:
[0031]S41:建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息;
[0032]S42:对数据的查询操作,可根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发;
[0033]S43:若重叠,则对子表进行转发,并传至结果归并模块。
[0034]进一步,所述特征数据进行归并采用MapReduce并行数据处理;所述MapReduce并行数据处理包括Map过程和Reduce过程;
[0035]所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;
[0036]所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
[0037]本发明的目的之二是通过以下技术方案来实现的:
[0038]本发明提供的一种大量数据情况下的可靠即时检索系统,包括数据抽象模块、查询解析和分发模块、数据存储模块、结果归并模块;
[0039]所述数据抽象模块,用于存储数据库配置信息,所述配置信息包括数据与类型的映射、类与存储介质的映射;
[0040]所述查询解析和分发模块,接受应用程序发来的请求,对请求的数据库查询语句进行解析,并翻译成实际的数据库查询语句,转发至实际数据库中;用于根据数据库配置信息的映射关系,对切片数据进行查询解析,并计算切片数据的存储位置;查询解析后的信息分发至与数据库配置信息相对应的数据存储数据库;
[0041]所述数据存储模块,用于从对应的数据存储数据库提取需要检索的特征数据;
[0042]所述结果归并模块,用于将提取的特征数据进行归并,如连接、排序、分组等。结果归并的主要目的是使下层复杂的模块化结构对上层用户透明。[0043]进一步,所述查询解析和分发模块负责接受并解析数据用户的查询语句,根据数据抽象模块提供的映射关系,将查询分发至数据存储模块中对应的数据库系统。该模块查询的结构会按照多态机制的配置,对数据进行初步的加工处理,从而屏蔽不同类型数据的差异,实现继承结构的透明性。包括预分发单元和未执行查询执行单元;
[0044]所述预分发单元只将存在过滤条件的数据分发至特定的物理数据库,并在结果归并模块中,按照MapReduce方式处理;
[0045]所述未执行查询执行单元,用于将其余未执行的查询过程,分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
[0046]进一步,所述查询解析和分发模块还包括数据切分单元和数据量判断单元;
[0047]所述数据切分单元,用于将检索目标内容进行分类,并将不同的类分别以不同的表分布于不同的、互相独立且相互间不存在通信过程的物理数据库中;
[0048]所述数据量判断单元,用于判断类的数据量是否超过内存的大小,如果否,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出;如果是,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;再次进项上述S31开始的步骤。
[0049]进一步,还包括查询缓存建立单元、查询操作单元;
[0050]所述查询缓存建立单元,用于建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息;
[0051]所述查询操作单元,用于对数据的查询操作。根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发;若重叠,则对子表进行转发传至结果归并1吴块。
[0052]进一步,所述结果归并模块采用MapReduce并行数据处理对特征数据进行归并;所述MapReduce并行数据处理包括Map过程和Reduce过程;所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
[0053]本发明的有益效果在于:本发明提供的大量数据情况下的可靠即时检索方法,实现了在查询语句的层面上提高关系操作的效率,同时在一定程度上满足大数据的实时性需求。对于大数据的简单读取操作,本方法采用了并行处理的内连接处理方式,通过并行地读取该条数据的各个部分,提高数据读写能力,满足大数据高并发读写需求。本发明采用并行处理时,为存入数据库的每一条数据增加了一个ID字段,然后根据该ID格式,系统可以直接获取该数据的实际类型标识信息,从而计算出数据的实际类型,并根据类型的存储信息,确定数据的存储位置,直接通过独立的查询语句,将数据读取出来。并行操作通常只需要两到三次的检索时间,即可将整条数据对象读出,在数据读取过程中,并行度更高。
[0054]本方法具有快速、准确的特点:在复杂海量数据中,将筛选后的目标内容,根据数据抽象模块进行切分,并通过查询解析与分发模块,寻找对应数据,最后通过结果归并模块得出搜索结果。
[0055]本发明采用对查询语句进行解析与分发,可将对数据的某些处理提前到更低的层次来完成,处理后的数据量减少,从而减少数据传输量,提高传输效率。数据处理针对具有某种特性的一类数据进行,因此数据切分符合逻辑需求,数据切分过程不需要用户干预,避免了用户设计失误导致的效率损失。支持查询过程的自动分发,因此数据切分对上层是透明的。自动数据切分是以系统自动分配的ID号来完成的,数据切分方案并未增加系统结构的复杂性。
【专利附图】

【附图说明】
[0056]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
[0057]图1为本发明实施例提供的总体工作示意图;
[0058]图2为本发明实施例提供的核心思想框架图;
[0059]图3为本发明实施例提供的并行实现示意图;
[0060]图4为本发明实施例提供的系统结构图与存储工作流程图;
[0061]图5为本发明实施例提供的使用特征信息优化查询图;
[0062]图6为本发明实施例提供的特征信息的自动记录示意图;
[0063]图7为本发明实施例提供的自动选择最细化子类示意图;
[0064]图8为本发明实施例提供的用户指定操作对象示意图;
[0065]图9为本发明实施例提供的可靠即时检索方法流程图。
【具体实施方式】
[0066]以下将参照附图,对本发明的优选实施例进行详细的描述。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
[0067]实施例1
[0068]图1为本发明实施例提供的总体工作示意图;图2为本发明实施例提供的核心思想框架图;图3为本发明实施例提供的并行实现示意图;图4为本发明实施例提供的系统结构图与存储工作流程图;图5为本发明实施例提供的使用特征信息优化查询图;图6为本发明实施例提供的特征信息的自动记录示意图;图7为本发明实施例提供的自动选择最细化子类示意图;图8为本发明实施例提供的用户指定操作对象示意图;图9为本发明实施例提供的可靠即时检索方法流程图。如图所示:本发明提供的一种大量数据情况下的可靠即时检索方法,包括以下步骤:
[0069]S1:存储数据库配置信息;所述数据库配置信息包括各数据类型、用于实现数据与类型映射的类标识、类型与存储介质映射关系。
[0070]S2:接受查询内容;
[0071]S3:将检索目标内容按类别进行分类数据切分,形成切片数据;
[0072]所述数据切分包括以下步骤:
[0073]S31:将检索目标内容进行分类,并将不同的类分别以不同的表分布于不同的、互相独立且相互间不存在通信过程的物理数据库中;
[0074]S32:判断类的数据量是否超过内存的大小,如果否,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出;
[0075]S33:如果是,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;再次进项上述S31开始的步骤。
[0076]S4:根据数据库配置信息的映射关系,对切片数据进行查询解析,计算切片数据的存储位置;
[0077]在步骤S4后还包括以下步骤:
[0078]S41:建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息;
[0079]S42:对数据的查询操作,可根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发;
[0080]S43:若重叠,则对子表进行发,并传至结果归并模块。
[0081]S5:将查询解析后的信息分发至数据库配置信息中对应的数据存储数据库;
[0082]所述信息分发包括以下步骤:
[0083]S51:预分发过程,将只将存在过滤条件的数据分发至特定的物理数据库,并在结果归并模块中,按照MapReduce方式处理;
[0084]S52:其余未执行的查询过程会被分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
[0085]所述查询解析包括数据读取操作、数据更新操作和数据插入操作;
[0086]所述数据读取操作和数据更新操作使用读流程来完成,该流程通过分析查询目标和查询条件,采用启发式算法,智能地选择查询分发目标。
[0087]S6:从对应的数据存储数据库提取符合检索条件的特征数据;
[0088]所述特征数据进行归并采用MapReduce并行数据处理。所述MapReduce并行数据处理包括Map过程和Reduce过程;
[0089]所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;
[0090]所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
[0091]本发明实施例还提供了一种大量数据情况下的可靠即时检索系统,包括数据抽象模块、查询解析和分发模块、数据存储模块、结果归并模块;
[0092]所述数据抽象模块,用于存储数据库配置信息,所述配置信息包括数据与类型的映射、类与存储介质的映射;
[0093]所述数据抽象模块提供的映射关系,将查询分发至数据存储模块中对应的数据库系统。该模块查询的结构会按照多态机制的配置,对数据进行初步的加工处理,从而屏蔽不同类型数据的差异,实现继承结构的透明性。数据抽象模块,实际是一些配置文件,计算进程通过读取这些配置文件,了解数据子表之间的关系,从而指导查询的优化和分发过程。在实际数据存储系统中,这些信息分别由各个计算进程进行维护,并通过广播进行同步。
[0094]数据抽象模块存储各个类之间的关系、类的标识(用于实现数据与类型的映射)、类与存储介质的映射等,为查询解析与分发模块提供配置信息。查询解析与分发模块根据数据抽象模块提供的信息,计算数据的ID,进行自动扩展,根据类与存储介质的映射关系计算切片的存储位置,并将数据存储至对应的物理数据库中。
[0095]结果归并模块也要接受应用程序发来的请求,对请求的数据库查询语句(如SQL查询语句)进行解析,并翻译成实际的相应的数据库查询语句(如MySQL查询语句),转发至实际数据库中。
[0096]所述查询解析和分发模块,用于根据数据库配置信息的映射关系对切片数据进行查询解析计算切片数据的存储位置;查询解析后的信息分发至数据库配置信息中对应的数据存储数据库;
[0097]所述查询解析和分发模块负责接受并解析数据用户的查询语句,根据数据抽象模块提供的映射关系,将查询分发至数据存储模块中对应的数据库系统。该模块查询的结构会按照多态机制的配置,对数据进行初步的加工处理,从而屏蔽不同类型数据的差异,实现继承结构的透明性。
[0098]所述查询解析和分发模块包括预分发单元和未执行查询执行单元;
[0099]所述预分发单元将只将存在过滤条件的数据分发至特定的物理数据库,并在结果归并模块中,按照MapReduce方式处理;
[0100]所述未执行查询执行单元用于将其余未执行的查询过程会被分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
[0101]所述查询解析和分发模块还包括数据切分单元和数据量判断单元;
[0102]所述数据切分单元,用于将检索目标内容进行分类并将不同的类分别以不同的表分布于不同的互相独立且相互间不存在通信过程的物理数据库中;
[0103]所述数据量判断单元,用于判断类的数据量是否超过内存的大小,如果是,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出;如果否,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;再次进项上述数据切分。
[0104]所述数据存储模块,用于从对应的数据存储数据库提取需要检索的特征数据;
[0105]所述数据存储模块采用物理数据库,与不同的切片所对应。比如检索目标内容确定了是哪几个切片,那么将与这几个切片相对应的物理数据库中的数据整合起来送至结果归并模块,构成检索结果。
[0106]所述结果归并模块,用于将提取的特征数据进行归并;同时接受应用程序发来的请求,对请求的数据库查询语句(如SQL查询语句)进行解析,并翻译成实际的相应的数据库查询语句(如MySQL查询语句),转发至实际数据库中。
[0107]所述结果归并模块,用于将提取的特征数据进行归并,如连接、排序、分组等。结果归并的主要目的是使下层复杂的模块化结构对上层用户透明。
[0108]还包括查询缓存建立单元、查询操作单元;
[0109]所述查询缓存建立单元,用于建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息;
[0110]所述查询操作单元,用于对数据的查询操作可根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发;若重叠,则对子表进行转发传至结果归并|吴块。
[0111]所述结果归并模块采用MapReduce并行数据处理对特征数据进行归并;所述MapReduce并行数据处理包括Map过程和Reduce过程;所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
[0112]实施例2
[0113]本实施例详细介绍大量数据情况下的可靠即时检索方法的工作流程及功能:
[0114]大量数据情况下的可靠即时检索方法的基本架构为:主要由查询解析与分发模块、数据抽象模块、数据存储模块、结果归并模块表示,总体工作示意图如图1所示。本方法的核心思想是将检索内容按一定规则进行解析分发,再从解析结果所对应的数据层提取有用信息后进行结果归并。本方法用于解决数据量巨大并在迅速增长、数据存储结构复杂的大数据的查询速度缓慢及准确度不够高的问题。
[0115]图1的查询解析与分发模块以及结果归并模块程描述的是一个计算节点的工作过程,实际的数据库集群可能具有数十至上千台主机,这些主机独立地运行下述过程,只有在实现MapReduce的过程中需要进行数据交互:当查询到来时,查询解析与分发模块首先解析查询,系统将查询分成数据读取操作,数据更新操作和数据插入操作。图1中,数据读取操作和数据更新操作使用读流程来完成,该流程通过分析查询目标和查询条件,采用启发式算法,智能地选择查询分发目标。查询的分发过程分成两个步骤:第一步是预分发过程,该步骤只将存在过滤条件的数据分发至特定的物理数据库,并在结果归并模块中,按照MapReduce方式处理,其余未执行的查询过程会被分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。实际上大部分的数据操作是有条件的数据读取操作,因此很可能在预分发过程即可查出全部的数据;第二步,上述查询操作中,若某次分发的查询结果为空,则自动更新特征库。数据插入操作釆用的是写入流程来完成。
[0116]该方法核心思想主要由数据抽象模块、查询解析与分发模块以及结果归并模块表达,如图2所示。在实际系统中,该部分由独立于实际数据库系统的进程来完成。该部分接受应用程序发来的请求,对请求的数据库查询语句(如SQL查询语句)进行解析,并翻译成实际的相应的数据库查询语句(如MySQL查询语句),转发至实际数据库中。
[0117]查询解析与分发模块是本方法的核心,负责接受并解析数据用户的查询语句,根据数据抽象模块提供的映射关系,将查询分发至数据存储模块中对应的数据库系统。该模块查询的结构会按照多态机制的配置,对数据进行初步的加工处理,从而屏蔽不同类型数据的差异,实现继承结构的透明性。数据抽象模块,实际是一些配置文件,计算进程通过读取这些配置文件,获取数据子表之间的关系,从而指导查询的优化和分发过程。在实际数据存储系统中,这些信息分别由各个计算进程进行维护,并通过广播进行同步。结果归并模块负责结果的归并,如连接、排序、分组等。结果归并的目的是使下层复杂的模块化结构对上层用户透明。
[0118]下面详细介绍查询解析与分发模块的工作流程及功能:
[0119]传统的数据表连接分为内连接,左连接,右连接,全连接以及笛卡尔积。由于本方法中数据表采用分布式方式进行存储,数据的连接不是在物理数据库中实现,而是在查询解析与分发模块中完成。
[0120]查询解析与分发模块根据排序键值,将数据切分成数块,并分别使用快速排序算法进行排序,并将结果按顺序输出。切分的粒度与映射出来的块数与数据量有关,最基本的要求是排序的数据量不超过内存的大小,使排序过程可以在内存中完成。
[0121]本方案釆用的是按类型的数据切分方案,系统只需要考虑将读取出来的数据转发至特定的计算节点完成数据连接操作。如图3所示,由于每个子表的连接过程在不同主机上并行完成,数据切分是均匀的,实际的数据处理速率随着类的增多而显著提升。
[0122]图4为在大量数据环境下,实现数据切分的方案示意图。在该图中,类D有01和D2两个子类,三个类的数据分别以三张表的形式分布于三个物理数据库中,三个数据库互相独立,且相互间不存在通信过程。数据抽象模块存储各个类之间的关系、类的标识(用于实现数据与类型的映射)、类与存储介质的映射等,为查询解析与分发模块提供配置信息。查询解析与分发模块根据数据抽象模块提供的信息,计算数据的ID,进行自动扩展,根据类与存储介质的映射关系计算切片的存储位置,并将数据存储至对应的物理数据库中。
[0123]系统采用最小化切分方案,如果A、B具有关联关系,A切分成两个子类,则B中与A对应的记录也需要相应地进行切分。数据连接无需对每个子表进行两两的连接。系统采用自动类扩展方案,按照ID进行基于区段的数据切分,每个子类最多存储10000条记录,因此,虽然系统需求是对全部数据进行检索,实际只涉及少数几个子表的连接操作,一方面减少了系统资源消耗,另一方面大大提高了查询效率。
[0124]系统釆用一种特殊的查询缓存,该缓存存储的是查询对于子表不会产生结果内容,从而获得对子表各个字段的特征信息。特征信息的完善是一个自动学习的过程,在特征信息建立后,对数据的查询操作可根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发,由于数据的某些字段会频繁更新,会使这些字段的特征信息难以持久,因此这些数据存储在缓存里由查询解析和分发模块的各个独立主机分别管理,不需要进行持久化以及数据交互。查询解析和分发模块的每台主机服务于特定的应用系统,使得处理的查询请求具有一定的相似性,可使用缓存来实现特征数据存储,从而优化查询分发过程的前提。如图5所示,Dl是D自动扩展的一个子表,系统明确Dl的ID字段所处的区段,当系统对D按照ID字段进行查询时,系统根据Dl的ID字段所处范围,判断是否将查询转发至D1。图6为特征信息的自动记录示意图。
[0125]本实施例的自动学习的过程,采用自动扩展过程。查询解析与分发模块根据数据抽象模块提供的信息,计算数据的ID,进行自动扩展,根据类与存储介质的映射关系计算切片的存储位置,并将数据存储至对应的物理数据库中。
[0126]2.数据抽象模块:
[0127]数据抽象模块可以收集数据间的格式,其中包括了子类间的关系,当对两个类进行连接查询时,系统自动选择最细化的子类来完成操作。如图7所示,D有Dl和D2两个子类,C有Cl和C2两个子类,数据抽象模块知道Dl和Cl之间存在关联关系,D2和C2之间存在关联关系,当对Dl和C进行连接操作时,系统判定只对Cl进行转发。
[0128]系统允许用户对数据的操作精确到每一个子类,系统可以从数据抽象模块中获得该子类对应的物理数据库,只将查询映射至该数据库。用户可以直接指定对于Dl的查询操作,系统经过判断,不会将查询转发至存储D和D2的数据库中,如图8所示。由于子类的划分往往是基于业务逻辑的,因此这种方式可以大大优化查询过程。
[0129]3.查询结果:
[0130]由于对大数据的查询结果很可能也是大数据,将这些数据完全输出依然是十分耗时的工作,因此引入Map Reduce进行并行数据处理,实现计算过程的并行执行:MapReduce是一种分布式编程模型,它包括Map和Reduce两个过程,Map将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;RedUCe过程是将各个节点上计算的结果进行汇总,形成统一的结果。MapReduce的结果汇总过程也是在分布式环境下完成的,如图6所示。采用MapReduce过程对数据进行映射,系统可以直接根据映射的结果,将数据划分为多个子类,存储于数据存储模块中。用户不会关注与大数据处理的全部结果,而仅仅关心包含统计结果的数据,这些数据的数据量不会太多,直接输出不会导致太大的性能问题;用户可能关心大量结果中,一些符合某种特征的数据,本方法对这中少量数据的读写过程进行了一定的优化,从而提高读写效率
[0131]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
【权利要求】
1.一种大量数据情况下的可靠即时检索方法,其特征在于:包括以下步骤: S1:存储数据库配置信息; 52:接受查询内容; 53:将检索目标内容进行数据切分,形成切片数据; S4:根据数据库配置信息的映射关系,对切片数据进行查询解析,计算切片数据的存储位置; 55:将查询解析后的信息分发至数据库配置信息中对应的数据存储数据库; 56:从对应的数据存储数据库提取符合检索条件的特征数据; 57:将提取的特征数据进行归并。
2.根据权利要求1所述的大量数据情况下的可靠即时检索方法,其特征在于:所述信息分发包括以下步骤: 551:预分发过程,将存在过滤条件的数据分发至特定的物理数据库,并按照MapReduce方式处理; 552:其余未执行的查询过程会被分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
3.根据权利要求1所述的大量数据情况下的可靠即时检索方法,其特征在于:所述数据切分包括以下步骤: S31:将检索目标内容按类别进行分类,并将不同的类分别以不同的表分布于不同的、互相独立且相互间不存在通信过程的物理数据库中; S32:判断类的数据量是否超过内存的大小,如果否,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出; S33:如果是,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;再次进项上述S31开始的步骤。
4.根据权利要求1所述的大量数据情况下的可靠即时检索方法,其特征在于:在步骤S4后还包括以下步骤: 541:建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息; 542:对数据的查询操作,可根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发; 543:若重叠,则对子表进行转发,并传至结果归并模块。
5.根据权利要求2所述的大量数据情况下的可靠即时检索方法,其特征在于:所述特征数据进行归并采用MapReduce并行数据处理;所述MapReduce并行数据处理包括Map过程和Reduce过程; 所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理; 所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
6.一种大量数据情况下的可靠即时检索系统,其特征在于:包括数据抽象模块、查询解析和分发模块、数据存储模块和结果归并模块; 所述数据抽象模块,用于存储数据库配置信息,所述配置信息包括数据与类型的映射、类与存储介质的映射;所述查询解析和分发模块,接受应用程序发来的请求,对请求的数据库查询语句进行解析,并翻译成实际的数据库查询语句,转发至实际数据库中;用于根据数据库配置信息的映射关系,对切片数据进行查询解析,并计算切片数据的存储位置;查询解析后的信息分发至与数据库配置信息相对应的数据存储数据库; 所述数据存储模块,用于从对应的数据存储数据库提取需要检索的特征数据; 所述结果归并模块,用于将提取的特征数据进行归并,使下层复杂的模块化结构对上层用户透明。
7.根据权利要求6所述的大量数据情况下的可靠即时检索系统,其特征在于:所述查询解析和分发模块包括预分发单元和未执行查询执行单元; 所述预分发单元只将存在过滤条件的数据分发至特定的物理数据库,并在结果归并模块中,按照MapReduce方式处理; 所述未执行查询执行单元,用于将其余未执行的查询过程,分发至其他计算节点,并由多个计算节点并行完成剩余的数据处理流程。
8.根据权利要求6所述的大量数据情况下的可靠即时检索系统,其特征在于:所述查询解析和分发模块还包括数据切分单元和数据量判断单元; 所述数据切分单元,用于将检索目标内容进行分类,并将不同的类分别以不同的表分布于不同的、互相独立且相互间不存在通信过程的物理数据库中; 所述数据量判断单元,用于判断类的数据量是否超过内存的大小,如果否,则使用快速排序算法对不同的类进行排序,并将结果按顺序输出;如果是,则改变切分粒度,使得映射出来的块数可以全部被容纳在内存之后;并返回数据切分单元。
9.根据权利要求6所述的大量数据情况下的可靠即时检索系统,其特征在于:还包括查询缓存建立单元和查询操作单元; 所述查询缓存建立单元,用于建立用于存储子表特征信息的查询缓存,并存储子表各个字段的特征信息; 所述查询操作单元,用于对数据的查询操作;根据查询条件,判断子表的值域与查询条件是否重叠,若不重叠,则无需对子表进行转发;若重叠,则对子表进行转发传至结果归并模块。
10.根据权利要求7所述的大量数据情况下的可靠即时检索系统,其特征在于:所述结果归并模块采用MapReduce并行数据处理对特征数据进行归并;所述MapReduce并行数据处理包括Map过程和Reduce过程;所述Map过程将数据按照一定的方式划分为多个组,每个组在不同的主机上分别并行地进行处理;所述Reduce过程是将各个节点上计算的结果进行汇总,形成统一的结果。
【文档编号】G06F17/30GK103970902SQ201410228015
【公开日】2014年8月6日 申请日期:2014年5月27日 优先权日:2014年5月27日
【发明者】张可, 柴毅, 付雪青, 马号, 刘建环 申请人:重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1