Trino

Trino 是一个 开源 的分布式 SQL 查询引擎。目的是能够快速方便地对分布存储在一个或多个异构数据源的大型数据集进行查询. Trino 不仅能够查询储存在不同的存储系统（如 HDFS、Amazon S3、谷歌云存储 或Microsoft Azure Blob 存储）上并按照Apache Hive 或  格式存储的开源列式存储数据文件格式（如  或 ）的数据湖。Trino 还能进行联邦查询，查询不同数据源（如 MySQL、PostgreSQL、Cassandra、Kafka、MongoDB 和 Elasticsearch）中的表。Trino 在 Apache 许可证.下发布。

 历史 

2019 年 1 月，Presto 的原始创建者 Martin Traverso、Dain Sundstrom 和 David Phillips 从 Presto 项目创建了一个fork仓库. 他们最初保留了 Presto 这个名字，并使用 PrestoSQL 来区别于原来的 PrestoDB 项目。 同时，他们宣布成立 Presto 软件基金会。 该基金会是一个非营利组织，致力于推动 Presto 开源分布式 SQL 查询引擎的发展。 

2020 年 12 月，PrestoSQL 更名为 Trino。 作为品牌重塑的一部分，Trino 软件基金会、代码库和所有其他 PrestoSQL 资产都已经按新品牌重命名。

Presto 和 Trino 最初由 Facebook 的 Martin、Dain、David 和 Eric Hwang 设计和开发，旨在能够让数据分析师在 Apache Hadoop 中的大型数据仓库上执行交互式查询。Trino 与 Presto 项目共度前六年的时光。 想要了解更多 Trino 早期历史的信息，您可以参考 Presto 历史部分。.

 架构 

Trino 使用 Java 语言编写，它包含了 coordinator（协调节点）和 worker（工作节点）两种类型的节点。 

 协调节点 负责对客户端提交的查询进行语法解析、语义分析、执行计划生成、执行计划优化以及任务调度。协调器与服务提供者接口进行交互，以获取可用表、表统计信息和执行任务所需的其他信息。

 工作节点 负责执行调度程序提供给他们的任务和算子。这些任务处理来自数据源的数据，并返回给协调器，再由协调节点将最终的结果返回给客户端。

Trino 遵循 ANSI SQL s标准，包括以下 : SQL-92, , , , , .

Trino 是存算分离的架构。 支持被部署在本地或者云端.

Trino 是分布式计算  架构。 首先 Trino 会通过运行临时分区操作或者依赖于底层数据存储数据中的现有分区，将任务按分区分配给多个 worker 节点。一旦数据到达 worker 节点，数据会被多个线程上执行的流水线运算符处理。.

 更多信息 

 大数据
 计算机集群

 参考资料 

 外部链接 
 Trino 软件基金会 (前身是 Presto 软件基金会) 

Category:SQL
Category:免费软件
Category:Hadoop
Category:雲端運算
Category:java平台