一种海量数据的处理方法技术

技术编号:2848135 阅读:248 留言:0更新日期:2012-04-11 18:40
本发明专利技术适用于数据处理领域,提供了一种海量数据的处理方法,所述方法包括下述步骤:A.接收请求处理的源数据,将所述源数据分块存入源数据队列;B.对所述源数据队列中的数据块进行处理,将源数据转换为目标数据;C.将所述目标数据存入数据库。本发明专利技术在海量数据的处理过程中,通过对应用处理逻辑以及数据库存储操作进行优化,提升了整个应用系统对海量数据的吞吐能力,实现简单,成本低。

【技术实现步骤摘要】

本专利技术属于数据处理领域,尤其涉及一种海量数据进行存储、检索处理的方法。
技术介绍
在通信、气象和金融等
中存在着对海量数据的分析和检索需求,由于数据量本身的庞大,在存储、检索以及分析这些数据的过程中,执行效率以及空间开销是无法回避的技术瓶颈。在现有技术中,一种方法是通过设计一个高效的并行算法,使用高性能的并行处理机制来实现最终数据的存储、检索和分析,诸如大型机系统或者分布式计算系统,主要通过高性能的硬件以及结合优良的并行分布算法来解决海量数据的处理性能瓶颈。这种方法虽然实施比较简单,技术风险也相对比较小,但由于大型的并行处理机或者分布式计算系统成本很高,维护复杂,对于使用低端设备的用户来说是可望而不可及的。另外,不可预知的数据处理量增加导致硬件系统的升级,也会不断增加系统的成本。第二种方法是在海量数据处理前先主观确定一个标准,然后根据该标准将数据进行无量纲化以及归一化处理,通过数据预处理可将数据类型化、序列化,甚至可以通过特定的算法将原始数据进行转化,已达到缩小数据处理规模以及复杂度的目的。这种方法方案抽象程度较高,有较好的灵活性和处理能力,但常常导致运算结果不仅含有诸多主观因素,而且在运算前就改动了数据的原始性。另外,通常这类方法运算相对复杂,难以被一般技术人员掌握。同时,大部分海量数据对象的抽象有一定的难度,具有很高的数据建模要求。第三种方法是使用数据仓库和数据挖掘技术,它在一定程度上包含第二种技术方案,是一种面向主题的、集成而且稳定的、随时间不断变化的数据集和技术。这种方法能够很好的解决海量数据处理的问题,但由于实施环境的信息化基础设备相对不太完善、数据仓库的价格居高不下、管理机制和技术人才缺乏、数据积累不充分以及数据挖掘工具本身不成熟等原因难以广泛获得推广。综上所述,现有技术在对海量数据进行处理时,普遍存在实现成本较高,实现过程复杂等缺点,难以满足用户的实际应用需要。
技术实现思路
本专利技术的目的在于提供一种数据处理方法,旨在解决对海量数据进行处理时,实现成本较高,实现过程复杂的问题。本专利技术的专利技术目的是这样实现的,,所述方法包括下述步骤A.接收请求处理的源数据,将所述源数据分块存入源数据队列;B.对所述源数据队列中的数据块进行处理,将源数据转换为目标数据;C.将所述目标数据存入数据库。所述步骤A进一步包括提取所述源数据的原始信息,根据所述原始信息将所述源数据分块处理,所述原始信息包括所述源数据数据包的大小、时间或帧头附加信息。所述步骤A进一步包括当源数据队列达到最大水位时,缓存溢出的数据,并在源数据队列空闲时,将缓存的数据补充进源数据队列。所述缓存溢出的数据的步骤进一步包括将溢出的数据放入在内存中设置的缓冲器,当缓冲器满后将数据写入外部存储介质进行缓存。所述步骤B进一步包括通过多个线程对所述源数据队列进行并行轮询处理,每个线程以源数据块为单位,将轮询获取的源数据块转换为目标数据。所述步骤B进一步包括在将源数据转换为目标数据的过程中,将多个源数据压缩封装为一个目标数据,并将所述目标数据存入目标数据队列。所述步骤C进一步包括设置存储所述目标数据的数据表,以及对所述数据表进行索引的索引表。所述方法进一步包括D.对数据库进行定时配置和维护。所述步骤D进一步包括根据数据表时间定期对数据表进行合并和删除,以及定期清理数据库日志。所述步骤C进一步包括设置单页显示记录数,在用户查询数据时,根据设置的单页显示记录数和用户查询的数据总记录数,向用户分页输出查询记录。本专利技术在海量数据的处理过程中,通过对应用处理逻辑以及数据库存储操作进行优化,提升了整个应用系统对海量数据的吞吐能力,实现简单,成本低。附图说明图1是本专利技术提供的数据处理方法的实现流程图;图2是本专利技术中源数据和目标数据的压缩封装比例示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术通过对请求处理的源数据进行队列缓存、并行逻辑处理等批处理过程,提高海量数据处理的效率,同时采用分表存储以及分页输出等优化数据库的存储结构,提高海量数据的检索查询效率。图1示出了本专利技术提供的数据处理方法的实现流程,详述如下1.将源数据分块放入源数据队列在实际海量数据的应用环境中,源数据总是一批一批、源源不断地上报,由于整个系统的硬件资源有限,难以做到到达一批数据就启动一个线程对数据进行处理。同时,为了避免丢失数据以及降低系统效率,需要对被阻塞的数据进行管理。因此,在本专利技术中,请求处理的源数据到达后,并不立即进行分析处理,而是提取源数据的原始信息,例如源数据数据包的时间、大小以及帧头的一些附加信息等,根据这些原始信息将源数据分簇(块),然后将源数据块放到源数据队列中,以提升后续应用处理逻辑的效率。通过将源数据放入源数据队列缓存,一方面可以把请求的源数据组织成块,每个线程以块为单位来进行逻辑处理,通过块大小以及线程数的配置调节,可以达到CPU以及内存的最大利用率;另一方面,通过源数据队列对请求数据的管理,包括阻塞控制、缓存控制等能有效的防止数据丢失,同时队列本身良好的数据出队入队控制也能在很大程度上提升系统效率。尤其对于请求数据具有严格的时序处理要求的应用,队列是再合适不过的数据预存容器。2.溢出数据的缓存和补充作为本专利技术的一个优选实施例,当请求处理的源数据到达后,如果源数据队列已经到达最大水位(队列已满),为了防止数据丢失,需要把溢出的数据缓存到磁盘、磁带等外部存储介质中,当源数据队列有空闲时,再将数据从外部存储介质载入源数据队列处理。在对外部介质进行溢出缓存的读写时,为了提升外部存储介质的使用效率,从源数据队列溢出的数据并不直接写入到外部介质中,而先写入到内存中设置的一个缓冲器,缓冲器的大小可配置,例如为了达到最优读写效率,基本与源数据块的大小一致,等到缓冲器满后,再将源数据写入外部存储介质。相应地,当源数据队列空闲时,将外部存储介质中的源数据按块为单位写入内存。3.对源数据队列进行多线程并行处理,将源数据转换为目标数据在本专利技术中,每一个线程都是一个独立的数据处理应用逻辑,每个线程以源数据块为单位来进行逻辑处理。每个线程实时轮询源数据队列,从源数据队列中获取一块源数据进行处理,转换成目标数据。线程数目可以与源数据队列的大小以及整个系统的实际资源状况相结合灵活、合理配置,以发挥整个系统的最大效率。一般来说,线程数目与源数据的数据块大小成反比,数据块越大,所需的线程数就越少,反之数据块越小,所需的线程数就要相应增加。同时,线程数目与源数据的数据块大小的配置关系取决于硬件环境,是空间和效率的取舍关系,如果硬件执行效率比较高(CPU比较快),就可以多开一些线程,节省内存的存储空间,如果CPU性能较低,就需要采取空间换效率的措施,少开一些线程。当线程对源数据队列进行轮询时,如果当前线程轮询不到数据,就不作处理;如果轮询到的数据不满一块,线程在超时时间进行等待,如果到达超时时间,仍然不能凑足一块数据,就按当前获得的数据进行处理。4.将目标数据放入目标数据队列作为本专利技术的一个实施例,为了减少外设I/O(输入/输出)次数和系统开销,本文档来自技高网
...

