Airpal

PrestoDB 的網頁使用者介面
2,759
作者:James Mayfield

Airbnb 很高興宣布推出 Airpal,這是一個基於網頁的查詢執行工具,利用 Facebook 的 PrestoDB 來促進資料分析。

花時間使用 SQL 進行探索和調查的人都知道,工作流程並不總是順暢。記住查詢的撰寫方式、從命令列複製和貼上,以及執行多個終端視窗可能會減慢分析速度並令人感到沮喪。此外,當不同的團隊使用 SQL 進行分析時,初學者的學習曲線可能會很陡峭,因此良好的使用者介面工具可以幫助推動採用並促進知識共享。

在 Airbnb,我們大約在一年前於內部推出了 Airpal,現在超過三分之一的員工已透過該工具發出查詢。這是一個驚人的統計數據,它顯示了 Presto 對我們公司資料基礎設施的重要性。

我們目前以 Hive 管理的表格形式在 HDFS 中保存約 1.5 PB 的資料,而我們重要的「核心資料」表格的相對較小的資料大小使我們能夠使用 Presto 作為預設的分析查詢引擎。在執行臨時查詢和反覆運算分析步驟時,Presto 比傳統的 Map Reduce 工作快得多,且反應更靈敏。不過,將 Presto 新增至我們的基礎設施堆疊的最大好處是,我們無需增加額外的複雜性即可允許「互動式」查詢。由於我們是針對我們一個集中式的 Hive 資料倉儲進行查詢,我們可以保持「單一事實來源」,而無需將大規模副本複製到單獨的儲存/查詢層。此外,我們不需要更改資料儲存類型(從 RC 格式)就能看到速度上的提升,這使得 Presto 成為我們基礎設施的絕佳選擇。

我們很高興能與開源社群分享這個工具,並且希望它能為其他人提供類似的實用性。

Airpal 的主要功能

  • 使用者可選的存取控制
  • 能夠搜尋和查找表格
  • 查看中繼資料、分割區、結構描述和範例列
  • 在易於閱讀的編輯器中撰寫查詢
  • 透過網頁介面提交查詢
  • 追蹤查詢進度
  • 透過瀏覽器以 CSV 格式取回結果
  • 根據查詢結果建立新的 Hive 表格
  • 儲存撰寫完成的查詢
  • 可搜尋的工具內所有查詢執行歷史記錄

為了秉持 Presto 的精神,我們努力讓 Airpal 的安裝變得簡單,為想要在沒有任何額外開銷或成本的情況下測試它的人們提供了本地儲存選項。如需更多詳細資訊,請瀏覽此處的 GitHub 頁面:https://github.com/airbnb/airpal

Airpal 中一些值得注意的技術功能包括

  1. 使用 Dropwizard 作為在 Java 中提供 REST 服務的簡單方法
  2. 採用 SSE(伺服器發送事件)將訊息從伺服器推送至用戶端
  3. 前端 JavaScript 使用 react.js

最後,如果我們不提及 Facebook 作為 Hive 的原始開發者,以及構建 UI 工具以方便輕鬆存取大數據的先驅所提供的卓越指導,我們將有所遺漏。我們站在巨人的肩膀上製作這個工具,並且我們感謝 Facebook 的資料基礎設施和資料工具團隊所能提供的影響和投入。

如果您有興趣協助建立世界一流的資料工具套件,請查看這個公開職位:https://www.airbnb.com/jobs/departments/position/48112