前端日子,一月中旬,有个比较热闹的争议,是MapReduce跟数据库之争,是由一位数据库理论专家撰写了一篇文章,说MapReduce是一种数据库技术的倒退(http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html )。如果他否定其他的技术,恐怕也没什么事,但他这次搞错对象了。MapReduce是谁搞得啊?是Google。这下,这位作者可创下大祸,引无数英雄竞耻笑。所有的评论,几乎一边倒地将此位先生批判n遍。
大家有兴趣可以去看看原文和评论,作者抛出MapReduce的五大退步。
他竟然不用sql的方式而用编程语言访问数据库,失败。他的实现很糟糕,失败。他也并不是什么新贵,Teradata用这种技术已经好多年,失败。他缺少很多功能,比如批量装载、事务、参照完整性…失败。他跟数据库管理工具如报表工具,bi工具等都不兼容,失败中的失败。
此文的思维逻辑确实有点奇怪。我对MapReduce不甚了解。他是个关系数据库吗?惹得作者如此批评。就算是个数据库,如果为了特定目的而进行底层技术的革新也未尝不可。至少在数据仓库领域,目的就不同。它主要用于查询,一般来说都是从它里面select groupby,很少有那些事务处理。为了OLAP,完全可以重新设计一种适合多维存储的MOLAP方式,这是一个实实在在的突破关系理论的实证。作者像是一位保守老顽固。呵,我也开始批判他了,不由自主。
好奇害死猫,决定去瞅了一眼MapReduce是个什么东东,有几张幻灯片可以研究一下(http://labs.google.com/papers/mapreduce-osdi04-slides/index.html )。他的主要目的是为了处理大量的数据进来,数据出去的工作(有点像ETL?),他要用成百上千的CPU来完成这些任务。于是MapReduce提供了一套自动并行和分布式、容错、IO调度和状态监控的框架。哦,听起来不像是数据库。他提供一套机制适合处理海量数据,但对于如何处理这些数据,他不管。咦,他好像用作数据仓库的底层技术蛮合适的。上面那位作者说这个机制没什么希罕,Teradata已经用了。但如果Teradata实在太贵,有些高高在上。所以,如果MapReduce能够被平民化,至少可以让这个市场竞争地更加有趣一些。
前端日子,一月中旬,有个比较热闹的争议,是MapReduce跟数据库之争,是由一位数据库理论专家撰写了一篇文章,说MapReduce是一种数据库技术的倒退(http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html )。如果他否定其他的技术,恐怕也没什么事,但他这次搞错对象了。MapReduce是谁搞得啊?是Google。这下,这位作者可创下大祸,引无数英雄竞耻笑。所有的评论,几乎一边倒地将此位先生批判n遍。
大家有兴趣可以去看看原文和评论,作者抛出MapReduce的五大退步。
这里也有篇中文的二手文章,我看见英语就头痛,所以还是看看汉字了解下了...结果还是没怎么搞明白,怎么感觉像分布式的数据压缩似的,跟数据库仿佛一点不沾边