Presto 即服务:AWS 上的交互式 SQL 查询

阅读数:1186 2014 年 2 月 17 日

话题:DevOps大数据架构AI

作为Facebook公司的一项可用作在 PB 级规模的数据上执行交互式 SQL 查询的技术,Presto现在已经迈出了步入主流应用的第一步。大数据创业公司Qubole日前发布了与Amazon Web Services集成的Presto 即服务 alpha 版本

这套新系统与目前已经集成的 Hadoop、Hive 以及 Pig,都属于 Qubole 公司不断发展壮大的平台Qubole Data Service(QDS)中的一部分。由于 Presto 原生集成了 Hive、Hbase 和关系型数据库,因此它的这种特性使得它非常适合这类管理服务。作为 Qubole 公司的联合创始人,Ashish ThusooJoydeep Sen Sarma曾创建了 Hive,并且把 HBase 带到了 Facebook,因此对于他们来说,这一步看起来顺理成章。这项服务的一个主要用例就是通过查询 Hive 表以取得存储在 S3 上的数据,这样一来 QDS 的用户就可以很方便地基于这些表执行查询操作了。Qubole 目前的服务都是以 AWS 为中心构建的,原因正如 Ashish 所说,“这是由我们目前的需求决定的”。Qubole 将自己定位为昂贵的数据仓库系统的替代品,就像 Qubole 的工程副总裁 Shrikanth Shankar 所说,“对于那些之前依赖昂贵的商业技术进行快速分析工作的用户来说,Presto 将为他们带来巨大的价值。”

在大数据领域内,Presto 实际上是一项相对较新的技术。Facebook 的这个项目开始于 2012 年秋,并在2013 年上半年正式上线,最终在2013 年 11 月完全开源。Presto 背后所使用的执行模式与 Hive 有根本的不同,它没有使用 MapReduce,这一点与其他 SQL 查询引擎(例如ClouderaImpalaUC BerkeleyShark)很像。其中的关键是所有的处理都在内存中完成,正如 Ashish 所说,“Presto 更适合运行在配有更大内存的实例上。”这也是为什么 Presto 能够获得比 Hive 低几个数量级延迟的主要原因之一。但是由于Stinger 项目给 Hive 12 带来的性能改善,因此 Presto 与 Hive 12 间孰优孰劣目前尚且不明,正如 Ashish 所描述的一样:

Hive 肯定也会变得更快。我们已经进行了一些初步的测试,很快就会在博客中公布测试的结果。

就其可扩展性方面来说,应用在 Facebook 的 300PB 规模的数据仓库系统中的这一事实充分证明了它的可靠性。另外其他一些公司,例如AirBnbDropbox,也都开始采用 Presto,“在我们的绝大多数用例中,它都比 Hive 要快一个数量级”,Dropbox 的线上分析经理 Christopher Gutierrez 如是说。

伴随着 Qubole 这个新服务的发布,Presto 社区将会进一步发展壮大,就连 Siva Narayanan 这样的 Qubole 开发者都在Presto 群组中表示他们“打算做 Presto 王国中的好市民,并且期待着为 Presto 项目的主干贡献补丁和功能”。凭借着GitHub 上超过 2000 颗星和 350 次的分支,Presto 项目已经变得比其他类似的并且更早的开源项目(例如Impala)更为流行。

查看英文原文:Presto 即服务:AWS 上的交互式 SQL 查询


感谢梅雪松对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。