APP下载

数据库读写策略在文本挖掘中的优化研究

2015-08-01张志强王伟钧周利军黎忠文

关键词:批处理分词数据处理

张志强,王伟钧,周利军,黎忠文

(成都大学 计算机学院,四川 成都 610106)

0 引 言

在文本挖掘领域的研究中,很多学者提出分词的产生以及新词的发现都是极其重要的处理过程[1-2].在这些过程中,会产生海量的分词数据和新词候选词数据,对这些海量数据的处理效率极大地影响着整个文本挖掘项目运行的进度.如何提高数据的处理效率是文本挖掘研究的重要问题[3-5].

通常,海量数据一般都存储在数据库中,若要进行数据处理,就必须进行数据库的读写操作,由此需要设计相应的数据库读写策略.而采用常规的数据库读写策略实现的处理方式尽管可以完成海量数据的处理,但数据处理的效率较低.为了提高数据库读写的速度和数据处理的效率,本研究对常规的数据库读写策略进行了优化分析,提出并设计了优化后的数据库读写策略,最后利用JAVA 语言实现了该策略.实验结果表明,优化后的数据库读写策略实现的数据处理速度比常规数据库读写策略实现的数据处理速度更快,从而其数据处理效率更高.

1 数据库读写策略在分词数据处理过程中的实现

本研究所涉及到的分词数据处理过程,是在文本挖掘中,从数据库中读取分词数据,根据新词候选词的产生算法生成多个新词候选词,并将新产生的新词候选词写入数据库中,为文本挖掘后期的分析处理提供基础数据.

1.1 常规数据库读写策略的实现

在分词数据处理过程中,常规的数据库读写策略实现过程分为4 步骤:①利用JDBC 数据库访问接口,建立数据库访问连接对象;②利用JDBC 接口的executeQuery 方法执行select 语句完成从数据库的分词表中提取分词数据;③将新产生的新词候选词利用JDBC 接口的executeUpdate 方法执行insert语句写入数据库中;④关闭数据库访问连接,释放数据库连接资源.

常规的数据库读写策略在分词数据处理过程中的关键代码结构如下:

1.2 带连接池数据库读写策略的优化设计

为了提高数据库读写的速度,需要对常规数据库读写策略进行优化设计,对此本研究采用带连接池数据库读写策略.

1.2.1 连接池.

在每次对数据库进行读写时,都需要建立数据库连接对象.当频繁读写数据库时,数据读写的效率将会变低.为了提高数据读写效率,采用数据库连接池技术.通过设计数据库连接池来分配、管理和释放数据库连接,连接池允许程序重复使用一个现有的数据库连接,而不是重新建立一个连接,同时连接池也会释放空闲时间超过最大空闲时间的数据库连接,以此避免因为没有释放数据库连接而引起的数据库连接遗漏,从而能显著地提高对数据库读写的速度.

本研究设计的连接池实现的原理是在系统初始化的时候,为数据库连接建立一个“缓冲池",预先在缓冲池中放入一定数量的连接.当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象.使用完毕后,该连接并不关闭,而是将连接放回连接池中,为下一个请求访问使用.而连接的建立、断开都由连接池来管理.同时,可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及连接池中的连接数动态增长等.连接池模型如图1 所示.

图1 连接池模型示意图

1.2.2 带连接池数据库读写策略的实现.

由于JDBC 接口本身并不提供可以直接使用的连接池API 函数,需要单独设计连接池.本研究设计了ConnectionPools 连接池类来实现连接池的功能.

连接池类的关键代码结构如下:

带连接池数据库读写策略在分词数据处理过程中的关键代码结构如下:

数据处理过程中,数据库读写策略使用的连接是从连接池中获取,使用完后再放入连接池中,为后面的数据库读写操作继续使用,因此,每次数据库读写时,并不需要重新建立连接和释放连接,从而使得数据库读写速度提高,其数据处理效率也得到提高.

1.3 批处理数据库读写策略的优化设计

为了更进一步提高数据库的读写速度和数据处理效率,本研究在带连接池数据库读写策略的基础上又进一步进行了优化.本次优化中,将数据库写操作以批处理方式进行,每次完成一批SQL 语句的执行,从而减少了单条SQL 语句执行的资源开销,又更进一步提高了数据处理的效率.批处理操作实现的关键步骤是:每次从新词候选词数组中提取候选词后,动态产生一条insert 语句,该语句用于将候选词写入到数据库的候选词表中,并将该insert 语句利用JDBC 接口的addBatch 方法添加到批处理操作的集合中,以此类推,直到当批处理集合容纳的SQL语句的条数满足设置的最大容量后,再一次性地提交给数据库执行.批处理数据库读写策略实现模型如图2 所示.

