Presto 在企业中的增长与其速度、SQL 兼容性、可扩展性和企业功能集息息相关。虽然 Presto 最初是为了加速 Hadoop 而设计的,但该项目的成功已使其被更广泛地采用 - 在 S3、Cassandra、MySQL 等平台上。Presto 允许对跨越数据存储和位置的数据进行查询 - 在大数据分析的多元世界中,这是一个巨大的优势。
本文重点介绍 Presto 的性能,更具体地说,是 Amazon 的 S3 对象存储服务与 MinIO 的对象存储软件之间的性能比较。本篇博文是关于对象存储性能基准测试系列博文的一部分,我们之前的关于 HDD/S3 基准测试 和 NVMe/S3 基准测试 的博文可以在各自的链接中找到。
MinIO 回到 AWS 进行基准测试工作,并利用了配备 NVMe 驱动器和 100GbE 网络的裸机存储优化实例。

MinIO 使用 Starburst 302-E.11 版本的 Presto。MinIO 非常欣赏 Starburst 团队及其在不断改进企业产品方面所做的工作 - 尤其是大型联接、安全性以及可管理性方面的改进。

为了进行这项工作,我们选择了 TPC-H 基准测试,其缩放因子为 1000。TPC-H 因其查询多样性、业务导向以及现实世界中的复杂性而被广泛接受。数据记录大小的摘要如下所示:

基准测试在两个阶段进行。在第一阶段,数据从 AWS S3 提供给 Presto。第二阶段的数据驻留在 MinIO 中。运行 Presto 的服务器在两个阶段之间保持不变。
由于 AWS S3 是一种全球可用的服务,因此很难比较运行存储后端的硬件。然而,可以合理地假设 S3 有更多机器处理请求并刷新数据。与 MinIO 不同,AWS S3 没有任何一致性保证,这减少了底层硬件的计算负担,进一步有利于 S3 的性能。
尽管存在这些限制,但 MinIO 的性能仍然与 S3 相当,只是略微逊于 S3。正如预期的那样,某些查询特定的性能表现有所不同。下图总结了比较 MinIO 和 S3 的 Starburst Presto 工作负载的查询时间:

对于企业来说,总的来说,Presto 的功能非常适合对象存储。结果是,对象存储可以而且应该是企业数据堆栈的基础组件。它拥有优异的经济性、无限的可扩展性和丰富的企业功能集,这意味着它在绝大多数情况下(注意我们没有说所有情况下)在价格/性能方面战胜了 Hadoop 和其他技术。
与往常一样,我们有 完整的详细信息 供感兴趣的人参考。请继续关注我们即将发布的关于 Spark 与 AWS 的博文。如有任何问题,请随时通过 hello@min.io 与我们联系,或点击页面底部的技术请求表格。