すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Presto

最終更新日:Jun 09, 2026

Presto (PrestoDB とも呼ばれます) は、大規模なインタラクティブな分析向けに構築された分散 SQL クエリエンジンです。このトピックでは、主な機能、アーキテクチャ、データモデル、および E-MapReduce (EMR) で実行するメリットについて説明します。

重要な注意事項

E-MapReduce (EMR) 3.45.0 および 5.11.0 以降のバージョンでは、通常 0.2XX のバージョン番号を持つ Presto をサポートしています。以前の EMR バージョンでは、3XX のバージョン番号を持つ Presto コンポーネントは PrestoSQL または Trino のカーネルを使用していました。詳細については、「Trino」をご参照ください。

主な機能

Presto は Java で記述されており、高性能と水平方向のスケーラビリティを目的に設計されています。次の機能を提供します:

  • ANSI SQL の完全サポート。

  • Hive、Hudi、Iceberg、Delta Lake、MySQL、PostgreSQL など、幅広いデータソースへの接続。

  • 高度なデータ型のサポート:

    • 配列とマップ

    • JSON データ

    • 地理情報システム (GIS) データ

    • カラーデータ

  • 複数の仕組みによる拡張性:

    • プラガブルデータコネクター

    • カスタムデータ型

    • カスタム SQL 関数

  • パイプライン処理:データの処理に合わせてクエリ結果をクライアントに段階的に返し、最初の結果が返るまでの時間を短縮します。

  • 組み込みのオブザーバビリティ:

    • クエリ実行をリアルタイムに可視化する Web UI。

    • メトリクス収集のための JMX プロトコルのサポート。

アーキテクチャ

次の図は、Presto のシステムアーキテクチャを示しています。Presto系统组成

Presto はコーディネーター/ワーカーアーキテクチャーを採用しています。1 つのコーディネーターノードがクエリ計画とクラスターの状態を管理し、複数のワーカーノードが分散クエリ実行を処理します。

コーディネーターは、次を担当します:

  • クエリを受け付けて解析し、実行計画を生成し、計画フラグメントをワーカーノードに配布します。

  • ワーカーノードのヘルスを監視します。各ワーカーは、コーディネーターとのハートビート接続を維持して状態を報告します。

  • メタストアのメタデータを維持します。

ワーカーノードは分散クエリタスクを実行します。コネクターを使用して外部ストレージシステムからデータを読み取り、処理した後、結果をコーディネーターに返します。

Presto は現在、高可用性 (HA) アーキテクチャをサポートしていません。EMR クラスターでは、コーディネーターは master-1-1 ノードで実行されます。ワーカーはすべての Core ノードと Task ノードで実行されます。

ユースケース

Presto は、大規模なデータセットに対する分析ワークロード向けに最適化されています。次の用途に適しています:

  • 抽出、変換、ロード (ETL)

  • アドホッククエリ

  • 構造化データまたは半構造化データの大規模分析

  • 多次元データの集計とレポート生成

重要

Presto は分散 SQL クエリエンジンです。トランザクションのサポートは限定的であるため、オンライン トランザクション処理 (OLTP) ワークロードには適していません。

EMR 上の Presto のメリット

セルフマネージドのオープンソース Presto と比べて、EMR 上の Presto は次を提供します:

  • 迅速なセットアップ:数分で数百ノード規模の Presto クラスターを起動できます。

  • 最小限の設定での弾力的なスケーリング。

  • Data Lake Formation (DLF)、Object Storage Service (OSS)、OSS-HDFS などを含む EMR ソフトウェアスタックとのネイティブ統合。

  • フルマネージドの運用保守:EMR がクラスターのプロビジョニングと運用保守を処理するため、クエリに集中できます。

概念

データモデル

Presto は、カタログ、スキーマ、テーブルの 3 階層でデータを整理します。

  • カタログ:1 つ以上のスキーマを含み、コネクターがアクセスできる外部データソースにマッピングされます。単一のクエリで複数のカタログにまたがることができます。

  • スキーマ:データベースインスタンスに相当し、1 つ以上のテーブルを含みます。

  • テーブル:スキーマ内の標準的なリレーショナルテーブルです。

コネクター

コネクターは、Presto と外部データソースを統合するレイヤーです。Presto は、一般的なシステム向けの組み込みコネクターを用意しているほか、カスタムデータソースへの接続用に実装できる標準 SPI も公開しています。

通常、各カタログは特定のコネクタータイプにバインドされ、カタログのプロパティファイルで定義されます。

詳細情報

使用しているバージョンに対応するオープンソース Presto のドキュメントを表示するには、URL https://prestodb.io/docs/XXX/ の XXX を Presto コンポーネントのバージョン番号に置き換え、ブラウザーで URL を開いてください。

たとえば、Presto のバージョンが 0.279 の場合、ドキュメントは https://prestodb.io/docs/0.279/ にあります。