Trino 的历史和设计 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Trino 的历史和设计

Trino 专为从许多不同来源查询大型数据集而设计。Trino 可以在传统的大数据使用案例中访问和查询 HDFS,但它也可以查询其他来源(例如关系数据库和 NoSQL 数据库)。Trino 最初是 Presto 查询引擎的一个分支,于 2019 年推出。此后,它独立于 Presto 代码库进行开发。

有关 Trino 查询引擎及其使用方式的更多信息,请访问 Trino 网站。要阅读 Trino 源文档,请参阅 Trino 概述

架构概念

Trino 之所以能够快速高效地运行查询,是因为它可在集群中并行处理数据。它专为查询数据湖而设计,因为它专门用于查询大量数据,通常在涉及 Hadoop 和 HDFS 的使用案例中。但是,它也可以查询传统的关系数据库。有关更多信息,请参阅 Trino 文档中的 Architecture

Trino 的组件

Trino 有几个关键架构组件,它们协同工作来使查询快速运行。了解这些组件有助于您优化集群来获得更好的性能:

  • 协调器负责查询编排。它解析并优化传入的 SQL 查询,生成执行计划,将任务分配给 Worker 节点,并收集和汇总查询结果。此外,它还监控资源使用情况并跟踪 Worker 节点的状态。有关更多信息,请参阅 Trino 文档中的 Coordinator

  • Worker 节点负责处理查询的数据。在协调器分配任务后,工作线程会检索数据,执行必要的操作(例如联接和聚合),并与其他工作线程交换中间数据。有关更多信息,请参阅 Trino 文档中的 Worker

  • 连接器是使 Trino 能够连接和查询各种数据来源的插件。每个连接器都知道如何访问和检索其来源(例如 Amazon S3、Apache Hive 或关系数据库)中的数据。这些连接器将源数据映射到 Trino 的架构结构。

  • 目录是与特定连接器关联的架构和表的逻辑集合。协调器中定义的目录使 Trino 能够将不同的数据来源视为单个命名空间。这样,用户就可以在同一个查询中以统一的方式同时查询多个源(例如 Hive 和 MySQL)。

  • Trino CLI 等客户端通过 JDBC 和 ODBC 驱动程序连接到 Trino 协调器,以提交 SQL 查询。协调器负责管理查询生命周期,并将结果提供给客户进行进一步分析或报告。

运行查询

要了解 Trino 如何接收 SQL 语句并将其作为查询运行,请参阅 Trino 文档中的 Trino 概念