时至今日,大数据这个概念已充斥了整个IT界,各种“搭载”了大数据技术的产品,各种用于处理大数据工具更如雨后的春笋触目皆是。同时,如果某个产品还没抱上大数据的大腿,如果某个机构还没捣鼓过基于hadoop、Spark、Impala、Storm等高大上的工具,更会予以过时黄花的评价。然而,你的数据量真的需要使用Hadoop这样工具吗?你业务处理的数据类型真的需要大数据技术来支撑吗?
既然是大数据,我们首先看“大”,也就是数据的体积。在CSDN极客头条中,我们可以看到@刘江总编之前分享的一篇文章——“别老扯什么Hadoop了,你的数据根本不够大”。文章出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计学者。下面我们一起看他的观点:
Hadoop只是运行某个通用计算的工具,正因为如此,在使用过程中你会受限于多种规则,比如所有计算都必须按照一个map、一个group by、一个aggregate或者这种计算序列来写。这种束缚就像穿上一层紧身衣,但是正因为Hadoop和大数据是热词,世界有一半的人都想穿上紧身衣,即使他们根本不需要。因此,你的数据量真的需要使用Hadoop这类工具吗?
1. 好几百M的数据,Excel装不下!这种级别完全和“大”无关,类似Pandas这样的工具就可以处理的很好,它可以把几百M的数据加载到内存,一眨眼功夫Numpy就能完成亿次浮点计算。
2. 数据体积高达10G!这种级别的数据仍然称不上大数据,当下的笔记本的内存都可以添加到16G了,而且许多工具并不是一次性将数据完全加载到内存的。
3. 数据有100GB/500GB/1TB!1个2TB的硬盘才几百块,买一块换上,然后果断装PostgreSQL等。
对比Python这样的脚本,Hadoop在编程方面不存在任何优势;同时因为跨节点的数据流开销,Hadoop通常情况下要慢于其他技术,然而如果你的数据超过5TB,那么你真的需要捣腾Hadoop了。
Chris从数据体积上分析了你的数据是否称得上大数据,是否真的需要使用大数据技术,然而衡量大数据的因素还有Velocity、Variety以及Value,下面我们就一起看MongoDB分享的“大数据除大以外的东西”,下为译文:
MongoHQ:不要因为大数据背后的利益而贬低其他途径
“大数据”,套用《银河系漫游指南》里的经典语录就是“is Big. You won’t believe how vastly, hugely, mind-bogglingly big it is. I mean you may think there’s a lot of data in Wikipedia but that’s just peanuts to Big Data”。这也是许多人在碰到大数据时走入的误区——他们首先假设自己必须使用大数据技术处理,然而我们离大数据还差很远,那么大数据是如何得来的?
回溯20世纪90年代,人们认识到数字化的存储数据比用纸要廉价的多,当一个东西便宜到一定的地步时,它就成为一个必然的选项。人类就会出于本能的去储存所有数据,因为“未来我们可能需要它们”,而且储存已经这么便宜了,为什么不做呢?
而从1990年美国科学家一篇名为 “Saving All The Bits”的文章中发现,那个时候科学家已经不得不面对保存所有数据的挑战,Peter Denning解释了NASA保存所有哈勃太空望远镜产生数据面临的挑战:该设备每天产生的数据需要2500张光盘来存放,这个速度不仅淹没了网络和存储设备的性能,同样还超出了“人类的理解能力”。但是请不要忽视一点,随着储存技术和经济状况的发展,这2500张光盘只等价于当下100美元左右的硬盘,而且我们似乎也并不需要储存一个太空望远镜产生的如此大量数据。
大数据的有限价值
今天我们几乎可以存储任何具有业务目的明显的数据,比如信用卡销售及问卷调查。同时,我们还可以存储所有业务目的不明显的数据,比如:用户在一个网页上的行为、电缆接线盒中用户观看的TV频道、借助物理网开关灯或者门的行为。但是从价值上看,后一类行为的价值无疑很低。
一笔信用卡交易包含了很多数据,比如:人的信息、地理位置、价值等。在销售周期中,你会很自然的捕捉这些数据。然而用户在一个网站上产生的行为显然不会那么有价值,你可能收集到用户访问的URL、阅读某个页面花费的时间,但是这些记录的价值显然不如信用卡交易那么丰富。当然如果你要给你的用户分类时,这些记录还是拥有一定价值的。
然而当下存储的成本已经越来越少了,你的数据越多,你就可以从数据分析趋势中获得更多的价值。每条TV频道转换的信息确实无关紧要,但是如果你把这些数据与调度机广告数据放到一起将其视为一个聚合数据集,你将可以清楚的知晓用户的行为,这些数据将给广告者和程序设计人员提供有价值的见解。
同样,智能家庭系统中收集到的信息价值就更低了,你可能只会得到一些事件和状态信息,同时系统可能产生大量的数据,价值必须通过大量的筛选、过滤等处理才能体现。大数据最大的挑战就是从大量的碎片项中获取信息,也可能是使用许多具有丰富价值的数据做依托,然后从中剥丝抽茧,寻找真知。需要注意的是,这并不是大海捞针,而是从一堆针中给一些针定性。
Hot Data vs. Big Data
造成需要大数据的原因是,你不仅拥有大量的数据,同样拥有大量访问这些数据的请求,而Big Data看起来能满足这个需求。
BigData的数据更倾向于冷数据,也就是你不会经常访问的数据,除了分析之外可能不会再次被使用。它可能很快被新鲜的冷数据代替,而新的冷数据又会产生新的分析,但是Big Data的范围需要与热数据分开,因为将两个需求混合得到的结果必然低于预期,这样一来冷数据与热数据的分析必然都差强人意。无论如何区分冷热数据都是个好的思想,不管是存储还是应用程序都应该区别对待。但是总有一些人不分场景为用户提供Big Data这个“仙丹”。
因此,请重视你的数据,分清楚数据的类型,以业务为需求,不必要将所有的数据混合到一起去打造1个大数据。
原文链接:http://www.csdn.net/article/2014-03-28/2819018-bigdata-debate-and-4-practices