Google Dremel vs. Apache Hadoop
Naresh Kumar在介紹兩者之間的區(qū)別之前,首先針對(duì)Google Dremel進(jìn)行簡(jiǎn)單的描述:
什么是Google Dremel?
Google Dremel是個(gè)可擴(kuò)展的、交互式的即時(shí)查詢系統(tǒng),專注于只讀嵌套(nested)數(shù)據(jù)的分析。通過集合不同層次的執(zhí)行樹和柱狀的數(shù)據(jù)布局,他能夠在幾秒內(nèi)完成在萬億張表上的聚合查詢。系統(tǒng)可以擴(kuò)展到成千上萬的CPU上,滿足Google上萬用戶操作PB及的數(shù)據(jù)。
Apache Hadoop vs Google Dremel:兩者之間的不同
Dremel是個(gè)數(shù)據(jù)分析工具,經(jīng)專門設(shè)計(jì)用于完成大規(guī)模查詢結(jié)構(gòu)化數(shù)據(jù)集(如日志和事件文件)。它支持類SQL語法,區(qū)別在于它是只讀的。不支持修改或者建立功能,也沒有表索引。數(shù)據(jù)被列式存儲(chǔ),這樣有助于提升查詢的速度。Google的BigQuery就是Dremel通過RESTful API的一種實(shí)現(xiàn)。
Hadoop(MapReduce的一種開源實(shí)現(xiàn))集合了“Hive”數(shù)據(jù)倉庫軟件,同樣允許使用SQL語句對(duì)大量的數(shù)據(jù)集進(jìn)行數(shù)據(jù)分析。Hive本質(zhì)上是把查詢轉(zhuǎn)換成MapReduce運(yùn)算。對(duì)比使用ColumIO格式,Hive則是使用表索引的思想去優(yōu)化查詢。
Hadoop更多的則是用于批處理,這就意味著數(shù)據(jù)是運(yùn)行在你已經(jīng)擁有的數(shù)據(jù)集上。有數(shù)據(jù)流入時(shí),流引擎會(huì)進(jìn)行處理。“流”和“實(shí)時(shí)”通常被互換使用,這也是導(dǎo)致Dremel和Drill混淆的原因,通常都會(huì)把它們歸類成延時(shí)。
值得注意的是Google只是打算將Dremel作為MapReduce的一種補(bǔ)充,而不是替換。通過論文也可以得知,Dremel被頻繁的用于分析MapReduce的結(jié)果或者是作為大規(guī)模計(jì)算的測(cè)試。Dremel可以做那些通常需要一系列MapReduce才可以完成的查詢,但是花費(fèi)的時(shí)間只是使用MapReduce的一小部分。如前所述,Dremel從速度上完全超越MapReduce。
Google Dremel vs Apache Drill
Apache Drill更像是Google Drill的開原版本。OpenDremel,另一個(gè)創(chuàng)建Dremel開源版本的項(xiàng)目。當(dāng)然還有一些其他支持大數(shù)據(jù)快速查詢的項(xiàng)目,比如:Apache CouchDB和Cloudant的演變版本BigCouch。
其他一些大數(shù)據(jù)分析工具和技術(shù)
1. Storm —— Backtype開發(fā)并被Twitter開源。
2. Apache S4 —— Yahoo!開源。
而流引擎就是這些實(shí)時(shí)大數(shù)據(jù)處理系統(tǒng)(比如Storm和S4)與Dremel的最大區(qū)別,當(dāng)然Dremel是專門針對(duì)查詢?cè)O(shè)計(jì)。