Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询。
基本特性
Presto使用Java语言进行开发,具备易用、高性能和强扩展能力等特点,具体如下:
- 完全支持ANSI SQL。
- 支持丰富的数据源:
- 与Hive数仓操作
- Cassandra
- Kafka
- MongoDB
- MySQL
- PostgreSQL
- SQL Server
- Redis
- Redshift
- 本地文件
- 支持高级数据结构:
- 支持数组和Map数据。
- 支持JSON数据。
- 支持GIS数据。
- 支持颜色数据。
- 功能扩展能力强,Presto提供了多种扩展机制:
- 扩展数据连接器
- 自定义数据类型
- 自定义SQL函数
您可以根据自身业务特点扩展相应的模块,实现高效的业务处理。
- 基于Pipeline处理模型数据在处理过程中实时返回给用户。
- 监控接口完善:
- 提供友好的WebUI,可视化的呈现查询任务执行过程。
- 支持JMX协议。
应用场景
Presto是定位在数据仓库和数据分析业务的分布式SQL引擎,适合以下应用场景:
- ETL
- Ad-Hoc查询
- 海量结构化数据或半结构化数据分析
- 海量多维数据聚合或报表分析
注意 Presto是一个数仓类产品,因为其对事务支持有限,所以不适合在线业务场景。
产品优势
EMR Presto产品除了开源Presto本身具有的优点外,还具备如下优势:
- 即买即用,快速完成上百节点的Presto集群搭建。
- 弹性扩容简单操作。
- 与EMR软件栈完美结合,支持处理存储在OSS的数据。
- 免运维7*24一站式服务。
更多参考
根据集群版本,获取Presto组件的版本号,详情请参见版本概述。
请根据Presto组件的版本号,查看开源Presto文档:
- 当Presto版本是3XX时,修改prestosql.io/docs/3XX/中的版本号,在浏览器访问该链接。
例如,当Presto版本是331时,访问prestosql.io/docs/331/,详情请参见Presto 331 Documentation。
- 当Presto版本是0.2XX时,修改prestodb.io/docs/0.2XX/中的版本号,在浏览器访问该链接。
例如,当Presto版本是0.228时,访问prestodb.io/docs/0.228/,详情请参见Presto 0.228 Documentation。