【技术保护点】
一种海量数据的处理方法,其特征在于,所述方法包括下述步骤:    A.接收请求处理的源数据,将所述源数据分块存入源数据队列;    B.对所述源数据队列中的数据块进行处理,将源数据转换为目标数据;    C.将所述目标数据存入数据库。

【技术特征摘要】
1.一种海量数据的处理方法,其特征在于,所述方法包括下述步骤A.接收请求处理的源数据,将所述源数据分块存入源数据队列;B.对所述源数据队列中的数据块进行处理,将源数据转换为目标数据;C.将所述目标数据存入数据库。2.如权利要求1所述的海量数据的处理方法,其特征在于,所述步骤A进一步包括提取所述源数据的原始信息,根据所述原始信息将所述源数据分块处理,所述原始信息包括所述源数据数据包的大小、时间或帧头附加信息。3.如权利要求1所述的海量数据的处理方法,其特征在于,所述步骤A进一步包括当源数据队列达到最大水位时,缓存溢出的数据,并在源数据队列空闲时,将缓存的数据补充进源数据队列。4.如权利要求3所述的海量数据的处理方法,其特征在于,所述缓存溢出的数据的步骤进一步包括将溢出的数据放入在内存中设置的缓冲器,当缓冲器满后将数据写入外部存储介质进行缓存。5.如权利要求1所述的海量数据的处理方法,其特征在于,所述步骤B进一步包括通过多个线程对所...

【专利技术属性】
技术研发人员:陈辉周翔王健
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1