大型文本文件特定数据快速提取方案

2020-12-28 11:53翟瑞霞赵瑞胜
电脑知识与技术 2020年31期
关键词:死机内存

翟瑞霞 赵瑞胜

摘要:在日常工作中,大家都会经常面临从海量数据中提取有用的信息。当从上百万的数据中进行数据提取时,不仅会引起系统软件崩溃、还会导致电脑崩溃,最终使得工作无法继续开展下去。本创新方法特针对该类问题提出了有效的解决方案,为今后遇到同类问题提供了工作思路。

关键词:CPU;内存;死机;软件无响应;崩溃

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2020)31-0053-03

1 创新背景

在日常工作中,在开展数据处理工作中,最常见的数据提取方法无外乎数据筛选,即在海量的数据中,根据需要对数据加以筛选。

在数据筛选过程中,很多人接触到的数据无非十几条、几十条、多则上千条或过万条。在小数据量筛选中,利用CPU为2GHz/s处理速度、内存为2G的计算机来说是小菜一碟。然而当面对从百万、千万条的记录中提取数据来说,那可不是几秒钟,十几秒能完成的,而且还会导致内存溢出、电脑死机、软件无响应等问题。针对这类问题,本文结合庞大的移动话单数据提取工作,提出了创新、高效的解决方案。

2 传统方法

2.1 传统手段

目前用于数据处理主要基于OFFICE软件中的EXCEL、ACCESS等小型数据库、数据处理软件开展工作。

传统方法思路:打开数据库文件à将文件内容全部复制到EXCEL中à对文本进行预处理à对文本进行筛选处理,获取所需要的文本内容,以下为利用EXCEL软件进行筛选的传统方法。

2.1.1 小型话单数据的筛选

2.1.1.1 数据筛选预处理

数据筛选预处理,主要是将文件复制到EXCEL中,根據文本中字符串的特定分隔符将文本进行分割处理:

2.1.1.2 根据条件筛选

经分割,在EXCEL中利用筛选命令工具对该文本内容进行筛选,该工作可顺利完成:

2.1.2 大型话单数据的筛选

第一步:打开要筛选的原始文件:

此时CPU占用率达到20%以上:

该文本共有625.3799万行字符串:

第二步:将该打开的文本复制到EXCEL中:

1)复制:从下图的复制情况来看,由于数据量庞大,导致复制出错,无法进行后续的粘贴、筛选等工作:

2) 粘贴:在复制粘贴的过程中,由于内存溢出,无法完成复制粘贴的工作:

由上可见在庞大的数据量文本中进行条件筛选,传统方法无法实现。

2.2 传统手段弊端

通过上面操作方式,传统方法存在以下的弊病:

1) 打开庞大的原始数据库文件耗时耗资源;

2) 在进行预处理时,将导致电脑CPU、内存占用率居高不下,从而引起电脑无响应及死机现象;

3) 在进行条件筛选时,将导致软件无法响应,出现内存溢出,无法完成筛选的命令;

4) 在使用EXCEL等软件进行数据的汇总筛选时,会出现资源不足,无法容纳所有数据量的问题。

3 创新方法

3.1 创新思路

本创新思路主要是从以下几方面来开展:

1) 选择文本所在的路径,但并不打开文本文件;

2) 将需要筛选的内容通过字符串匹配法进行提取;

3) 对提取的文本直接拷贝到EXCEL中即可。

3.2 创新手段

本创新手段主要是借助正则表达式对未打开的文本文件进行数据提取。从而实现了无须打开文本内容便可以将所需要的内容取出来,从而实现了数据处理的时效性与准确性。

3.3 创新成效

3.3.1 正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,通过“规则字符串”用来实现对字符串的过滤。

正则表达式的特点:

1)灵活性、逻辑性和功能性非常的强;

2)可以迅速地用极简单的方式达到字符串的复杂控制。

3)对于刚接触的人来说,比较晦涩难懂。

3.3.2 创新案例

在此创新案例中,我们将会涉及正则表达式中最为常用的符号:

(1)^:标识字符串的开始

(2){}:表示重复的次数;

(3)[]:表示筛选所包含的关键字符

(4)():表示一个字符串组

(5)|:表示或者的意思

创新案例分析

1)案例要求:将如下近4GB的文本文件中的所涉及的特定内容过滤出来:

2)文本特点:

其特点为数据量庞大、每一行为一个字符串,每一行的字符串中包含数字、字母、分号、下标点,该文本共有600多万行字符串。

3)筛选要求:筛选第39列为500的字符串:

创新讲解:根据正则表达式的语法要求,编辑筛选过滤语句为:^12;([0-9a-zA-Z.]*;){37}500;即可将第39列为500的字符串筛选过滤出来。

下图中所标注的黄色即为符合要求的字符串:

4 创新启示

通过对大数据量的筛选创新可以总结得到,在日常的工作中,如果遇到了无法通过传统、常规的手段解决的问题,都会给创新带来新的机遇,只要大家能够在平时多吸取各方面的知识、结合丰富的工作经验,就会为创新创造条件,创造出新的、宝贵经验。经过创新得到的经验,将会极大地提升工作效率,为实现创新中国梦提供了一个前进的台阶。

参考文献:

[1] Jeffrey E·F·Fried.精通正则表达式[美][M].电子工业出版社,2007.

【通联编辑:李雅琪】

猜你喜欢
死机内存
电脑死机时在干什么
提醒
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
“春夏秋冬”的内存
基于内存的地理信息访问技术
基于多级缓存的内存管理方案