大规模数据信息排重处理系统的制作方法

文档序号:6469439阅读:223来源:国知局
专利名称:大规模数据信息排重处理系统的制作方法
技术领域
本发明涉及的是一种信息处理技术领域的系统,具体地说,涉及的是一种 大规模数据信息排重处理系统。
背景技术
随着信息处理技术的不断发展,出现一些应用场景需要对大量数据进行排 查重复出现的工作。例如在搜索引擎系统中需要判断哪些网页已经收录在系统 中。由于互联网络上的网页数量众多,须要有专门的系统对新发现的网址进行判 断,看看其是否己经被爬取和索引过,如果已经存在,也许需要后续进行更新索 引的工作;而如果尚未存在,那么就可能要进行新建索引的后续工作。又如在 一些生物科学研究领域,需要对大量的基因信息进行分析比较。也需要判断基因 信息是否已经做过相应的处理,并进行不同的后续工作。而在电信业务方面,也 需要对大约几十亿条各种电信业务的记录数据进行判断重复记录的工作,以免出 现多收费的情况。
在这些应用中的数据有如下三点共同特性。
首先,数据空间非常大。以网址这类数据为例, 一般而言,其由数字、字 母(大小写相关)、"-"和"."组成, 一般不超过100个字符(实际上扩展的网 址可以由几乎所有的ASCII字符组成,并可以长达2000个字符)。这样的数据可
能总共有641()° (大约1018°)个。 一般系统无法处理如此庞大的数据空间。
其次,实际数据所占的空间未必充满整个数据空间,或者在一个任务中可 能出现的实际数据量并不是充满整个数据空间的。依然以网址作为例子,根据中 国互联网信息中心统计,我国的网站数量在百万这个数量级上。而商业搜索引擎
的索引页面数量大约在百亿这个数量级上。相对于1018°个可能的网址而言,百亿 实际上是一个非常小的数字。在数量级上差1017°。可以说数据非常稀疏。
最后,实际数据所占的空间相对于目前的计算机系统而言,又是一个很难
完成的任务。以一百亿个网址来计算,假设平均每个网址长度为30个字符(每个字符4个字节),存储这些网址总共需要约1.2PB空间,是目前主流硬盘空间 容量(500GB-1TB)的大约一千倍。而一百亿条记录对于单机数据库系统来说要 能迅速(毫秒级别)响应一个査询来判断一条网址是否已经存在也是几乎不可能 的。因此目前已有的解决方案大都采用分布式构架,将存储、索引和计算负载分 布到成百上千台机器上。通过并行处理若干被切分的小规模问题来共同完成一项 任务。由于牵涉大量机器的网络通讯和工作同步问题,系统的稳定性和可靠性都 不十分理想。
经对现有技术的文献检索发现,中国专利申请《基于内存的海量话单快速交 叉排重方法》(公开号CN1897629)提出一种采用基于内存的多级存储机制、基于 二叉平衡树和键树的索引技术、基于BCD码和RLC算法的压縮技术和基于时间片的 交叉排重方法相结合的过程。在IBMP650 (16个1. 5GHz CPU, 32GB RAM)上处理 45240988条记录费时4467秒。相对于传统的基于数据库的交叉排重测试所用的时 间86669秒,提高速度约20倍。尽管如此,它依然采用了基于硬盘的第三级存储 机制,这种机制仍然会对系统速度的进一步提升带来影响。

