项目组里因为需要,现要开发一个数据过滤软件,针对文本文件
(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
分享到:
相关推荐
随着计算机信息处理系统的迅速发展,传统的...最后在该方法的基础之上,提出了从数据读取到数据处理的整个算法流程,该算法大幅缩短了海量数据处理的时间,使得数据处理更加高效,在未来的发展中有较强的实用价值。
海量数据处理中常用到的技术 1. Bloom Filtering基本的Bloom Filtering支持快速的插入和查找操作,是一种hash表技术。基本的数据结构非常简单,容量为m的位数组,k个hash函数,将输入的n个元素存储在位数组里面。...
基于海量图像数据管理的新难题和新的解决方案不断被提出的背景,本文在 分析了海量图像数据的产生与应用的具体背景之后,根据...了Had00p系统的调优,使之适合于作为一个管理海量图像数据的新的海量图像 数据平台基础架构
《深入搜索引擎:海量信息的压缩、索引和查询》作为斯坦福大学信息检索课程的教材之一,具有一定的阅读难度,主要面向信息检索专业高年级本科生和研究生、搜索引擎业界的专业技术人员和从事海量数据处理相关专业的...
【目录】 ===海量运维带来的挑战和机会 一大数据时代到来 -挑战 一机会 ===如何做好海量运维 -质量 -成本 效率 ===海量运维之道 一先抗住再优化 一灰度发布 -更多.
大数据时代处理之一:采集(获取) 大数据的采集是指利用多个数据库来接收发自客户端的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。 在大数据的采集过程中,其主要特点和挑战是并发数高,因为...
本书是斯坦福大学信息检索和...本书作为斯坦福大学信息检索课程的教材之一,具有一定的阅读难度,主要面向信息检索专业高年级本科 生和研究生、搜索引擎业界的专业技术人员和从事海量数据处理相关专业的技术人员。...
“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十...
移动设备、从电子商务处理到地理空间信息,海量数据时代现已来临。海量数 据可以成为一个组织的最大资产,也可以成为其最严重的负累之一,这取决于 是否能在短期内实施到位的策略和解决方案,以处理数据量、复杂性、...
我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文章或论文之后,觉得Hadoop是一项富有趣味和挑战性的技术,且它还牵扯到了一个我更加感兴趣的话题:海量数据处理。由此,最近凡是...
本书理论和实践并重,深入浅出地给出了海量信息数据处理的整套解决方案,包括压缩、索引和查询的方方面面。其最大的特色在于不仅仅满足信息检索理论学习的需要,更重要的是给出了实践中可能面对的各种问题及其解决...
文摒弃绝大部分的细节,只谈方法/模式论,且注重用最...最后,有一点必须强调的是,全文行文是基于面试题的分析基础之上的,具体实践过程中,还是得具体情况具体分析,且场景也远比本文所述的任何一种场景复杂得多。
SQL经历了时间的考验,目前已获得...执行大数据【注】项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQLSQL有着骄人的业绩,庞大的安装基础;而NoSQL正在获得可观的收益,且有很多支持者。我们来看看两位专
大数据时代处理之一:采集(获取) 大数据的采集是指利用多个数据库来接收发自客户端的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。 在大数据的采集过程中,其主要特点和挑战是并发数高,因为...
Hadoop的HBase是大数据的数据管理技术的典型代表之一。HBase基于HDFS。作为NoSQL(Not only SQL)数据库,它们为应用提供数据结构化存储功能和类似数据库的简单数据查询功能,并为MapReduce 等并行处理方式提供数据...
2.DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上...
Style Intelligence敏捷商业智能平台中内存数据库的访问性能提高到传统关系型数据库管理系统(RDBMS)的十倍甚至数十倍;而在内存的使用上,却是...这一技术为支持海量数据处理,实时海量数据分析奠定了坚实的基础。
众所周知,海量数据处理是搜索引擎最耀眼的核心技术之一,本书准确和系统地阐明了海量数据处理中压缩、索引和查询的理论、技术和实现,由此奠定了其搜索引擎圣经的美名,至今对学术界和行业界都产生着巨大的影响。...
众所周知,海量数据处理是搜索引擎最耀眼的核心技术之一,本书准确和系统地阐明了海量数据处理中压缩、索引和查询的理论、技术和实现,由此奠定了其搜索引擎圣经的美名,至今对学术界和行业界都产生着巨大的影响。...