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