Amazon EMR での Presto

特徴と利点

Presto では、SQL セマンティクスをサポートするように設計された演算子に対応したカスタムクエリ実行エンジンを使用します。Hive/MapReduce とは異なり、Presto はクエリをメモリで実行し、ネットワークにかけてステージ間でパイプライン化するため、不要な I/O を避けることができます。このパイプライン化された実行モデルでは複数のステージが平行して実行され、次のステージが利用可能になるとデータをストリーミングします。
Presto を実行する Amazon EMR クラスターは数分で起動できます。ノードのプロビジョニング、クラスターのセットアップ、設定、クラスターのチューニングなど、わずらわしい作業は不要です。Amazon EMR がこのような作業を行いますので、お客様は分析に専念できます。また、Airpal などのツールを使用することもできます。Airpal は、Airbnb によりオープンソースで開発されたウェブベースのクエリ実行ツールです。Airpal のユーザーインターフェイスではデータ調査やアドホックな分析が簡素化されます。また、構文強調表示、CSV への結果のエクスポート、後で利用するためのクエリの保存、スキーマを可視化するためのテーブルの確認などの機能がサポートされています。
Amazon S3 のデータに直接アクセスするインタラクティブなクエリを実行して、Amazon EC2 スポットインスタンスキャパシティを使用してコストを削減するとともに、EMR Managed Scaling を使用してキャパシティを動的に追加および削除し、ワークロードに合わせて長期実行クラスターまたは一時クラスターを起動します。また、Hadoop エコシステムの別のアプリケーションをクラスターに追加することもできます。
Presto では ANSI SQL 標準をサポートしています。これにより、データアナリストや開発者は、大規模な構造化データと非構造化データの両方に対してクエリを簡単に実行できます。現段階で、Presto は、複雑なクエリ、集計、結合、ウィンドウ関数など、さまざまな SQL 機能をサポートしています。

お客様の成功事例

Netflix のお客様事例

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 のクエリを実行しています。

Netflix ロゴ

Jammp のお客様事例

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

Jammp のロゴ

Cogo Labs のお客様事例

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

Cogo Labs のロゴ

OpenSpan のお客様事例

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

OpenSpan のロゴ

Kanmu のお客様事例

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

Kanmu のロゴ