Presto 是一种开源的分布式 SQL 查询引擎,针对低延迟的临时数据分析进行了优化。它支持 ANSI SQL 标准,包括复杂查询、聚合、连接和窗口函数。Presto 可处理来自多个数据源(包括 Hadoop 分布式文件系统 [HDFS] 和 Amazon S3)的数据。Presto 拥有两个社区项目 – PrestoDB 和 PrestoSQL。Amazon EMR 同时支持这两个项目。在此处了解有关 PrestoDB 的更多信息。
您可以快速且轻松地从 AWS 管理控制台、AWS CLI 或 Amazon EMR API 中创建托管的 Presto 集群。此外,您还可以利用其他 Amazon EMR 功能,包括 Amazon S3 快速连接、与 Amazon EC2 Spot 实例的集成、各种 Amazon EC2 实例(含内存优化型实例)的选择以及用于轻松添加实例或将其从集群中删除的 resize 命令。
功能和优势
交互式查询性能
Presto 结合使用了定制查询执行引擎与用于支持 SQL 语义的运算符。与 Hive/MapReduce 不同,Presto 在内存中执行查询,查询以流水线方式在网络中的不同阶段之间进行,从而避免不必要的 I/O。流水线执行模式并行运行多个阶段,在数据可用后从一个阶段向下一个阶段传输数据。
易用性
只需几分钟即可启动运行 Presto 的 Amazon EMR 集群。您不必担心节点预置、集群设置、配置或集群优化。Amazon EMR 自会处理这些任务,因此您只需集中精力进行分析即可。您还可以使用 Airpal 等工具,Airpal 是 Airbnb 提供的一种基于网络的开源查询执行工具。Airpal 的用户界面简化了数据探索和临时分析,并支持语法突出显示、将结果导出至 CSV、保存查询以待日后使用,以及浏览表格以便可视化架构等功能。
与 Amazon EMR 功能集集成
运行在 Amazon S3 中直接访问数据的交互式查询、使用 Amazon EC2 Spot 实例容量节省成本、使用 EMR Managed Scaling 动态添加和删除容量,以及启动长时间运行的或临时的集群以匹配工作负载。您还可以在您的集群上添加其他 Hadoop 生态系统应用程序。
ANSI SQL 支持
Presto 支持 ANSI SQL 标准,便于数据分析师和开发人员大规模查询结构化和非结构化的数据。当前,Presto 支持各种 SQL 功能,包括复杂查询、聚合、连接和窗口函数。
客户成功案例
Netflix 已经选择 Presto 作为用于大数据的交互式 ANSI-SQL 兼容的查询引擎。Presto 是扩展性很好的开源引擎,集成了 Hive Metastore 和 Amazon S3,成为 Netflix 大数据仓库环境的主干。Netflix 在永久性 Amazon EMR 集群上运行 Presto,以便快速且灵活地在其约 25PB 的 Amazon S3 数据存储中进行查询。Netflix 是 Presto 的一个积极贡献者,并且 Amazon EMR 为 Netflix 提供了在 Amazon EMR 集群上构建自己的 Presto 的灵活性。Netflix 平均每天在 Presto 集群中运行约 3500 条查询。
Jampp 是移动应用程序营销平台,使用高级广告重新定位目标技术促使参与用户使用应用程序。Jampp 借助其自身的转化驱动型实时出价 (RTB) 引擎购买移动媒体库存,从而实现目标,该引擎可跨 18 家 RTB 交易所和 150 多个移动广告网络为库存动态出价。Jampp 利用在 Amazon EMR 上运行的 Presto 获取高级临时日志分析,将来自多个源的数据和重新定位的复杂分段计算结合起来。Jampp 的用户群增长率已达 600%,其复杂的分析查询需求增长率也随之达到了 600%。Jampp 从在 MySQL 上运行复杂的多核 Python 应用程序,转为运行 Presto,性能提高了 12 倍。Jampp 目前使用 Amazon EMR 上的 Presto 每天处理 40TB 的数据。
作为新创企业孵化器,Cogo Labs 运营着一个用于营销分析和商业智能的平台,供投资组合公司和内部团队使用。要支持创新速度极快的 OLAP 环境,他们在 SQL 中进行了标准化以便与数据交互。Cogo Labs 之所以选择 Presto 是因为其实时查询性能、对 ANSI-SQL 的支持,以及直接从 Amazon S3 处理数据的能力。借助在 Amazon EMR 上运行的 Presto,100 多名开发人员和分析师对存储在 Amazon S3 中超过 500TB 的数据运行 SQL 查询,从而进行数据探索、临时分析和报告。Cogo Labs 使用短期和永久性集群组合,并依靠 Amazon EMR 与 Spot 实例的集成来降低成本。
OpenSpan 提供自动化且智能的解决方案,可帮助桥接人力、流程和技术,从而更好地了解员工工作效率、简化交易以及与员工和客户进行互动。OpenSpan 利用 Amazon S3 中的数据从 HBase 迁移到了 Amazon EMR 上的 Presto。OpenSpan 之所以选择 Presto 是因为其 SQL 界面以及直接从 Amazon S3 中实时查询数据的能力;允许快速探索大量数据并快速迭代即将推出的数据产品。OpenSpan 使用 Parquet 文件格式,还使用 PrestogreSQL 连接至 Presto。OpenSpan 选择 Amazon EMR 和 Amazon S3 来经济高效地处理他们每天从客户处收到的数据。
Kanmu 是日本的一家金融服务行业初创公司,可根据消费者的信用卡使用情况提供与卡关联的产品服务。Kanmu 之所以从 Hive 转为使用 Amazon EMR 上的 Presto,是因为 Presto 以交互速度运行探索式迭代分析的能力、Amazon S3 的良好性能,以及查询大数据集的可扩展性。Kanmu 使用 Fluentd-plugin-s3 将数据推送到 Amazon S3,使用优化的行列式 (ORC) 格式存储数据并使用 shib,以及基于 node.js 的 Web 客户端运行 SQL 查询。
了解有关 Amazon EMR 定价的更多信息