一种大数据的汇集存储方法与系统与流程

文档序号:11919303阅读:404来源:国知局
一种大数据的汇集存储方法与系统与流程

本发明涉及一种大数据的汇集存储方法与系统。



背景技术:

大数据(big data),是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。最早提出大数据时代到来的是麦肯锡:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来。”业界(IBM最早定义)将大数据的特征归纳为4个“V”(量Volume,多样Variety,价值Value,速Velocity),或者说特点有四个层面:第一,数据体量巨大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T);第二,数据类型繁多。比如,网络日志、视频、图片、地理位置信息等等。第三,价值密度低,商业价值高。第四,处理速度快。最后这一点也是和传统的数据挖掘技术有着本质的不同。

随着社会信息化水平的不断提高和互联网技术的高速发展,各类非结构化数据,如图片、音视频、文本资料等呈现出爆炸性增长的趋势,在云存储服务为人们带来便利的同时,数据规模也在急剧膨胀,这对存储海量数据的能力提出了更高的要求。研究表明,数据中高达75%的部分是重复的,存储资源利用率不高的一个重要原因就是数据中存在大量的重复和冗余。

内容寻址存储(Content Addressed Storage,CAS)是由美国EMC公司2002年4月率先提出的针对固定内容存储需求的先进的网络存储技术。CAS具有面向对象存储特征,基于磁记录技术,它按照所存储数据内容的数字指纹寻址,具有良好的可搜索性、安全性、可靠性和扩展性。EMC同时推出了其CAS产品Centera,并成为CAS存储技术的代表性产品。之后,一些存储公司相继推出了相关的产品,使CAS技术备受关注。

对于大多数的现有技术,只公开了在存储之前会进行清洗但未公开如何清洗,比如申请号为CN201410727728.4的发明专利。同时,现有技术的部分大数据系统采用了CAS技术,然而现有技术通常采用对对象进行固定分块的方式进行数据分片,采用该方式虽然可以节约分块的时间,然而如果是采用该种方法,会存在特别多固定分块,其利用次数极少但是仍然占用大量空间,使得存储系统的整体利用率不高,尤其是在大数据的基础上以及对于各种常用属性的组合的时候会产生上述问题。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种大数据的汇集存储方法与系统,对大数据进行收集与清洗之后进行存储;同时对数据存储进行改进,解决现有技术使用固定分块的形式,导致特别多固定分块,其利用次数极少但是仍然占用大量空间,使得存储系统的整体利用率不高的问题。

本发明的目的是通过以下技术方案来实现的:一种大数据的汇集存储方法,包括:

数据采集:实时采集多个数据源的多维原始数据;

数据汇集:汇集与其建立通信通道的数据采集的数据,并把汇集到的数据发送至数据清洗模块;

数据清洗:对数据汇集得到的数据进行数据清洗,所述的数据清洗包括定位并替换数据中的缺省值和异常值;

所述的缺省值的替换包括:在每个缺省值附近使用K近邻算法,计算附近K个样本在范围为N的数据集中分别出现的次数,用出现频率最大的数据作为正常值替换掉缺省值;

所述的异常值的替换包括:默认数据服从正态分布,根据拉依达准则法,确定包含原始数据的数据集的数学期望μ和标准方差σ,对于各个数据的偏差大于标准偏差的,认为是异常值,对于异常值,使用K近邻算法,计算附近K个近邻样本在范围为N的数据集中分别出现的次数,用出现频率最大的电池数据作为正常值替换掉异常值;

数据存储:将数据清洗得到的对象流进行存储;所述的数据存储包括以下子步骤:

S1:接收对象流;

S2:将对象流中的对象进行通过内容比较的方式进行分段,得到多个数据片段,并建立对数据片段到对象的反相引用,或者上传数据片段并将所述指纹值更新至所述指纹值数据库,包括以下子步骤:

S21:获取比较组,所述的比较组为对象的第m位至m+X位;其中,m为比较组的初始位,m的初始值为0,X为固定步长;

S22:计算比较组对应的指纹值;

S23:按照步骤S22计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

S24:调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:

(1)如果能够对应:

则将缓存中的指纹值进行更新,将比较组更新为m~m+X+p*n位,同时返回步骤S22,其中p为m未更新的情况下的能够对应的总次数,n为每次能够对应后增加的增加步长;

(2)如果不能够对应,则进一步判断缓存中是否存在指纹值:

(2-1)如果缓存中存在指纹值,则建立所述指纹值对应的数据片段到所述对象的反向引用,同时清空缓存,将比较组的初始位m更新为m+X+(p-1)*n+1,完成后返回步骤S21;

