Trino (SQL クエリ エンジン)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Trino
Trino UI Version 358
作者 Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
リポジトリ Trino Repository
プログラミング
言語
Java
対応OS Cross-platform
規格 ANSI SQL, JDBC
種別 Data Warehouse
ライセンス Apache License 2.0
公式サイト trino.io
テンプレートを表示

Trinoは異なるデータソースに対してSQLを通じてアクセスを可能とするオープンソースの分散SQLクエリエンジンである。[1] HDFSAWS S3、Google Cloud StorageやAzure Blob Storage 等のストレージ上に存在するHive[2]Iceberg[3]テーブルフォーマット内のORCやParquetファイル等のアクセスに加えて、MySQLPostgreSQLCassandraKafkaMongoDBElasticsearch[4]に対してリモートでクエリを実行する機能も備える。TrinoはApache License[5]の元に公開されている。


歴史[編集]

2019年1月に Prestoの作者である Martin Traverso、Dain SundstromおよびDavid PhillipsがオリジナルのPrestoDBのフォークとしてPrestoSQLプロジェクトを開始。 同時にPrestoの発展を目的としたNPO団体 Presto Software Foundationを発足。[6][7]

2020年12月にPrestoSQLはTrinoへと名称が変更され、上記の団体はTrino Software Foundationへと変更され、コードベースやWebサイト等もリブランディングの一環として同様に変更された。[8]

PrestoおよびTrinoは当時Facebookに勤めていたMartin、Dain、DavidおよびEric Hwangによって、Apache Hadoop上に存在する巨大なデータウェアハウスに対して分析者がインタラクティブにデータにアクセスできるように設計および開発が行われた。Trino の開発期間の最初の6年間はPrestoプロジェクトとして開発されていたと言える。[9][10] 開発当初の経緯についてはthe Presto history sectionに記載されている。

アーキテクチャ[編集]

Trinoのコーディネーターおよびワーカーのアーキテクチャ[11]

TrinoはJava[12]を用いて開発されている。 コーディネーターワーカーという2種類のノードの種類が存在する[11]

  • コーディネーターはクライアントから実行されたクエリをパース、アナライズ、オプティマイズおよびスケジューリングを行う。 サービスプロバイダインタフェース (SPI) に基づきテーブルや統計情報等のタスクに実行に必要な情報を取得する[11]
  • ワーカーはスケジューラによって割り当てられたタスクやオペレーターを実行する。これらのタスクはデータソースから取得されたデータを処理し、コーディネーターへと渡され最終的にクライアントへと返却される[11]

TrinoはANSI SQL[13] に準拠しており、SQL-92、SQL:1999、SQL:2003、SQL:2008、SQL:2011およびSQL:2016が対象に含まれている。

Trinoは計算処理とストレージを分離している[13]。オンプレミスおよびクラウドコンピューティング[14]のどちらでも使用可能。

Trinoは 分散コンピューティング MPPアーキテクチャを採用している[11]。Trinoはアドホックもしくは事前にデータソース側で分割された単位によって処理を分割しワーカーに処理を分散させる。ワーカーが取得したデータは複数スレッド上でパイプライン処理が行われる[11]

外部リンク[編集]

脚注[編集]

  1. ^ Overview — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
  2. ^ Hive connector — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
  3. ^ Iceberg connector — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
  4. ^ Connectors — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
  5. ^ trinodb/trino LICENSE”. Trino (2022年8月25日). 2022年8月25日閲覧。
  6. ^ Presto Software Foundation Launches to Advance Presto Open Source Community”. PRWeb. 2019年2月1日閲覧。
  7. ^ Presto's New Foundation Signals Growth for the Big Data SQL Engine” (英語). The New Stack (2019年1月31日). 2019年2月1日閲覧。
  8. ^ Traverso (2020年12月27日). “We’re rebranding PrestoSQL as Trino” (英語). trino.io. 2021年9月7日閲覧。
  9. ^ Contributors to trinodb/trino” (英語). GitHub. 2021年9月20日閲覧。
  10. ^ Contributors to prestodb/presto” (英語). GitHub. 2021年9月20日閲覧。
  11. ^ a b c d e f Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). “Chapter 4. Trino Architecture”. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 43-72. ISBN 9781098107710 
  12. ^ Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). “Chapter 2. Installing and Configuring Trino”. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 19-24. ISBN 9781098107710 
  13. ^ a b Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). “Chapter 1. Introducing Trino”. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 3-17. ISBN 9781098107710 
  14. ^ Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). “Chapter 13. Real-World Examples”. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 267-272. ISBN 9781098107710