发明内容
本发明的目的在于针对现有技术的不足,提供一种大规模数据信息排重处 理系统,它可以高效处理大规模可能重复数据的信息,其输出没有重复数据,以 克服传统系统的通用性设计带来的效率降低问题。
本发明是通过以下技术方案实现的,本发明包括四个模块输入模块、数 字编码模块、多点检验模块、输出模块。其中
所述的输入模块接收需要进行排重的原始数据,即数据实例;
所述的数字编码模块将输入模块获得的数据实例进行重新编码,将数据空
间压缩到与待解问题实际数据实例的规模相当或稍大的空间;
所述的多点检验模块对新编码进行多次采样,并与高速存储的地址建立映 射关系,通过控制高速存储相应地址的标志位来记录是否已经出现过某一个数据
实例,从而实现排重功能;
所述的输出模块将经过排重的数据返回给用户。
所述的输入模块,负责接收用户的数据实例,可以是文件输入,网络流输 入等等,例如接收从网页中发现的各种网址。这些数据实例没有特定的顺序要求, 一个数据实例可能在接收时多次出现,中间夹杂其他数据实例。
所述的数字编码模块,将数据实例进行快速编码转换,可以采用MD5、 SHA-1 等哈希函数来实现。并将原始空间内的数据压缩到由k位01序列的数值空间。 数字编码模块的编码位数应该略大于最终输出的数值数量。其中,k的取值通常 是16或32的整数倍,需要根据^际问题进行适当的参数选择。比较常用的k值 可以是128或160。
所述的多点检验模块,将由数字编码模块生成的数值和高速存储的地址建
立多点对应关系(包括多点对应关系和单点对应关系。如将新编码的几部分
分别映射为高速存储的地址,从而将一个新编码映射到高速存储的多个存储位 置。或将新编码直接映射为高速存储的地址),并通过控制高速存储相应地址的 标志位来记录是否已经出现过某一个数据实例的模块。它可以迅速查询高速存储 装置中特定地址位是否均己标记过来判断数据进行是否已经出现过。另外,当需 要处理的问题规模相对较小时,可以将多点检验简化为单点检验,以进一步提升 系统性能。
所述的输出模块,将多点检验模块判重以后,没有重复出现过的数据实例 整理并最终返回给用户。
本发明中的数字编码模块的编码位数和多点检验模块中高速存储的地址位 数是两个可以根据实际问题规模进行适当调整的参数。其中,数字编码模块的编
码位数通常应该略大于最终输出的数值数量,以保证数字编码有足够的区分度; 高速存储的地址位数(如计算机内存的寻址空间)决定了需要使用的高速存储的 容量。
本发明可以高效地处理大规模的数据问题。由于经过快速的编码转换,数 据空间得以压縮,并最终经过多点检验实现将数据都映射到高速存储的连续地址 空间。一方面,数据空间的大规模压縮使得需要存储的信息量也得以相应地减少, 从而使得在单台机器上存储所有实例是否出现过的信息变为可能。另一方面,这 样的压縮还使得处理每个数据所需要的时间大幅縮减,整个系统的效率也因此大 幅提升。


