Trino (SQL クエリ エンジン)
TrinoはJavaを用いて開発されている。 コーディネーターとワーカーという2種類のノードの種類が存在する。
コーディネーターはクライアントから実行されたクエリをパース、アナライズ、オプティマイズおよびスケジューリングを行う。 サービス・プロバイダ・インターフェース (SPI)に基づきテーブルや統計情報等のタスクに実行に必要な情報を取得する。
ワーカーはスケジューラによって割り当てられたタスクやオペレーターを実行する。これらのタスクはデータソースから取得されたデータを処理し、コーディネーターへと渡され最終的にクライアントへと返却される。
TrinoはANSI SQL に準拠しており、SQL-92、SQL:1999、SQL:2003、SQL:2008、SQL:2011およびSQL:2016が対象に含まれている。
Trinoは計算処理とストレージを分離している。オンプレミスおよびクラウドコンピューティングのどちらでも使用可能。
Trinoは 分散コンピューティング MPPアーキテクチャを採用している。 Trinoはアドホックもしくは事前にデータソース側で分割された単位によって処理を分割しワーカーに処理を分散させる。ワーカーが取得したデータは複数スレッド上でパイプライン処理が行われる。