分布式 SQL 查询引擎之Trino

Image

Image

Image

Image

Image

Image

Trino(PrestoSQL)详细介绍

Trino 是目前最流行的 分布式 SQL 查询引擎(Distributed SQL Query Engine) 之一,定位是:

通过 SQL 联邦查询(Federated Query)访问各种数据源,实现跨数据湖、数据库、消息系统的高速交互式分析。

它最初来自 Facebook 的 Presto 项目,后来社区分裂,原 PrestoSQL 改名为 Trino

如果你熟悉:

  • Hive

  • Spark SQL

  • Doris

  • StarRocks

  • ClickHouse

  • Iceberg

  • Lakehouse

可以这样理解:

Trino 是 Lakehouse 架构中的统一 SQL 查询层,相当于数据世界的“SQL访问网关”。


1. Trino 的定位

传统大数据架构:

业务库
 |
ETL
 |
Hive数仓
 |
Spark计算
 |
BI

问题:

数据分散:

MySQL
Oracle
Kafka
Hive
S3
MongoDB
ES

每个系统:

  • SQL不同

  • 数据孤岛

  • 需要搬迁

Trino:

                  SQL

                   |
              Trino Query Engine

     -------------------------------
     |       |       |       |
   MySQL   Hive   Kafka   Iceberg

一个SQL查询多个系统。

例如:

select
    a.customer_id,
    a.order_amount,
    b.user_level
from mysql.orders a
join hive.users b
on a.customer_id=b.id;

订单来自MySQL。

用户来自Hive。


2. Trino的发展历史

Presto

2012年:

Facebook开发。

目标:

解决:

Hive查询太慢

Hive:

SQL
 |
MapReduce
 |
HDFS

分钟级。

Presto:

SQL
 |
内存计算
 |
MPP执行

秒级。


分裂

2018:

社区分裂:

PrestoDB

Facebook维护。

后来:

Meta Platforms继续维护。

PrestoSQL

社区版本。

2020:

改名:

Trino

目前:

Trino发展更活跃。


3. Trino整体架构

             Client

               |
              JDBC

               |
        +--------------+
        | Coordinator |
        +--------------+

               |
       -----------------
       |       |       |
    Worker Worker Worker

       |
  --------------------
  |        |          |
Hive     Iceberg    MySQL
Connector Connector Connector

核心:

Coordinator

负责:

  • SQL解析

  • 查询计划

  • 调度任务

类似:

Spark Driver。


Worker

负责:

  • 数据读取

  • Join

  • Aggregation

  • Shuffle

类似:

Spark Executor。


4. Trino执行流程

SQL:

select
country,
count(*)
from orders
group by country;

流程:

Step1 SQL解析

SQL
 |
Parser
 |
AST

Step2 查询优化

生成:

Logical Plan

例如:

Scan

 |

Filter

 |

Group By


Step3 生成执行计划

Physical Plan:

Coordinator

    |
 Scan Task

    |
Aggregation

    |
Result

Step4 Worker执行

Worker:

读取数据

↓

计算

↓

Shuffle

↓

聚合


5. Trino为什么快?

5.1 MPP架构

Massively Parallel Processing

例如:

100GB数据:

单机:

CPU
 |
100GB

MPP:

          Trino

Worker1  25GB
Worker2  25GB
Worker3  25GB
Worker4  25GB

并行计算

5.2 内存计算

Hive:

磁盘
 |
Map
 |
Reduce

Trino:

数据
 |
Memory
 |
Pipeline

减少磁盘IO。


5.3 Pipeline执行

传统:

Scan完成

↓

Join

↓

Group

Trino:

Scan
 |
Join
 |
Aggregation

流水线执行

6. Trino Connector机制(核心)

Trino最大的价值:

Connector。

架构:

             Trino

                |

          Connector API


 ---------------------------------

 Hive Connector

 Iceberg Connector

 MySQL Connector

 Kafka Connector

 Elasticsearch Connector

 MongoDB Connector


Hive Connector

访问:

  • Hive Metastore

  • HDFS

  • S3

例如:

select *
from hive.sales.orders;

Iceberg Connector(非常重要)

现在Lakehouse主流。

Trino

 |

Iceberg Connector

 |

Iceberg Table

 |

S3/HDFS

SQL:

select *
from iceberg.db.customer;

支持:

  • Time Travel

  • Schema Evolution

  • Partition Evolution


JDBC Connector

访问:

  • MySQL

  • PostgreSQL

  • Oracle

例如:

select *
from mysql.crm.customer;

Kafka Connector

Kafka:

topic

↓

Trino

↓

SQL

例如:

select *
from kafka.orders;

实时分析。


7. Trino vs Hive

这是大数据面试高频。

HiveTrino
定位离线数仓交互分析
执行MapReduce/Tez/SparkMPP
速度分钟
资源磁盘内存
Join
BI一般优秀

关系:

不是替代。

常见:

Hive负责:

