Apache Drill加快Hadoop查詢
為了幫助企業(yè)用戶尋找更為有效、加快Hadoop數(shù)據(jù)查詢的方法,Apache 軟件基金會(huì)發(fā)起了一項(xiàng)名為“Drill”的開(kāi)源項(xiàng)目。Apache Drill 實(shí)現(xiàn)了 Google's Dremel.
Apache Drill 在基于 SQL 的數(shù)據(jù)分析和商業(yè)智能(BI)上引入了 JSON 文件模型,這使得用戶能查詢固定架構(gòu),演化架構(gòu),以及各種格式和數(shù)據(jù)存儲(chǔ)中的模式無(wú)關(guān)(schema-free)數(shù)據(jù)。該體系架構(gòu)中關(guān)系查詢引擎和數(shù)據(jù)庫(kù)的構(gòu)建是有先決條件的,即假設(shè)所有數(shù)據(jù)都有一個(gè)簡(jiǎn)單的靜態(tài)架構(gòu)。
Apache Drill 的架構(gòu)師獨(dú)一無(wú)二的。它是唯一一個(gè)支持復(fù)雜和無(wú)模式數(shù)據(jù)的柱狀執(zhí)行引擎(columnar execution engine),也是唯一一個(gè)能在查詢執(zhí)行期間進(jìn)行數(shù)據(jù)驅(qū)動(dòng)查詢(和重新編譯,也稱之為 schema discovery)的執(zhí)行引擎(execution engine)。這些獨(dú)一無(wú)二的性能使得 Apache Drill 在 JSON 文件模式下能實(shí)現(xiàn)記錄斷點(diǎn)性能(record-breaking performance)。
該項(xiàng)目將會(huì)創(chuàng)建出開(kāi)源版本的谷歌Dremel Hadoop工具(谷歌使用該工具來(lái)為Hadoop數(shù)據(jù)分析工具的互聯(lián)網(wǎng)應(yīng)用提速)。而“Drill”將有助于Hadoop用戶實(shí)現(xiàn)更快查詢海量數(shù)據(jù)集的目的。
數(shù)據(jù)結(jié)構(gòu):
兼容已有的 SQL 環(huán)境和 Apache Hive:
“Drill”項(xiàng)目其實(shí)也是從谷歌的Dremel項(xiàng)目中獲得靈感:該項(xiàng)目幫助谷歌實(shí)現(xiàn)海量數(shù)據(jù)集的分析處理,包括分析抓取Web文檔、跟蹤安裝在Android Market上的應(yīng)用程序數(shù)據(jù)、分析垃圾郵件、分析谷歌分布式構(gòu)建系統(tǒng)上的測(cè)試結(jié)果等等。
通過(guò)開(kāi)發(fā)“Drill”Apache開(kāi)源項(xiàng)目,組織機(jī)構(gòu)將有望建立Drill所屬的API接口和靈活強(qiáng)大的體系架構(gòu),從而幫助支持廣泛的數(shù)據(jù)源、數(shù)據(jù)格式和查詢語(yǔ)言。
Drill 查詢:
Drillbit 核心模型:
Drill 編譯器:
