Airpal

PrestoDB 的 Web UI
2,759
作者James Mayfield

爱彼迎很高兴地宣布推出 Airpal,这是一个基于 Web 的查询执行工具,它利用 Facebook 的 PrestoDB 来简化数据分析。

那些花费大量时间使用 SQL 进行探索和调查的人都知道,工作流程并不总是那么流畅。记住查询是如何编写的、从命令行复制粘贴以及运行多个终端窗口都会减慢分析速度并令人沮丧。此外,当不同的团队使用 SQL 进行分析时,对于初学者来说学习曲线可能会很陡峭,因此良好的 UI 工具可以帮助推动采用并促进知识共享。

大约一年前,我们在爱彼迎内部推出了 Airpal,现在超过三分之一的员工都通过该工具发出过查询。这是一个惊人的数据,它表明 Presto 对我们公司的数据基础设施是多么重要。

我们目前拥有大约一个半 PB 的数据,这些数据作为 Hive 托管表存储在 HDFS 中,而我们重要的“核心数据”表的数据量相对较小,这使得我们可以使用 Presto 作为分析的默认查询引擎。在运行临时查询和迭代分析步骤时,Presto 比传统的 MapReduce 作业快得多、响应速度也更快。然而,将 Presto 添加到我们的基础设施堆栈中最大的好处是,我们不必增加额外的复杂性来允许“交互式”查询。因为我们查询的是我们唯一的中心 Hive 数据仓库,所以我们可以保持“单一数据来源”,而无需大规模复制到单独的存储/查询层。此外,我们无需更改数据存储类型(从 RC 格式)即可看到速度提升,这使得 Presto 成为我们基础设施的绝佳选择。

我们很高兴能与开源社区分享这个工具,我们希望它能为其他人提供类似的效用。

Airpal 的主要功能

  • 可选的用户访问控制
  • 能够搜索和查找表
  • 查看元数据、分区、模式和示例行
  • 在一个易于阅读的编辑器中编写查询
  • 通过 Web 界面提交查询
  • 跟踪查询进度
  • 通过浏览器以 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