大数跨境
0
0

Presto:一款免费开源的大数据SQL查询引擎

Presto:一款免费开源的大数据SQL查询引擎 SQL编程思想
2025-09-30
0

 

Presto 是一款免费面向现代数据分析的高性能、分布式 SQL 查询引擎,可以为数据库、大数据以及湖仓一体等存储架构提供统一的 SQL 查询接口。

Presto 项目主要基于 Java 语言开发,遵循 Apache 2.0 开源协议,代码托管在 GitHub,目前已经获得了 16.5K Stars:

https://github.com/prestodb/presto 

系统架构

作为一个计算引擎,Presto 本身不存储数据,而是专门用来快速查询外部数据源。

Presto 采用典型的主从(Master-Slave)架构,主要包括两个角色:Coordinator 和 Worker 。

  • • Coordinator,负责接收客户端的 SQL 查询,主要工作包括:解析 SQL 语句,检查语法,并基于成本生成最优的分布式执行计划;将执行计划分解成多个阶段和任务,并将其分发给 Worker 节点执行;监控所有 Worker 节点的状态,并协调整个查询的执行过程。
  • • Worker,负责执行具体的数据处理任务,包括连接到数据源读取数据,在内存中对数据进行处理(例如过滤、聚合、关联),将中间结果传递给其他 Worker 进行下一步处理。Worker 节点是并行工作的,数据和处理任务都被分散到所有可用的 Worker,这是 Presto 高性能的基础。

客户端通过 CLI、JDBC、ODBC 等方式连接到 Coordinator 来提交查询。

功能特性

  • • 连接器:Presto 通过连接器(Connector)支持丰富的数据源,包括 Accumulo、Arrow Flight、BigQuery、Cassandra、ClickHouse、Delta Lake、Druid、Elasticsearch、Google Sheets、HANA、Hive、Hudi、Iceberg、Kafka、MongoDB、MySQL、Oracle、PostgreSQL、Prometheus、Redis、Redshift、ScyllaDB、SingleStore、SQL Server、Thrift、本地文件等。
  • • 高性能:采用内存计算和流水线执行模型,查询速度比 Hive 快几个数量级(从分钟级降到秒级),非常适合交互式查询和即席分析。
  • • 标准 SQL:支持 ANSI SQL,学习成本低,现有的 BI 工具(例如 Tableau, Superset)可以轻松地通过 JDBC/ODBC 与之集成。
  • • 联邦查询:采用用标准 SQL 即可实现跨源分析,打破了数据孤岛。
  • • 可扩展性: MPP 架构可以轻松地向集群中添加或移除 Worker 节点,实现水平扩展。
  • • 灵活部署:可以在本地数据中心部署,也可以在云上部署。
  • • REST API:Presto 提供了一套 RESTful API,允许通过 HTTP 请求直接与服务器交互,完成查询提交、状态监控和集群管理等一系列操作。
  • • 生态系统:Presto 托管给了 Linux 基金会,社区非常活跃,生态系统在不断扩展中。

下载安装

Presto 支持多种安装方式,使用 Docker 进行部署的命令如下:


   
    
   docker run -p 8080:8080 -ti prestodb/presto:latest

启动服务之后,在浏览器中输入以下地址进行访问:

http://localhost:8080/ 

官方文档:

https://prestodb.io/docs/current/index.html 

 

【声明】内容源于网络
0
0
SQL编程思想
数据库、AI、BI、大数据、云计算等知识分享,承诺更新到2050年。
内容 471
粉丝 0
SQL编程思想 数据库、AI、BI、大数据、云计算等知识分享,承诺更新到2050年。
总阅读387
粉丝0
内容471