Trino(旧称 PrestoSQL)は、インタラクティブな分析クエリに適したオープンソースの分散SQLクエリエンジンです。E-MapReduce(EMR) V3.44.0およびV5.10.0では、PrestoSQLの名前がTrinoに変更されました。以前のバージョンのEMRでは、コンソールにPrestoSQLと表示されますが、実際にはTrinoが使用されています。
基本機能
TrinoはJavaで実装されています。使いやすく、高性能と強力なスケーラビリティを備えています。Trinoは次の機能を提供します。
American National Standards Institute(ANSI) SQLをサポートします。
さまざまなデータソースをサポートします。
Hive
Cassandra
Kafka
MongoDB
MySQL
PostgreSQL
SQL Server
Redis
Redshift
ローカルファイル
高度なデータ構造をサポートします。
配列データとマップデータ
JSONデータ
GISデータ
カラーデータ
強力なスケーラビリティを提供します。
さまざまなデータコネクタ
カスタムデータ型
カスタムSQL関数
パイプラインモデルを使用してデータを処理し、リアルタイムでデータを返します。
監視インターフェイスを提供します。
Web UIを提供し、クエリの [実行プロセス] を表示できます。
Java Management Extensions(JMX)プロトコルをサポートします。
アーキテクチャ
次の図は、Trinoのアーキテクチャを示しています。
Trinoは、コーディネーターノードと複数のワーカーノードで構成される典型的なマスター/スレーブアーキテクチャを備えています。コーディネーターノードは、次の機能を提供します。
クエリ要求を受信して解析し、実行プランを生成してから、実行プランをワーカーノードに配信して実行します。
ワーカーノードの実行ステータスを監視します。各ワーカーノードは、コーディネーターノードとのハートビート接続を維持します。
メタストアデータを維持します。
ワーカーノードは、コーディネーターノードによって割り当てられたタスクを実行し、コネクタを使用して外部ストレージシステムからデータを読み取り、データを処理し、処理結果をコーディネーターノードに送信します。
シナリオ
Trinoは、データウェアハウジングおよびデータ分析サービス向けの分散SQLクエリエンジンです。Trinoは、次のシナリオに適しています。
抽出、変換、ロード(ETL)
アドホッククエリ
大量の構造化データまたは半構造化データの分析
大量の多次元データの集計、およびレポート分析
Trinoはデータウェアハウジング製品です。トランザクションのサポートは限定的であり、オンラインビジネスシナリオには適していません。
メリット
EMR Trinoには、オープンソースのTrinoと比較して、次の利点があります。
数百ノードのTrinoクラスタを迅速にデプロイできます。
EMR Trinoは自動スケーリングをサポートしています。Trinoクラスタを簡単にスケールアウトできます。
EMR Trinoは、オブジェクトストレージサービス(OSS)バケットに格納されているデータを処理できます。
EMR Trinoはワンストップサービスを提供します。O&Mは不要です。
用語
データモデル
データモデルは、データ編成フォームです。Trinoは、カタログ、スキーマ、テーブルの3つのレベルのコンポーネントを使用してデータを管理します。
カタログ
カタログには複数のスキーマが含まれており、コネクタを使用してアクセスできる外部データソースを参照します。TrinoでSQLステートメントを実行して、1つ以上のカタログにアクセスします。
スキーマ
スキーマは、複数のテーブルを含むデータベースインスタンスです。
テーブル
テーブルは、一般的なデータベーステーブルと同じです。
コネクタ
Trinoは、コネクタを使用してさまざまな外部データソースに接続します。Trinoは標準の サービスプロバイダーインターフェイス(SPI) を提供しており、これを使用して独自のコネクタを開発し、カスタムデータソースにアクセスできます。
カタログは通常、カタログのプロパティファイルで構成されている特定の種類のコネクタに関連付けられています。Trinoには、複数の組み込みコネクタが含まれています。
参考資料
http://trino.io/docs/3XX/ のバージョン番号を、Trinoコンポーネントのバージョン番号に基づいて変更します。Webブラウザでリンクに移動して、オープンソースのTrinoドキュメントを表示します。
たとえば、https://trino.io/docs/331/ に移動して、Trino 331ドキュメント を表示します。