读书频道 > 网站 > 网页设计 > 数据挖掘核心技术揭秘
3.2.4 常用技巧
15-11-11    下载编辑
收藏    我要投稿   

本文所属图书 > 数据挖掘核心技术揭秘

本书包括五部分内容。第一部分(第1~3章)涉及数据挖掘技术的基础知识,介绍数据挖掘的定义、数据挖掘工具及应用领域,数据挖掘的数学基础内容,以及海量数据挖掘处理技术。第二部分(第4~5章)分别从聚类技术立即去当当网订购

本节介绍在处理海量数据时常用的一些技巧。

对海量数据进行分区操作。对海量数据进行分区操作十分有必要,例如针对按年份存取的数据,我们可以按年进行分区,不同的数据库有不同的分区方式,不过处理机制大体相同。例如SQL Server的数据库分区是将不同的数据存在于不同的文件组下,而不同的文件组存在于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小系统负荷,而且可以将日志、索引存放于不同的分区下。

提高硬件条件,增加CPU和内存。处理海量数据,必须考虑硬件条件,使用高配置的服务器。硬件条件包括加大内存,加入更多、更强劲的CPU,加大硬盘空间等。比如:在处理2TB数据时,如果使用的是4个CPU,16GB内存,可能会发现出现内存不足现象,需要进行其他方面的优化,如果这时没有足够的硬件条件做支撑,结果可想而知。

加大虚拟内存。如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。比如:在实际项目中曾经遇到针对18亿条的数据进行处理,内存为1GB,1个P4 2.4G的CPU,对这么大的数据量进行聚合操作是有问题的,可能提示内存不足,可采用加大虚拟内存的方法来解决,在6块磁盘分区上分别建立6个4096MB的磁盘分区,用于虚拟内存,这样虚拟的内存则增加为4096MB*6+1024MB=25600MB,可解决数据处理中的内存不足问题。

分批处理。海量数据处理难是因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不致面对大数据量带来的问题。但这种方法也要因时因势进行,如果不允许拆分数据,还需要另想办法。不过一般按天、月、年等存储的数据,都可以采用先分后合的方法,对数据进行分开处理。

使用临时表和中间表。数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,对于超海量的数据,如果大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成,一口气吃成一个胖子。

优化查询SQL语句。在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的,编写高效优良的SQL脚本和存储过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或不用游标,设计高效的数据库表结构等十分必要。比如:如果对1亿行的数据使用游标,运行3个小时可能都不会有结果,这时一定要改用程序处理。

部分文件可以使用文本格式进行处理。对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作数据库和程序操作文本之间选择,是可以选择程序操作文本的。原因是:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如,一般海量的网络日志都是文本格式或者csv格式(文本格式),对它进行处理牵扯到数据清洗,可以利用程序进行处理,无需导入数据库再做清洗。

定制强大的清洗规则和出错处理机制。海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样数据中的时间字段,有的可能为非标准的时间,出现的原因可能为应用程序的错误、系统的错误等。在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。

建立视图或者物化视图。视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘I/O,正如10根绳子吊着一根柱子和一根绳子吊着一根柱子的区别。

避免使用32位服务器(极端情况)。目前的计算机很多都是32位的,那么编写的程序对内存的需要便受限制,而很多的海量数据处理是必须大量消耗内存的,这便要求性能更好的服务器,其中对位数的限制也十分重要。

考虑操作系统问题。海量数据处理过程中,除了对数据库、处理程序等要求比较高以外,对操作系统的要求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求也比较高。尤其对操作系统自身的缓存机制、临时空间的处理等问题都需要综合考虑。

使用数据仓库和多维数据库存储。数据量加大是一定要考虑OLAP的,传统的报表可能五六个小时出结果,而基于Cube的查询可能只需要几分钟,因此处理海量数据的利器是OLAP多维分析,即建立数据仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。

使用采样数据进行数据挖掘。基于海量数据的数据挖掘正在逐步兴起,面对超海量的数据,一般的挖掘软件或算法往往采用数据抽样的方式进行处理,这样的误差不会很大,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整性,防止过大的偏差。如果对1.2亿行表数据进行采样,抽取出400万行,经测试软件测试处理的误差在5‰左右,客户可以接受。

还有一些方法需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好处是加快聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对不同的需求进行处理。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站