译序
非常多朋友问时下如火如荼的 Hadoop 是否适合引进我们自己的项目,什么时候用 SQL。什么时候用 Hadoop,它们之间怎样取舍?Aaron Cordova 用一张图来回答你这个问题,对于不同的数据场景,怎样选取正确的数据存储处理工具进行了具体描写叙述。Aaron Cordova 是美国大数据分析及架构专家。Koverse CTO 及联合创始人。原文正文
Twitter 上的 @merv 转发了一篇博客《三角形的统计》。这是一篇关于怎样统计一张图形里的三角形的博客。并将使用 Vertica 和 Hadoop 的 MapReduce 的结果进行了对照。
在 1.3 GB 的数据之上,Vertica 比 Hadoop 快了 22-40x 倍。并且它仅仅用了三行 SQL。
统计表明,在 1.3 GB 数据之上,Vertica 更简单更高速。但这个结果不是太那么有意思。
对于写入任务的结果将会截然不同 - 是,SQL 在这个案例里确实非常easy。大家都知道。SQL 是比 MapReduce 简单得多。但在分布式计算的场合 MapReduce 却又比 SQL 简单的多。并且 MapReduce 还能做 SQL 做不到的事情。比方图像处理。
以 1.3 GB 的数据作为 Vertica 或者 Hadoop 的衡量基准。就像说"我们将要在波音 737 和 DC10 之间进行一场 50 米赛跑比赛"一样。
这种一场比赛甚至都无须起飞。
上面博客的对照也是一样的道理。这些技术显然都不是设计用来处理这种级别的数据集。
假设有一个可伸缩的系统即使在小规模数据仍然非常快的话当然更好,但这不是本文所讨论的。在大规模数据时的性能结果是否还是这么明显,这个问题就不是那么显而易见的了,确实值得证明。
为了帮大家怎样基于自己的实际情况选取哪种技术。我画了这个流程图:
原文链接:http://aaroncordova.com/blog2/roncordova.com/2012/01/do-i-need-sql-or-hadoop-flowchart.html。