数据生产

ETL

        ↓

Trino负责:

查询分析

BI

探索

8. Trino vs Spark SQL

TrinoSpark SQL
定位SQL查询通用计算
延迟秒级秒~分钟
ETL一般
机器学习
流处理Structured Streaming
交互分析优秀一般

简单:

Spark:

数据工程平台

Trino:

SQL分析平台


9. Trino vs Doris / StarRocks

你之前做过 Doris,这个比较重要。

TrinoDoris
定位查询联邦分析数据库
数据来源多个系统自己存储
存储外部内部
实时写入
Join
BI

架构:

Trino

          SQL

           |

        Trino

     /    |     \

 Hive  MySQL  Iceberg

Doris

          SQL

           |

        Doris

           |

     自己存储数据


10. Trino + Lakehouse架构

现代数据平台:

                BI

                 |
               Trino

                 |

        ----------------

        Iceberg

        Delta Lake

        Hudi

        ----------------

                 |

              S3/HDFS

Trino成为:

Lakehouse SQL层。


11. Trino + Iceberg 是目前热点组合

为什么?

以前:

Hive Table

+
Hive Metastore

+
HDFS

问题:

  • schema变化困难

  • update困难

  • delete困难

Iceberg:

Data File

+
Metadata

+
Snapshot

Trino:

直接查询。

例如:

select *
from iceberg.ai_training.dataset;

12. Trino在AI数据平台中的价值

结合你关注的:

  • AI数据闭环

  • RAG

  • Feature Store

  • 数据治理

非常适合。

场景1:训练数据分析

数据:

S3

|

Parquet

|

Iceberg

|

Trino

分析:

select
label,
count(*)
from dataset
group by label;

场景2:RAG知识库质量分析

例如:

文档:

document_id
chunk
embedding
metadata

Trino:

分析:

  • chunk数量

  • 长度分布

  • 来源质量


场景3:数据治理

跨源:

MySQL

+

Hive

+

Kafka

+

Iceberg

统一SQL。


13. Trino集群部署

典型:

          Load Balancer

                 |

            Coordinator

                 |

 --------------------------------

 Worker1

 Worker2

 Worker3

 Worker4


配置:

Coordinator:

query.max-memory=50GB

Worker:

-Xmx64G

14. Trino缺点

1. 不适合复杂ETL

例如:

10小时任务:

数据清洗:

推荐:

Spark/Flink。


2. 内存敏感

大Join:

容易:

OutOfMemory

需要:

  • Join优化

  • 分区设计

  • Broadcast策略


3. 不负责数据存储

它只是:

计算层。


15. Trino未来趋势

目前数据架构趋势:

传统:

Hadoop
 |
Hive


未来:

Object Storage

(S3)

 |

Iceberg

 |

Trino

 |

BI / AI

Trino正在成为:

Lakehouse SQL标准查询引擎。

随着全民健身事业的深入推进与户外运动的快速普及,定向越野赛事举办频次持续提升,赛事规模与参与人数不断增长,参与者与组织者对赛事组织效率、服务质量及管理规范化的要求日益提高。然而,传统定向越野赛事管理仍依赖人工登记、线下核对、纸质记录等方式,普遍存在信息同步滞后、流程繁琐易错、数据统计低效、成绩核算耗时、资金与签到管理不规范等突出问题。例如,人工报名信息核对易出现遗漏与错误,现场签到排队拥堵影响参赛体验,成绩人工录入误差率高,赛事资金与物资管理缺乏透明化监管。这些问题不仅大幅增加赛事组织成本与人力消耗,还制约赛事运营效率与整体服务水平提升。在此背景下,构建一套数字化、一体化的定向越野赛事管理系统,成为赛事运营主体优化管理模式、提升服务质量的迫切需求。本研究旨在通过信息化技术重构赛事管理全流程,解决传统模式下的信息孤岛与操作低效问题,为定向越野赛事规范化、智能化管理提供可落地的解决方案。 本研究基于 Spring Boot 与 Vue 技术栈,采用前后端分离架构设计并实现了一套定向越野赛事管理系统。技术层面:后端依托 Spring Boot 框架搭建 RESTful API 服务,利用其自动配置与模块化特性简化开发流程,集成 MyBatis-Plus 优化数据持久化操作;前端采用 Vue.js 框架实现组件化开发,通过 Element UI 组件库构建交互友好的可视化界面,利用 Axios 实现前后端数据动态交互;数据库选用 MySQL 保障数据高效存储与事务一致性,同时采用手机号短信验证、JWT 令牌等机制强化系统安全性与用户权限管理。 本系统的实施为定向越野赛事运营与管理提供了显著的现实价值:其一,通过线上报名、信息筛选与自动化核对,大幅降低人工操作误差,提升赛事组织效率 30% 以上;其二,定位打卡签到与实时成绩同步功能,实现参赛流程无纸化、智能化,显著改善参赛者体验;其
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值