图l为本发明系统结构框图。图2为本发明工作流程图。
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方 案为前提下进行实施,给出了详细的实施方式,但本发明的保护范围不限于下述 的实施例。
以判断网址是否为重复出现问题为例。经过搜索引擎的爬虫收集到的网页 内包含大量网址信息,并且可能会多次指向同一个网址的网页。因此有必要对这 些网址信息进行排重工作,以免搜索引擎多次索引同一张网页。
如图1所示,本实施例包括四个模块输入模块、数字编码模块、多点检 验模块、输出模块。各个模块之间通过计算机的各种数据线或主板进行通讯。其 中
所述的输入模块接需要进行排重的原始数据,即数据实例;
所述的数字编码模块将输入模块获得的数据实例进行重新编码,将数据空 间压縮到与相应问题的规模相当或稍大的空间;
所述的多点检验模块对新编码进行多次采样,并与高速存储的地址建立映 射关系,通过控制高速存储相应地址的标志位来记录是否已经出现过某一个数据 实例,从而实现排重功能;
所述的输出模块将经过排重的数据返回给用户。
如图2所示,本实施例开始工作时,先由输入模块接用户需要进行排重的 原始数据,然后数字编码模块对数据实例进行重新编码,将数据空间压縮到与相 应问题的规模相当或稍大的空间,多点检验模块对新编码进行多次采样,并与高 速存储的地址建立映射关系,通过控制高速存储相应地址的标志位来记录是否己 经出现过某一个数据实例,如果是,则滤去,如果不是,则通过输出模块返回给 用户,此次排重工作终止。
本实施例中,输入模块可以是一个输入设备(比如计算机硬盘);输入模块 还可以由网卡等其他设备组成,主要实现数据的批量读取功能,用于接收需要进 行排重的数据,本实施例中,数据直接通过输入设备输入获得。
本实施例中,数字编码模块是一个主要占用计算机中央处理器的软件处理 程序;数字编码模块采用MD5的哈希算法,将每一个网址迅速转变为128位的Ol字串,将网址的数据空间从1018°压縮到2128 (1038),既大副縮减了数据空间,
又留有一定余地,保证在可以预见的一段时间内,网址数量不会超过这个空间可 以容纳的数据总量。
本实施例中,多点检验模块是一个主要占用计算机内存的软件处理程序; 多点检验模块将每个网址的128位MD5值分解为4个32位的01串,使得
数据空间可以进一步縮小到232 (约43亿)位。使用512MB内存就可以建立一一
对应的映射关系。
例如,以网址http:〃www. a. com来计算,其MD5值为1101 0001 0001 1011 0111 0000 0111 0001 0101 1010 1110 0110 1111 1111 0110 0101 1001 0100 0110 1000 0000 0110 1110 1111 1100 1100 1110 1110 1000 0011 1000 1001。
经过分解,变为1101 0001 0001 1011 0111 0000 0111 0001 (D11B7071H)、 0101 1010 1110 0110 1111 1111 0110 0101 (5AE6FF65H)、 1001 0100 0110 1000 0000 0110 1110 1111 (946806EFH)和1100 1100 1110 1110 1000 001110001001 (CCEE8389H)。
因此可以使用内存中的D11B7071H 、 5AE6FF65H、 946806EFH和CCEE8389H 来标记该网址是否出现过。首次出现的时候将4个内存地址的数据置为1。以后 再次出现该网址的时候,只要发现这4个地址的数据均为1就可以判定为该网址 已经出现。
本实施例中,输出模块是一个输出设备(比如计算机硬盘)。 本实施例在一台AMD4400+双核CPU、 8GB DDR2内存、AMD 780G主板、1TB 硬盘的PC系统上,处理1700万网址的排重工作,大约需要几十秒钟即可完成。
权利要求
1、一种大规模数据信息排重处理系统,其特征在于包括四个模块输入模块、数字编码模块、多点检验模块、输出模块,其中所述的输入模块接收需要进行排重的原始数据,即数据实例;所述的数字编码模块将输入模块获得的数据实例进行重新编码,将数据空间压缩到与待解问题实际数据实例的规模相当或稍大的空间;所述的多点检验模块对新编码进行多次采样,并与高速存储的地址建立映射关系,通过控制高速存储相应地址的标志位来记录是否已经出现过某一个数据实例,从而实现排重;所述的输出模块将经过排重的数据返回给用户。
2、 根据权利要求1所述的大规模数据信息排重处理系统,其特征是,所述 的输入模块负责接收用户的数据实例,数据实例是文件输入或者网络流输入,这 些数据实例没有特定的顺序要求, 一个数据实例可能在接收时多次出现,中间夹 杂其他数据实例。
3、 根据权利要求1所述的大规模数据信息排重处理系统,其特征是,所述 的数字编码模块采用哈希函数来实现数据实例的快速编码转换,并将原始空间内 的数据压縮到由k位01序列的数值,数字编码模块的编码位数需大于最终输出 的数值数量,以保证数字编码有足够的区分度。
4、 根据权利要求3所述的大规模数据信息排重处理系统,其特征是,所述 k的取值是16或32的整数倍。
5、 根据权利要求4所述的大规模数据信息排重处理系统,其特征是,所述 k的取值是128或160。
6、 根据权利要求1所述的大规模数据信息排重处理系统,其特征是,所述 的多点检验模块,将由数字编码模块生成的数值和高速存储的地址建立多点对应 关系,并通过控制高速存储相应地址的标志位来记录是否已经出现过某一个数据 实例的模块,它能迅速査询高速存储装置中特定地址位是否均为标记过来对数据进行判断是否已经出现过。
7、 根据权利要求1或6所述的大规模数据信息排重处理系统,其特征是,所述的多点检验模块,在处理问题规模相对小的问题时,可简化为单点检验。
8、 根据权利要求1所述的大规模数据信息排重处理系统,其特征是,所述 的输出模块,将多点检验模块判重以后没有重复出现过的数据实例最终返回给用 户。
全文摘要
本发明涉及的是一种信息处理技术领域的大规模数据信息排重处理系统,包括输入模块、数字编码模块、多点检验模块、输出模块,输入模块接收需要进行排重的原始数据,即数据实例;数字编码模块将输入模块获得的数据实例进行重新编码,将数据空间压缩到与待解问题实际数据实例的规模相当或稍大的空间;多点检验模块对新编码进行多次采样,并与高速存储的地址建立映射关系,通过控制高速存储相应地址的标志位来记录是否已经出现过某一个数据实例,从而实现排重功能;输出模块将经过排重的数据返回给用户。本发明具有高效性及可处理数据量大等特点。
文档编号G06F17/30GK101414309SQ200810203439
公开日2009年4月22日 申请日期2008年11月27日 优先权日2008年11月27日
发明者勇 俞, 周云庆, 薛贵荣, 袁若石, 韩定一 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1