(2-2)如果缓存中不存在指纹值,则上传所述对象的前X位的数据片段,并将对应的指纹值更新至所述指纹值数据库,将比较组的初始位m更新为m+X+1,完成后返回步骤S21;

S3:当完成整个对象的分段,则结束。

一种大数据的汇集存储方法还包括:数据分析,用于对数据处理得到的数据按照模型进行分析;

所述的数据存储还用于对数据分析得到的数据进行存储。

在步骤S21所述的获取比较组之前,还包括一个判断步骤:如果对象的最后一位大于m+X,则进入步骤S21;否则:

S01:直接计算m位~对象最后一位的指纹值;

S02:按照计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

S03:调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:如果是,则建立所述指纹值对应的数据片段到所述对象的反向引用;如果否,则上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。

在步骤S1和步骤S2之间还包括一个对象头/尾判断步骤,用于判断对象头/尾是否与为指纹值数据库中常用的数据头/尾,如果是则快速获取指纹值并建立所述指纹值对应的数据片段到所述对象的反向引用,并去掉常用的数据头/尾后进入步骤S2。

所述的比较组限制有最大值Y,步骤S24中当在能够对应,同时满足X+p*n小于等于Y而X+(p+1)*n大于Y时,则直接进入不能够对应并且缓存中存在指纹值的子步骤。

一种大数据的汇集存储系统,包括:

数据采集器:用于实时采集多个数据源的多维数据;

数据汇集器:用于汇集与其建立通信通道的所述的数据采集器的数据,并把汇集到的数据发送至数据清洗模块;

数据清洗模块:用于对数据汇集得到的数据进行数据清洗,所述的数据清洗包括定位并替换数据中的缺省值替换单元和异常值替换单元;

所述的缺省值替换单元用于在每个缺省值附近使用K近邻算法,计算附近K个样本在范围为N的数据集中分别出现的次数,用出现频率最大的数据作为正常值替换掉缺省值;

所述的异常值替换单元包括默认数据服从正态分布,根据拉依达准则法,确定包含原始数据的数据集的数学期望μ和标准方差σ,对于各个数据的偏差大于标准偏差的,认为是异常值;对于异常值,使用K近邻算法,计算附近K个近邻样本在范围为N的数据集中分别出现的次数,用出现频率最大的电池数据作为正常值替换掉异常值;

数据存储模块:将数据清洗模块得到的对象流进行存储;所述的数据存储模块包括:

比较组获取单元:用于获取比较组,所述的比较组为对象的第m位至m+X位;其中,m为比较组的初始位,m的初始值为0,X为固定步长;

比较组指纹值计算单元:用于计算比较组对应的指纹值;

映射关系对应表生成单元:用于对比较组指纹值计算单元计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

判断与处理单元:用于调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:

(1)如果能够对应:则将缓存中的指纹值进行更新,将比较组更新为m~m+X+p*n位,同时返回比较组获取单元,其中p为m未更新的情况下的能够对应的总次数,n为每次能够对应后增加的增加步长;

(2)如果不能够对应,则进一步判断缓存中是否存在指纹值:

(2-1)如果缓存中存在指纹值,则建立所述指纹值对应的数据片段到所述对象的反向引用,同时清空缓存,将比较组的初始位m更新为m+X+(p-1)*n+1,完成后返回比较组获取单元;(2-2)如果缓存中不存在指纹值,则上传所述对象的前X位的数据片段,并将对应的指纹值更新至所述指纹值数据库,将比较组的初始位m更新为m+X+1,完成后比较组获取单元;

结束判断单元:用于判断是否完成整个对象的分段,如果是则结束。

一种大数据的汇集存储系统还包括:数据分析模块,用于对数据处理得到的数据按照模型进行分析;所述的数据存储模块还用于对数据分析得到的数据进行存储。

所述的数据存储模块还包括一个长度判断与数据处理单元:如果对象的最后一位大于m+X,则进入比较组获取单元;否则:直接计算m位~对象最后一位的指纹值;按照计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:如果是,则建立所述指纹值对应的数据片段到所述对象的反向引用;如果否,则上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。

所述的数据存储模块还包括一个对象头/尾判断单元:用于判断对象头/尾是否与为指纹值数据库中常用的数据头/尾,如果是则快速获取指纹值并建立所述指纹值对应的数据片段到所述对象的反向引用,并去掉常用的数据头/尾后进入比较组获取单元。

所述的比较组限制有最大值Y,当能够对应,同时满足X+p*n小于等于Y而X+(p+1)*n大于Y时,则直接进入不能够对应并且缓存中存在指纹值的情况。

本发明的有益效果是:

