2000 年代中期,Google 的分析師能用 MapReduce 執行大規模運算,但每個工作要花數分鐘到數小時,對互動式資料探索來說太慢。工程師希望能以網頁搜尋的速度,對 PB 級資料提出資料庫式的問題。

Dremel 自 2006 年起投入生產環境,結合了兩個構想:一是資料行條帶式儲存,將巢狀記錄編碼,使查詢只讀取所需的欄位;二是多層服務樹,將查詢分散到數千個節點,再彙整回覆。2010 年的 VLDB 論文報告指出,在 3,000 個節點的叢集上掃描 850 億筆記錄的資料表,多數查詢在 10 秒內完成。

Google 於 2010 年 5 月的 I/O 大會上以 BigQuery 之名推出這項技術,2011 年 11 月加入圖形介面與 REST API,並於 2012 年 5 月正式全面開放;其宣傳賣點是讓使用者無須購買硬體即可分析 TB 級資料。

以欄為單位儲存資料;以秒為單位回覆

欄式配置減少讀取的位元組:查詢只觸及所需的欄位。

樹狀執行可平行分散到數千台一般商用機器。

原生類 SQL 查詢取代多步驟的 MapReduce 管線。

就地存取可直接從 GFS 或 Bigtable 讀取資料,無須載入步驟。

依你將提出的問題來組織資料,而不是依資料原本寫入的方式:只讀取所需的欄位,並把工作下推到樹中,就能把原本得跑批次的工作,變成能在一次會議時間內完成的查詢。

BigQuery 成為主流雲端資料倉儲之一,有數千家公司使用,而 Dremel 的欄式格式也影響了後來的系統,例如 Apache Parquet。該論文至今仍是大數據系統領域被引用最多的著作之一。

追溯依據

參考來源

  1. Dremel: Interactive Analysis of Web-Scale Datasets Proceedings of the VLDB Endowment · comp.nus.edu.sg
  2. Google opens BigQuery cloud analytics to all ZDNet · zdnet.com ·
  3. Big Data Analysis Field Expands with Launch of Google BigQuery Database Trends and Applications · dbta.com ·