Presto 是一款由 FaceBook 开源的一个分布式 SQL-on—Hadoop 分析引擎。Presto 目前由开源社区和 FaceBook 内部工程师共同维护,并衍生出多个商业版本。

基本特性

Presto 使用 Java 语言进行开发,具备易用、高性能、强扩展能力等特点,具体的:
  • 完全支持 ANSI SQL。
  • 支持丰富的数据源 Presto可接入丰富的数据来源,如下所示:
    • 与 Hive 数仓互操作
    • Cassandra
    • Kafka
    • MongoDB
    • MySQL
    • PostgreSQL
    • SQL Server
    • Redis
    • Redshift
    • 本地文件
  • 支持高级数据结构:
    • 支持数组和 Map 数据。
    • 支持 JSON 数据。
    • 支持 GIS 数据。
    • 支持颜色数据。
  • 功能扩展能力强 Presto 提供了多种扩展机制,包括:
    • 扩展数据连接器。
    • 自定义数据类型。
    • 自定义 SQL 函数。

    用户可以根据自身业务特点扩展相应的模块,实现高效的业务处理。

  • 基于 Pipeline 处理模型 数据在处理过程中实时返回给用户。

  • 监控接口完善:
    • 提供友好的 WebUI,可视化的呈现查询任务执行过程。
    • 支持 JMX 协议。

应用场景

Presto 是定位在数据仓库和数据分析业务的分布式 SQL 引擎,比较适合如下几个应用场景:
  • ETL
  • Ad-Hoc 查询
  • 海量结构化数据/半结构化数据分析
  • 海量多维数据聚合/报表

特别需要注意的是,Presto 是一个数仓类产品,其设计目标并不是为了替代 MySQL、PostgreSQL 等传统的 RDBMS 数据库,对事务对支持有限,不适合在线业务场景。

产品优势

EMR Presto 产品除了开源 Presto 本身具有的优点外,还具备如下优势:
  • 即买即用 分分钟完成上百节点的 Presto 集群搭建。
  • 弹性扩容 简单操作即可完成集群的扩容和缩容。
  • 与 EMR 软件栈完美结合,支持处理存储在 OSS 的数据。
  • 免运维 7*24 一站式服务。