本发明在现有的大数据系统之上,对大数据进行收集与清洗之后进行存储,在清洗中采用缺省值和异常值的清理:对缺省值的替换包括:在每个缺省值附近使用K近邻算法,计算附近K个样本在范围为N的数据集中分别出现的次数,用出现频率最大的数据作为正常值替换掉缺省值;对异常值的替换包括:默认数据服从正态分布,根据拉依达准则法,确定包含原始数据的数据集的数学期望μ和标准方差σ,对于各个数据的偏差大于标准偏差的,认为是异常值,对于异常值,使用K近邻算法,计算附近K个近邻样本在范围为N的数据集中分别出现的次数,用出现频率最大的电池数据作为正常值替换掉异常值。同时,还对数据存储进行改进,解决现有技术使用固定分块的形式,导致特别多固定分块,其利用次数极少但是仍然占用大量空间,使得存储系统的整体利用率不高的问题,采用内容对比的方式对对象进行分段,当寻找到相同的指纹值时进行长度增加与再判断,直到下一次的指纹值不同,提高存储系统的利用率。本发明还包括一个常用头/尾判断,当分析到对象的头/尾属于常用头/尾时可快速进行获取。

附图说明

图1为本发明方法流程图;

图2为数据存储流程图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案:如图1所示,一种大数据的汇集存储方法,包括:

数据采集:实时采集多个数据源的多维原始数据;

数据汇集:汇集与其建立通信通道的数据采集的数据,并把汇集到的数据发送至数据清洗模块;

数据清洗:对数据汇集得到的数据进行数据清洗,所述的数据清洗包括定位并替换数据中的缺省值和异常值;

所述的缺省值的替换包括:在每个缺省值附近使用K近邻算法,计算附近K个样本在范围为N的数据集中分别出现的次数,用出现频率最大的数据作为正常值替换掉缺省值;

所述的异常值的替换包括:默认数据服从正态分布,根据拉依达准则法,确定包含原始数据的数据集的数学期望μ和标准方差σ,对于各个数据的偏差大于标准偏差的(在其中一个实施例中为标准差的三倍,即大于μ+3σ,或者小于μ-3σ;在另外一个实施例中为标准差的十倍,即大于μ+10σ,或者小于μ-10σ;这取决于数据的属性),认为是异常值。

对于异常值,使用K近邻算法,计算附近K个近邻样本在范围为N的数据集中分别出现的次数,用出现频率最大的电池数据作为正常值替换掉异常值;

数据存储:将数据清洗得到的对象流进行存储;所述的数据存储包括以下子步骤:

S1:接收对象流;

S2:将对象流中的对象进行通过内容比较的方式进行分段,得到多个数据片段,并建立对数据片段到对象的反相引用,或者上传数据片段并将所述指纹值更新至所述指纹值数据库,包括以下子步骤:

S21:获取比较组,所述的比较组为对象的第m位至m+X位;其中,m为比较组的初始位,m的初始值为0,X为固定步长;

S22:计算比较组对应的指纹值;

S23:按照步骤S22计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

S24:调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:

(1)如果能够对应:

则将缓存中的指纹值进行更新,将比较组更新为m~m+X+p*n位,同时返回步骤S22,其中p为m未更新的情况下的能够对应的总次数,n为每次能够对应后增加的增加步长;

其中,所述的X和n的值可调节。具体地,n的值越小计算的精度越高,X的值根据常用数据的长度的均值进行选择。在不考虑计算量的情况下,n优选取1。

(2)如果不能够对应,则进一步判断缓存中是否存在指纹值:

(2-1)如果缓存中存在指纹值,则建立所述指纹值对应的数据片段到所述对象的反向引用,同时清空缓存,将比较组的初始位m更新为m+X+(p-1)*n+1,完成后返回步骤S21;

此条为当进行了多次后的增加,用上一次的指纹值进行反向引用。

(2-2)如果缓存中不存在指纹值,则上传所述对象的前X位的数据片段,并将对应的指纹值更新至所述指纹值数据库,将比较组的初始位m更新为m+X+1,完成后返回步骤S21;

此条为进行第一次比较就不对应时候的新写入。

其中,在上传所述对象的前X位的数据片段时,根据数据片段的指纹值将数据片段存储到不同的存储单元中。

采用该种方式对新的数据片段进行分类存储,以实现分布式存储。比如可以选取多个范围值,当数据片段的指纹值落在某个范围内就存储于对应的存储单元中。这样可以使得在数据比较阶段降低一定量的工作,或者在后期的数据获取阶段降低一定量的工作。

S3:当完成整个对象的分段,则结束。

