Apache-presto-architecture

提供:Dev Guides
移動先:案内検索

Apache Presto-アーキテクチャ

Prestoのアーキテクチャは、従来のMPP(大規模並列処理)DBMSアーキテクチャとほぼ同じです。 次の図は、Prestoのアーキテクチャを示しています。

Presto Architecture

上記の図は、さまざまなコンポーネントで構成されています。 次の表に、各コンポーネントの詳細を示します。

S.No Component & Description
1.

Client

クライアント(Presto CLI)は、SQLステートメントをコーディネーターに送信して結果を取得します。

2.

Coordinator

コーディネーターはマスターデーモンです。 コーディネーターは、最初にSQLクエリを解析してから、クエリ実行の分析と計画を行います。 スケジューラは、パイプラインの実行を実行し、最も近いノードに作業を割り当て、進行状況を監視します。

3.

Connector

ストレージプラグインはコネクタと呼ばれます。 Hive、HBase、MySQL、Cassandraなどがコネクタとして機能します。それ以外の場合は、カスタムも実装できます。 コネクタは、クエリのメタデータとデータを提供します。 コーディネーターはコネクタを使用して、クエリプランを作成するためのメタデータを取得します。

4.

Worker

コーディネーターは、タスクをワーカーノードに割り当てます。 ワーカーはコネクタから実際のデータを取得します。 最後に、ワーカーノードは結果をクライアントに配信します。

Presto-ワークフロー

Prestoは、ノードのクラスターで実行される分散システムです。 Prestoの分散クエリエンジンは、インタラクティブな分析用に最適化されており、複雑なクエリ、集計、結合、ウィンドウ関数などの標準ANSI SQLをサポートしています。 プレストアーキテクチャはシンプルで拡張可能です。 Prestoクライアント(CLI)は、SQLステートメントをマスターデーモンコーディネーターに送信します。

スケジューラは、実行パイプラインを介して接続します。 スケジューラは、データに最も近いノードに作業を割り当て、進行状況を監視します。 コーディネーターはタスクを複数のワーカーノードに割り当て、最後にワーカーノードが結果をクライアントに返します。 クライアントは、出力プロセスからデータをプルします。 拡張性が重要な設計です。 Hive、HBase、MySQLなどのプラグ可能なコネクタは、クエリのメタデータとデータを提供します。 Prestoは、これらの異なる種類のデータソースに対してSQLクエリ機能を簡単に提供できるようにする「シンプルなストレージ抽象化」を使用して設計されました。

実行モデル

Prestoは、SQLセマンティクスをサポートするように設計された演算子を使用して、カスタムクエリおよび実行エンジンをサポートします。 スケジューリングの改善に加えて、すべての処理はメモリ内にあり、異なるステージ間でネットワークを介してパイプライン処理されます。 これにより、不必要なI/Oレイテンシのオーバーヘッドが回避されます。