项目组里因为需要,现要开发一个数据过滤软件,针对文本文件
(txt
文件
)
,文本文件里的数据是
11
位的手机号码,数据约有四千万行,进行数据过滤
(
重复号码过滤,位数非
11
位的进行过滤
)
尽量脱离数据库。而且要提速,太慢了客户不满意的。
显然在内存里过滤数据是最快的,可是显然对于
2G
内存的本来说,可分配给
JAVA HAEP
的大小是容不下这么多数据的。那怎么办呢?
索引机制:
首先的想到的是通过
Lucene
索引机制,循环判断目标文件里是否已经存在要写入的号码,若不存在,则写入文件。
思路很清晰,但效率不高,主要是索引的速度不高,三十万的数据约要十几分钟,这太慢了。四千万的数据两个小时也跑不出来。
分割文件:
4000
万的数据文件约
500M
,一个文件太大,那可以把它分割成小文件,这里我采用的是安手机号的号段进行分割,比如把以
135
开头的手机号码读入一个文件,把
136
的开头的读入另一个文件
…
这样实际情况下是行的通的,可是如果理想的情况下是不通的,因为如果文本文件里手机号码
90%
都是
135***
那分割后的文件
135
的还是太大了,不过可以实行循环分割,把第一次分割后的文件再次分割(取四位号码分割),如果文件还大,循环分割
…
经测试:
* 371M 的文件(3000万的数据) 过滤数据耗时: 99844毫秒
* 520M 的文件(4200万的数据) 过滤数据耗时: 369359毫秒
6
分钟可以搞定
4000
万的数据,从这个耗时看,效率有了很大的提升。基本可以满足用户的需要了。
那是不是可以更快呢?
分割法
(
内存机制
)
第一步
:循环读取文件一遍,取出所有数据的前三位,即号段存入
List
中
(
要滤重
)
第二步:
遍历
List
分别取出号段值
value
,再分别读取文件把数据是以
value
开头数据读入到
Set
中,当读文件结束时,写
Set
中的数据写入目标文件。
经测试:
* 371M 的文件( 3000 万的数据) 过滤数据耗时 : 70672 毫秒
* 520M 的文件( 4200 万的数据) 过滤数据耗时 : 159016 毫秒
2
多分钟可以搞定
4000
万的数据,从这个耗时看,效率有了很大的提升。已经可以满足用户的需要了。
那是不是还可以更快呢?
- 大小: 21.6 KB
分享到:
相关推荐
海量数据处理方法 海量数据处理是指基于海量数据上的存储、处理、操作,解决方案包括巧妙的算法搭配适合的数据结构,如 Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie 树,以及大而化小、分而治之的策略。...
由于给定的文件内容部分涉及到PDF电子书的提供信息,并非技术知识点,故这部分内容将被忽略,重点将放在标题与描述所提到的Hadoop海量数据处理技术上。 Hadoop是一个由Apache软件基金会开发的开源框架,旨在支持...
随着时代的进步和科学的发展,高性能计算机已经成为海量数据处理的关键技术之一。高性能计算机的独特性质使其能够提供高效的处理速度和存储能力,从而满足海量数据处理的需求。 在高性能计算机的发展中,科学计算机...
为了高效处理这些数据,以人工智能(AI)为基础的海量数据处理技术的研究显得尤为重要。 首先,AI在海量数据处理中的应用体现在对数据进行自适应分组的技术上。传统的数据搜索技术往往效率低下,尤其是在数据量庞大...
### 常见的海量数据处理方法 在大数据时代,如何高效、准确地处理海量数据是许多企业和组织面临的关键挑战之一。本文将详细介绍几种实用的数据处理方法,包括但不限于算法优化和技术选择,旨在帮助读者更好地理解和...
在进行海量数据处理时,可以通过扩大内存空间、采用短字节数值数据类型等方法来建立大容量矩阵,从而缩短数据处理时间。通过算例分析,可以验证当分配更多的内存给数据矩阵时,数据处理所需的时间会显著减少。这种...
本文主要探讨了基于Hadoop的海量数据处理模型的设计与应用,以解决这一问题。 首先,Hadoop作为开源的分布式计算框架,为处理大规模数据提供了解决方案。Hadoop的核心组件包括HDFS(Hadoop Distributed File System...
#### 一、海量数据处理概述 在当前的大数据时代,数据量的急剧增长使得传统的数据处理技术面临着前所未有的挑战。海量数据处理是指在合理的时间内,对大规模数据集进行高效存储、管理和分析的技术过程。这种处理...
根据提供的文件信息,我们可以聚焦于标题和描述中的关键信息来生成相关的IT知识点,尤其是关于Hadoop海量数据处理的技术详解。 ### Hadoop海量数据处理:技术详解与项目实战 #### Hadoop简介 Hadoop是一个能够对...
综上所述,数据密集型计算是当前大数据时代的关键技术之一,它涉及数据处理、分析和管理等多个方面。随着数据量的持续增长,这一领域将持续发展,创新技术将不断涌现,以满足不断升级的数据处理需求。对于IT专业人士...
数据库设计是海量数据处理的关键之一。文中提到,数据的分表存储可以减少大量的查询时间,数据量越庞大,效果越明显。例如,对北美贸易数据,可以按照时间这一维度,把数据分表存储。 索引的创建是海量数据处理的另...
在当前的大数据时代,海量数据处理技术已成为IT行业的重要技术之一。面试中,关于海量数据处理的问题往往占据着举足轻重的地位,特别是在涉及秒杀系统、高并发处理和多线程应用的场景中。本文件《海量数据处理面试题...
《Hadoop海量数据处理》是关于大数据领域的重要参考资料,它主要聚焦在利用Hadoop框架进行大规模数据处理的技术和实践。Hadoop是Apache软件基金会开发的一个开源项目,旨在提供分布式、容错性强的系统,用于存储和...
### 大数据量,海量数据处理方法总结 在IT领域,特别是大数据分析、数据库管理和算法设计方面,处理海量数据的能力是至关重要的技能之一。本文旨在总结处理大数据量、海量数据的有效方法,涵盖从理论基础到实际应用...
文件系统技术内幕:大数据时代海量数据存储之道 大数据时代的到来带来了海量数据的挑战,如何高效、可靠地存储和管理这些数据成为企业和组织面临的重要问题。文件系统技术作为信息管理的重要组成部分,在海量数据...
通过建立地质灾害监测数据调试系统,研究者可以利用数据挖掘算法,如分类、聚类、预测模型等,从海量数据中挖掘出有助于地质灾害预测、预警和减灾决策的知识和信息。 最终,研究者开发了地质灾害监测数据展示平台,...
### 海量数据处理平台体系架构分析 #### 一、引言 随着互联网技术的飞速发展,人类社会正经历着前所未有的数据爆炸时代。这些数据不仅数量巨大,而且种类繁多,包括文本、图像、视频等多种形式。如何有效地管理和...
文章《基于Hadoop的PB级海量数据处理系统的设计与实现》详细介绍了如何利用Hadoop技术搭建集群平台,用以应对PB级海量数据的存储和处理问题。搭建的集群平台显著提升了系统处理海量数据的能力,具体体现在对1PB级别...
海量数据处理技术的发展,对于提高信息的使用效率,推动企业业务发展,具有不可估量的价值。 海量数据的发展历程与现状主要反映了信息化时代下,数据量急剧增加,处理这些数据的需求也随之增长。信息技术的进步使得...