Presto は、低レイテンシーでアドホックなデータ分析用に最適化されたオープンソースの分散 SQL クエリエンジンです。ANSI SQL 標準をサポートしており、複雑なクエリ、集計、結合、ウィンドウ関数を実行できます。Presto を使用して、Hadoop Distributed File System (HDFS) や Amazon S3 など、複数のデータソースのデータを処理できます。

マネージド型 Presto クラスターを AWS マネジメントコンソール、AWS CLI、または Amazon EMR API からすばやく簡単に作成できます。また、Amazon S3 の高速接続、Amazon EC2 スポットインスタンスとの連携、各種 Amazon EC2 インスタンス (メモリに最適化したインスタンスなど) からの選択、サイズ変更コマンドなどの Amazon EMR の追加機能を利用して、簡単にクラスターのインスタンスを追加または削除できます。

PrestoLogo_withText

Amazon EMR で Presto を使用する

まずは無料で始める

サポートが必要ですか? お問い合わせください。

How to Analyze Data with Presto and Airpal on Amazon EMR (AWS プロフェッショナルサービスコンサルタント、Songzhi Liu)

 


S3_Sketch_Available

Presto では、SQL セマンティクスをサポートするように設計された演算子に対応したカスタムクエリ実行エンジンを使用します。Hive や MapReduce とは異なり、Presto ではメモリ内でクエリを実行します。クエリは段階ごとにネットワーク全体でパイプライン化されるため、不要な I/O を避けることができます。パイプライン化して実行するモデルでは、複数の段階を並行して実行し、データが利用可能になると、ある段階から次の段階へストリーミングします。 

S3_Sketch_HighPerformance

Presto を実行する Amazon EMR クラスターは数分で起動できます。ノードのプロビジョニング、クラスターのセットアップ、設定、クラスターのチューニングなど、わずらわしい作業は不要です。Amazon EMR がこのような作業を行いますので、お客様は分析に専念できます。また、Airpal などのツールを使用することもできます。Airpal は、Airbnb によりオープンソースで開発されたウェブベースのクエリ実行ツールです。Airpal のユーザーインターフェイスではデータ調査やアドホックな分析が簡素化されます。また、構文強調表示、CSV への結果のエクスポート、後で利用するためのクエリの保存、スキーマを可視化するためのテーブルの確認などの機能がサポートされます。

S3_Sketch_Simple

Amazon S3 のデータに直接アクセスするインタラクティブなクエリの実行、Amazon EC2 スポットインスタンスの容量を使用したコストの節約、Auto Scaling を使用した容量の動的な追加と削除、ワークロードに応じて長期間稼働するクラスターや一時的なクラスターの起動がそれぞれ可能です。また、Hadoop エコシステムの別のアプリケーションをクラスターに追加することもできます。

Benefit_Workflow_Green

Presto は ANSI SQL 標準をサポートしています。これにより、データアナリストや開発者は、大規模な構造化データと非構造化データの両方に対してクエリを簡単に実行できます。現段階で、Presto は、複雑なクエリ、集計、結合、ウィンドウ関数など、さまざまな SQL 機能をサポートしています。


Netflix は、ビッグデータ向けの、ANSI-SQL に準拠したインタラクティブなクエリエンジンとして Presto を選択しました。Presto は拡張性に優れ、オープンソースです。また、Netflix のビッグデータウェアハウス環境の基盤である Hive Metastore や Amazon S3 と連携できます。Netflix では、永続的な Amazon EMR クラスターで Presto を実行し、最大 25 PB の Amazon S3 データストア全体でクエリを迅速かつ柔軟に実行しています。Netflix は Presto に積極的に貢献しており、Amazon EMR を使用して、Presto の独自のビルドを Amazon EMR クラスターで実行する柔軟性を実現しています。平均して、Netflix では Presto クラスターで 1 日あたり最大 3,500 のクエリを実行しています。 

Jampp は、高度な広告リターゲティング技術を使用してターゲットのユーザーをアプリケーションに誘導するモバイルアプリケーションマーケティングプラットフォームです。Jampp では、独自のコンバージョンベースのリアルタイム入札 (RTB) エンジンでモバイルメディアインベントリを購入することでこれを実現しています。このエンジンでは、18 の RTB エクスチェンジと 150 を超えるモバイル広告ネットワークでインベントリに動的に入札します。Jampp は Amazon EMR で実行される Presto を活用して、複数のソースから取得したデータと、複雑なリターゲティングセグメントの計算を組み合わせて、高度なアドホックログ分析を実現します。Jampp のユーザーベースが 600% 増加したため、複雑な分析クエリの需要も増加しました。Jampp は複雑なマルチコア Python アプリケーションを MySQL で実行するのをやめ、Presto に移行しました。結果的に、パフォーマンスが 12 倍になりました。現在、Jampp では Amazon EMR の Presto を使用して、1 日あたり 40 TB のデータを処理しています。

Cogo Labs はスタートアップインキュベーターとして、投資対象の企業や内部チームが使用するマーケティング分析やビジネスインテリジェンス用のプラットフォームを運用しています。急速なイノベーションに対応する OLAP 環境をサポートするために、SQL を標準としてデータの操作を行うことにしました。Cogo Labs は、リアルタイムのクエリパフォーマンス、ANSI-SQL のサポート、Amazon S3 から直接データを処理できることを理由に Presto を選択しました。Amazon EMR で実行される Presto では、100 人以上の開発者とアナリストが、データ調査、アドホック分析、レポート作成の目的で、Amazon S3 に保存された 500 TB を超えるデータに対して SQL クエリを実行できます。Cogo Labs では、一時的なクラスターと永続的なクラスターを組み合わせて使用しています。また、Amazon EMR とスポットインスタンスの連携を利用してコストを削減しています。

OpenSpan は自動化およびインテリジェンスソリューションを提供し、ユーザー、プロセス、技術をつなげて、従業員の生産性に関する詳細情報を取得し、従業員と顧客のやり取りを簡素化します。OpenSpan は、HBase から、Amazon S3 にデータを保存する Amazon EMR の Presto に移行しました。OpenSpan は、SQL インターフェイスと、Amazon S3 からリアルタイムで直接データにクエリを実行できる点を理由に Presto を選択しました。Presto により、膨大な量のデータをすばやく検索し、新しいデータ製品に対しても迅速に繰り返し処理を実行できます。OpenSpan では Parquet ファイル形式を使用しています。Presto への接続には PrestogreSQL を使用しています。OpenSpan は、顧客から日々受け取るギガバイト単位のデータを優れた費用対効果で処理するために、Amazon EMR と Amazon S3 を選択しました。

Kanmu は、日本の金融サービス業界のスタートアップ企業です。消費者のクレジットカード利用状況に基づいて、カードに関連するサービスを提供しています。Kanmu は、Presto の反復的な予備解析を Amazon S3 において優れたインタラクティブスピードとパフォーマンスで実行できる点と、大きなデータセットに対してクエリを実行できるスケーラビリティを理由として、Hive から Amazon EMR の Presto に移行しました。Kanmu では Fluentd-plugin-s3 を使用してデータを Amazon S3 にプッシュします。これは、データを保存し、shib (SQL クエリを実行するための node.js ベースのウェブクライアント) を使用するための、最適化された行列 (ORC) 形式です。



  1. Presto と Airpal を使用して Amazon EMR クラスターを起動します
  2. Amazon EMR の Presto を設定する方法をご覧ください。