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