Trino (SQL クエリ エンジン)
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 |
Trinoは異なるデータソースに対してSQLを通じてアクセスを可能とするオープンソースの分散SQLクエリエンジンである。[1] HDFS、AWS S3、Google Cloud StorageやAzure Blob Storage 等のストレージ上に存在するHive[2]やIceberg[3]テーブルフォーマット内のORCやParquetファイル等のアクセスに加えて、MySQL、PostgreSQL、Cassandra、Kafka、MongoDBやElasticsearch[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は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]。
外部リンク
[編集]脚注
[編集]- ^ “Overview — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
- ^ “Hive connector — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
- ^ “Iceberg connector — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
- ^ “Connectors — Trino current Documentation”. trino.io. 2023年2月24日閲覧。
- ^ “trinodb/trino LICENSE”. Trino (25 August 2022). 25 August 2022閲覧。
- ^ “Presto Software Foundation Launches to Advance Presto Open Source Community”. PRWeb. 2019年2月1日閲覧。
- ^ “Presto's New Foundation Signals Growth for the Big Data SQL Engine” (英語). The New Stack (2019年1月31日). 2019年2月1日閲覧。
- ^ Traverso (27 December 2020). “We’re rebranding PrestoSQL as Trino” (英語). trino.io. 7 September 2021閲覧。
- ^ “Contributors to trinodb/trino” (英語). GitHub. 20 September 2021閲覧。
- ^ “Contributors to prestodb/presto” (英語). GitHub. 20 September 2021閲覧。
- ^ 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
- ^ 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
- ^ 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
- ^ 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