在本实施例中,一种大数据的汇集存储方法还包括:数据分析,用于对数据处理得到的数据按照模型进行分析;所述的数据存储还用于对数据分析得到的数据进行存储。

在本实施例中,在步骤S21所述的获取比较组之前,还包括一个判断步骤:如果对象的最后一位大于m+X,则进入步骤S21;否则:

S01:直接计算m位~对象最后一位的指纹值;

S02:按照计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

S03:调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:如果是,则建立所述指纹值对应的数据片段到所述对象的反向引用;如果否,则上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。

此处用于判断对象的最大值,如果已经计算到对象的最后一位则不再进行下一次的计算。

在本实施例中,在步骤S1和步骤S2之间还包括一个对象头/尾判断步骤,用于判断对象头/尾是否与为指纹值数据库中常用的数据头/尾,如果是则快速获取指纹值并建立所述指纹值对应的数据片段到所述对象的反向引用,并去掉常用的数据头/尾后进入步骤S2。

此处用于对常用的头尾进行判断,比如对于网站类的存储常用的头“http://www.”就可以进行快速与后面的内容进行分开。

在本实施例中,所述的比较组限制有最大值Y,步骤S24中当在能够对应,同时满足X+p*n小于等于Y而X+(p+1)*n大于Y时,则直接进入不能够对应并且缓存中存在指纹值的子步骤。

基于上述方法的实现,本实施例还提供了一种大数据的汇集存储系统,包括:

数据采集器:用于实时采集多个数据源的多维数据;

数据汇集器:用于汇集与其建立通信通道的所述的数据采集器的数据,并把汇集到的数据发送至数据清洗模块;

数据清洗模块:用于对数据汇集得到的数据进行数据清洗,所述的数据清洗包括定位并替换数据中的缺省值替换单元和异常值替换单元;

所述的缺省值替换单元用于在每个缺省值附近使用K近邻算法,计算附近K个样本在范围为N的数据集中分别出现的次数,用出现频率最大的数据作为正常值替换掉缺省值;

所述的异常值替换单元包括默认数据服从正态分布,根据拉依达准则法,确定包含原始数据的数据集的数学期望μ和标准方差σ,对于各个数据的偏差大于标准偏差的,认为是异常值;对于异常值,使用K近邻算法,计算附近K个近邻样本在范围为N的数据集中分别出现的次数,用出现频率最大的电池数据作为正常值替换掉异常值;

数据存储模块:将数据清洗模块得到的对象流进行存储;所述的数据存储模块包括:

比较组获取单元:用于获取比较组,所述的比较组为对象的第m位至m+X位;其中,m为比较组的初始位,m的初始值为0,X为固定步长;

比较组指纹值计算单元:用于计算比较组对应的指纹值;

映射关系对应表生成单元:用于对比较组指纹值计算单元计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;

判断与处理单元:用于调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:

(1)如果能够对应:则将缓存中的指纹值进行更新,将比较组更新为m~m+X+p*n位,同时返回比较组获取单元,其中p为m未更新的情况下的能够对应的总次数,n为每次能够对应后增加的增加步长;

(2)如果不能够对应,则进一步判断缓存中是否存在指纹值:

(2-1)如果缓存中存在指纹值,则建立所述指纹值对应的数据片段到所述对象的反向引用,同时清空缓存,将比较组的初始位m更新为m+X+(p-1)*n+1,完成后返回比较组获取单元;(2-2)如果缓存中不存在指纹值,则上传所述对象的前X位的数据片段,并将对应的指纹值更新至所述指纹值数据库,将比较组的初始位m更新为m+X+1,完成后比较组获取单元;

结束判断单元:用于判断是否完成整个对象的分段,如果是则结束。

对应地,一种大数据的汇集存储系统还包括:数据分析模块,用于对数据处理得到的数据按照模型进行分析;所述的数据存储模块还用于对数据分析得到的数据进行存储。

对应地,所述的数据存储模块还包括一个长度判断与数据处理单元:如果对象的最后一位大于m+X,则进入比较组获取单元;否则:直接计算m位~对象最后一位的指纹值;按照计算得到的指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值:如果是,则建立所述指纹值对应的数据片段到所述对象的反向引用;如果否,则上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。

对应地,所述的数据存储模块还包括一个对象头/尾判断单元:用于判断对象头/尾是否与为指纹值数据库中常用的数据头/尾,如果是则快速获取指纹值并建立所述指纹值对应的数据片段到所述对象的反向引用,并去掉常用的数据头/尾后进入比较组获取单元。

对应地,所述的比较组限制有最大值Y,当能够对应,同时满足X+p*n小于等于Y而X+(p+1)*n大于Y时,则直接进入不能够对应并且缓存中存在指纹值的情况。

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