图2 批处理数据库读写策略架构模型示意图

批处理数据库读写策略在分词数据处理过程中的关键代码结构如下:

2 实验与分析

为了比较不同的数据库读写策略对数据处理效率的影响,本研究对常规数据库读写策略、带连接池数据库读写策略、批处理数据库读写策略分别进行了测试实验.测试环境中,软件环境是,后台数据库系统采用SQL Sever 2008 R2,数据库中分词表的记录数为2 944 条,操作系统为Windows XP SP3;硬件环境是,CPU 为Intel Core 2 Duo T6570(2.10 GHz),内存4 GB.

2.1 连接池中连接数量的影响

本研究设计的连接池类,可以设置连接池中容纳的连接个数的最大值,从而动态调整连接池的性能.为了测试连接池最大容量对数据处理效率的影响,将连接池容纳的连接个数的最大值分别设置为10、20、30、40、50、60、70、80、90、100,每种设置情况测试10 次.测试的结果如表1 所示.

从表1 的测试的结果可以看出,当连接池中容纳的连接个数的最大值设置为40 时,数据处理效率相对最高.

2.2 批处理集合容量的影响

批处理数据库读写策略的优化方案设计中,批处理集合容量(批处理集合中容纳的SQL 语句条数)的设置对数据处理效率也有相应的影响,为了测试批处理集合容量对数据处理效率的影响,将批处理集合容量分别设置为100、200、300、400、500、600、700、800、900、1000 进行测试,每种设置测试10 次,其中连接池最大容量设置为40.测试的结果如表2 所示.

表1 连接池的最大容量对数据处理效率的影响

表2 批处理集合容量对数据处理效率的影响

从表2 的测试结果可以看出,当批处理集合容量设置为400 时,数据处理的效率最高.

2.3 不同数据库读写策略的比较

为了比较不同的数据库读写策略的数据处理效率,本研究对3 种数据库读写策略的数据处理进行了比较测试.每种数据处理方式测试了10 次,其中,带连接池数据库读写策略的数据处理方式中将连接池容量的最大值设置为40;批处理数据库读写策略的数据处理方式中将批处理集合容量设置为400.测试的结果如表3 所示.

表3 不同数据库读写策略的数据处理效率的比较

从表3 可见,批处理数据库读写策略的数据处理方式无论是数据处理的最优时间值,还是数据处理的平均时间值,其处理时间值都是最小的.由此看见,批处理数据库读写策略的数据处理效率最高.带连接池数据库读写策略的数据处理效率比常规数据库读写策略的数据处理效率提高约18%,批处理数据库读写策略数据处理效率比常规数据库读写策略的数据处理效率提高约20%.

3 结 论

文本挖掘中,当数据库存储的数据量是海量时,为了提高数据处理的效率,设计一种高效的数据库读写策略是非常重要的.本研究设计了带连接池数据库读写策略和批处理数据库读写策略,通过测试实验看出其数据处理的效率得到明显的提高.

[1]孙铁利,刘延吉.中文分词技术的研究现状与困难[J].信息技术,2009,33(7):187-189 +192.

[2]赵伟,戴新宇,尹存燕,等.一种规则与统计相结合的汉语分词方法[J].计算机应用研究,2004,21(3):23-25.

[3]文必龙,宗文栋.海量并行处理系统的大数据读写接口优化研究[J].郑州轻工业学院学报(自然科学版),2012,27(3):28-30 +48.

[4]孙胜耀,聂利颖.基于数据挖掘的高校学生信息海量数据处理[J].电脑知识与技术,2011,7(24):5823-5825.

[5]贺瑶,王文庆,薛飞.基于云计算的海量数据挖掘研究[J].计算机技术与发展,2013,23(2):69-72.

猜你喜欢

批处理分词数据处理
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
分词在英语教学中的妙用
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
不装软件批处理为文件夹加锁
结巴分词在词云中的应用
结巴分词在词云中的应用
借助批处理 让Cortana变聪明
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用