background image

程序操作数据库和程序操作文本之间选择,是一定要选择程序操作文本的,原因为:程序

操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的海量的

网络日志都是文本格式或者

csv 格式(文本格式),对它进行处理牵扯到数据清洗,是要

利用程序进行处理的,而不建议导入数据库再做清洗。

十一、定制强大的清洗规则和出错处理机制

海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样的数据中的时间字

段,有的可能为非标准的时间,出现的原因可能为应用程序的错误,系统的错误等,这是

在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。

十二、建立视图或者物化视图

视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个

基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘

I/O,正如 10 根绳子吊着

一根柱子和一根吊着一根柱子的区别。

十三、避免使用

32 位机子(极端情况)

目前的计算机很多都是

32 位的,那么编写的程序对内存的需要便受限制,而很多的海

量数据处理是必须大量消耗内存的,这便要求更好性能的机子,其中对位数的限制也十分

重要。

十四、考虑操作系统问题

海量数据处理过程中,除了对数据库,处理程序等要求比较高以外,对操作系统的要

求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求

也比较高。尤其对操作系统自身的缓存机制,临时空间的处理等问题都需要综合考虑。

十五、使用数据仓库和多维数据库存储

数据量加大是一定要考虑

OLAP 的,传统的报表可能 5、6 个小时出来结果,而基于

Cube 的查询可能只需要几分钟,因此处理海量数据的利器是 OLAP 多维分析,即建立数据

仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。

十六、使用采样数据,进行数据挖掘

基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算

法往往采用数据抽样的方式进行处理,这样的误差不会很高,大大提高了处理效率和处理

的成功率。一般采样时要注意数据的完整性和,防止过大的偏差。笔者曾经对

1 亿 2 千万行

的表数据进行采样,抽取出

400 万行,经测试软件测试处理的误差为千分之五,客户可以

接受。

还有一些方法,需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好

处是加快了聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对

不同的需求进行处理。

海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息

重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快

所以,对海量数据的研究很有前途,也很值得进行广泛深入的研究。