数据为王
我们生活在一个数据膨胀的时代,很难清楚的说到底有多少电子化的数据,但是据某IDC估计,如果2006年把“数字宇宙”的大小设置为0.18 zettabytes,那么到2011年将疯狂的增至1.8 zettabytes(1 zttabytes = 10的21次方,10亿TB).
这些数据洪流来源于各界,例如
纽约证券交易所每天生成大越 1TB 的交易数据
Facebook持有将近100 亿张图片
Ancestry 存储了大约2.5 petabytes数据
一个因特网档库存储大约2petabytes数据,并以20TB 每月的频率增长
个人数据在不断增长,但是也许这还不是最重要的,机器所产生的的数据要远远超过人类活动产生的数据。机器的日志,RFID读取,网络探测,飞行器GPS跟踪,商品交易 等等-所有这些组成了不断增长的巨型数据山峦。
公开使用的数据容量每一年都在不断增加,一些组织不再仅仅管理他们自己的数据:未来的成败将更大范围的取决于他们挖掘其它组织的数据的能力。
一些公共数据集的发起者,Amazon Web Services,Infochimap.org, 和 theinfo.org 开始培育 “公共信息", 这些数据可以自由的共享给任何人去下载分析。聚合不同来源的信息创建无法预期和不可想像的程序。
一句老话“More Data usually beats better algorithms”,对你的算法来说是多么残酷啊,它经常很轻易容易就被数据巨兽咬伤。
好消息是这拥有大量的数据,怀消息是,我们要不断同存储和分析它做斗争。
昂贵的单机常常满足不了不断增长的程序运行所需,许多组织发现他们自己的商业行为已不再适于运行在单独的机器上。一个简单但是非常昂贵的解决方案是购买一台拥有足够内存和许多CPU的机器(假设造得出来)。这个方案通常仅仅限于你的预算。另一个方案是构建一个高可用的集群,这样集群看上去就像一台大机器,并且需要特定的安装和管理服务,大多数情况下集群是复杂和昂贵的。
很简单的问题:过去的这些年,当硬件设备的容量大量增加的同时,从设备中读取数据的速度并没有保持同步增长。1990年,设备的存储容量是1370MB,传输数率是4.4MB/s. 所以你从设备中读取全部数据的时间大约在5分钟左右。20年过去后,1TB的设备面世了,但传输速率却在100MB/s左右,这时读取设备中全部数据将至少花去你两个半小时的时间。
从一个设备上读取数据需要很长的时间,而写数据更慢。一个很明显的减少读取时间的方法是从多个设备上同时读取,设想你有100个设备,每个保存 1%的数据,同时工作,我们花费的时间不超过两分钟。
仅仅使用设备的 1%看上去非常浪费。但是我们可以存储100个1TB的数据集,并且提供共享的访问。可以想像得出,这个系统的用户将会非常高兴由于共享数据而减少计算时间,他们的分析任务随着时间在每个机器上运行,而且将不会相互影响。
当然,使用越多的设备,也就意味着其中一个设备出现问题的机率大大增加,任何一个设备出现问题,也就意味着,我们的数据不再完整,面对这样的问题该如何处理呢?