Prestoとは

Prestoとは

Presto、またはPrestoデータベース(PrestoDB)は、さまざまなデータソースから大規模なデータセットを照会できるオープンソースの分散SQL Queryエンジンなので、企業はデータの大規模な問題にも対処できます。

組織の規模を問わず、オンプレミス・システムやクラウドなどのさまざまなソースからのビッグデータを迅速かつ効率的に分析できるのがPrestoの強みです。また、新しい言語を学習することなく、既存のSQL機能を使用して、ペタバイト規模のデータを照会するのにも役立ちます。

Prestoは、Hadoopやその他の一般的なデータ・ストレージ・プロバイダーにおいて、クエリーの実行に最もよく使用されています。ユーザーは、複数のクエリー言語とデータベースやストレージへのインターフェイスを管理できます。

デジタル時代において、ビッグデータ分析は、規模や業界にかかわらず、急速に企業にとってのコア・コンピテンシーになりつつあります。ビジネス・プロセス、顧客の嗜好、市場動向に関する大量のデータを収集、保存、分析できる能力には、大きな価値があります。データ分析におけるPrestoの強みは、データが保存されている場所にかかわらず、データウェアハウスデータレイクなどの、より構造化されたシステムに最初にデータを移動する必要がなく、データを分析できる点にあります。

ニュースレターを表示しているスマホの画面

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

Prestoの強み

Prestoは、複数のクエリ言語、サイロ化されたデータベース、さまざまな種類のストレージを扱うデータサイエンティストやエンジニアに人気のツールです。ユーザーは、データの場所にかかわらず、シンプルなANSI SQLインターフェイスを使用して、大量のデータをリアルタイムに照会できます。Prestoは、大量のデータに対してクエリを実行できるスピードとパフォーマンスにより、Facebook、Airbnb、Netflix、Microsoft、Apple(iOS)、AWS(AthenaとAmazon s3)など、世界をリードする企業に不可欠なツールとなっています。

Prestoのアーキテクチャーは、データの保存場所にかかわらず、データを照会できるように設計されています。したがって、他の類似のソリューションよりもスケーラブルで効率的です。Prestoのクエリを使用することで、エンジニアはデータを物理的に移動することなく、データを活用できるようになります。これは、組織が保存、分析する必要がある、増え続けるデータを処理するうえでき重要な機能です。

Prestoは、データサイエンティストやエンジニアが、ソースやストレージの種類にかかわらず、膨大なデータをインタラクティブに照会できるように設計されています。Prestoでは、データの保管はしないものの、別のデータベースと通信して照会するので、競合製品よりも柔軟性が高く、組織のニーズの変化に基づいたクエリのスケールアップもスケールダウンも迅速になります。IBMのホワイトペーパーによると、Prestoをビジネス・インテリジェンス(BI)ワークロードに最適化すれば、企業にはデータ・ウェアハウスの価格設定を最適化してコストを最大50%削減する助けとなります。

Prestoのワークフローを導入する主なメリットをご紹介します。

コストの削減:データ・ウェアハウスのサイズとクエリを実行するユーザー数が増加するにつれて、企業のコストは急速に増加します。Prestoは、大量の小規模なクエリ向けに最適化されているため、コストを抑えながらも、あらゆる量のデータを簡単に照会することができます。また、Prestoはオープンソースであるため、デプロイに関連する料金はかかりません。膨大なデータを処理する必要がある企業にとっては、大きな節約につながる可能性があります。

拡張性の向上:エンジニアが1つのデータレイク・ストレージ・システムに複数のエンジンと言語をセットアップするのはよくあることですが、将来的にはプラットフォームの再構築が必要になってソリューションの拡張性が制限されることがあります。Prestoでは、すべてのクエリがユニバーサルANSI SQL言語とインターフェイスを使用して実行されるため、プラットフォームの再構築をしなくてもよくなります。さらに、Prestoはデータの量が小さくても大きくてもも使用できるので、1~2ユーザーから数千ユーザーへのスケールアップも簡単です。独自のSQLダイアレクトとAPIにより多数のコンピューティング・エンジンをデプロイするPrestoは、エンジニアやデータサイエンティストのチームが処理するには複雑すぎて時間のかかりそうなワークロードをスケーリングするための理想的なツールとなります。

パフォーマンスの向上:Hadoop上でSQLを実行する多くのクエリエンジンは、結果をディスクに書き込むように設計されているため、計算パフォーマンスに制約があります。Prestoの分散インメモリ・モデルでは、大規模なデータセットに対して、一度に大量のインタラクティブ・クエリを実行することができます。Prestoは、古典的な超並列処理(MPP)設計に従って、単一のWorkerノード上でできる限り多くのクエリをスケジュールし、インメモリ・ストリーミング・シャッフルを使用して、処理速度をさらに高めます。メモリ内でタスクを実行すると、ステージ間のディスクへの書き込みと読み取りが冗長になり、各クエリの実行時間が短縮されるため、競合ツールよりも待機時間が短くなります。

柔軟性の向上:Prestoでは、そのすべてのデータソースで、Cassandra、Kafka、MySQL、Hadoop分散ファイルシステム(HDFS)、PostgreSQLなどのプラグアンドプレイ・モデルを使用しているので、こうした機能がない他の競合ツールに比べて、データソース間のクエリがより高速で容易になります。また、Prestoはその柔軟なアーキテクチャーにより、単一のベンダーに限定されることなく、ほとんどのHadoopディストリビューションで稼働するので、入手可能な中で最もポータブルなツールの1つとなっています。

Prestoは、開発者やデータエンジニアが利用できる唯一のSQL-on-Hadoopではありませんが、クエリ機能をデータ・ストレージから切り離す独自のアーキテクチャーにより、最も柔軟なオプションの1つです。他のツールとは異なり、クエリ・エンジンをデータ・ストレージから分離し、コネクターを使用してクエリ・エンジン間の通信を行います。この機能により、エンジニアはPrestoを使用して、より柔軟にソリューションを構築することができます。

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

Prestoの仕組み

Prestoは、他のノードと連携して動作する、1つのCoordinatorノードを備えたMPPデータベース管理システムを使用します。Prestoのエコシステムは、Coordinatorサーバー、Workerサーバー、Resource Managerサーバーの3つのサーバー・タイプで構成されています。

Coordinator: コーディネーターは、Prestoをインストールする際の「頭脳」です。ステートメントの解析、クエリの計画、Presto Workerノードの管理など、最も重要なタスクのいくつかを担当します。最終的には、Workerノードからデータを取得し、結果をクライアントに配信します。

Worker:Workerは、Workerノードからデータを収集し、Worker自身とコネクタ間でデータがスムーズに交換されるようにします。

Resource Manager:Resource Managerでは、すべてのCoordinatorノードとWorkerノードからデータを収集してグローバル・ビュー(「Prestoクラスター」)を作成します。

Presto Coordinator SQL ServerサーバーがユーザーからSQL Queryを受け取ると、最初にカスタム・クエリーを使用して解析・計画し、他のノード全体に分散プランをスケジュールします。Presto REST APIは、サーバー上で実行するクエリー・ステートメントを送信し、クライアントの結果を取得するために使用されます。Prestoは、結合、クエリー、サブクエリー、集計などの標準的なANSI SQLのミーニングをサポートしています。クエリーをコンパイルすると、PrestoはリクエストをWorkerノード間のさまざまなステージに解析します。

Prestoはデータ抽象化の概念に基づいて構築されているため、あらゆるデータソースに拡張可能で、データレイク、データ・ウェアハウス、リレーショナル・データベースなどのデータソースを簡単に照会できます。データ抽象化は、データの表現を物理的なストレージから分離することで、より効率的にデータを保存・操作できるようにするプログラミング・プロセスです。この抽象化により、クエリ・エンジンはクエリに関連するデータの側面のみに焦点を当てることができます。データの抽象化プロセスを使用すると、データが別の分析システムに移動されてからではなく、保存されている場所であればどこでもデータを照会できます。

Prestoの沿革

当初は、巨大なApache Hadoopデータウェアハウスでインタラクティブ・クエリを実行するためにFacebookで開発されましたが、Prestoの開発者は常にオープンソース・ソフトウェアとして構想し、誰でもデータ分析やデータ管理に使用できるよう、無料で商用利用できるようにすることを目指していました。2013年には、GitHubでオープンソース化され、Apacheソフトウェア・ライセンスの下で、誰でもダウンロードできるようになりました。2019年、Presto開発チームのオリジナル・メンバーのうち3人がプロジェクトを離れ、Presto Software Foundation(より一般的には、prestosqlとして知られる)Prestoの「フォーク」を設立しました。

Linux Foundationやその他のオープンソース・コミュニティーは、認定資格の取得を目指すエンジニアや開発者向けに、Prestoに関するウェビナーやトレーニングを英語やその他の言語で提供しています。これらのフォーラムは、Prestoの最新情報を調べるのに最適な場所です。

Prestoユースケース

Prestoを使用すると、組織はさまざまなビジネス目的で大規模なデータ・リポジトリやNoSQLデータベースを迅速かつ効率的に照会できます。ここでは、その最も一般的なユースケースをいくつかご紹介します。

アドホック・クエリ

さまざまなビジネス目的での、迅速なデータ探索と簡単なレポート作成が可能になります。Hive、MongoDB、Cassandraなどの一般的なPrestoコネクターを使用することで、ユーザーは興味のあるデータを照会し、数秒で結果を得ることができます。Prestoのスピードと柔軟性により、ユーザーはどこにいても、データセットを反復処理して、さらに探索できるようになります。

Prestoが接続できる、最も広く使用されているデータ・リポジトリの一部は次のとおりです。

  • BigQuery
  • HDFS
  • クラウドストレージ
  • Cloud SQL for MySQL
  • Apache CassandraまたはKafka
クラウドとハイブリッドクラウドの導入

RedHatが実施した2021年のパフォーマンスアセスメントによると、企業によるハイブリッドクラウド環境の利用拡大により、クラウドネイティブ・ストレージへの圧力が高まっており、「現在利用可能な最速の分散クエリ・エンジン」であるPrestoが理想的とされています。1ワークロードをオンプレミス環境からクラウドかハイブリッドクラウド・インフラストラクチャーへ移行することには、パフォーマンスや拡張性の向上など、多くのメリットがあります。Prestoのアーキテクチャーは、そうしたデプロイメントでの強力な選択肢となります。プロビジョニング、構成、チューニングをまた行うことなしに数分で起動できるためです。

機械学習(ML)

Prestoは、エンジニアがデータを準備し、特徴量エンジニアリングと抽出を極めて効率的な方法で実行し、機械学習(ML)の準備を確実に整える助けとなります。コネクターの数、SQLエンジン、クエリ機能を備えているため、大量のデータにもすぐに簡単にアクセスしようとしているエンジニアに最適です。さらに、Prestoには集計などのML関数に特化して設計されているツールがあるので、データサイエンティストは、サポート・ベクター・マシン(SVM)の分類と回帰をトレーニングすることで、教師あり学習の問題に対処できます。

レポート

Prestoを使用すると、複数のソースからデータを照会して、BI目的で簡単にアクセスできる単一のレポートまたはダッシュボードを作成できます。Prestoはシンプルで使いやすいため、アナリストはエンジニアの助けを借りずにクエリを実行し、レポートを作成できます。

分析

アナリストは、データ変換をすることなく、構造化データと非構造化データの両方に対して、データレイク上で直接クエリを実行できます。

データ準備

データの収集と準備にはコストがかかり、非効率的である可能性があります。データサイエンティストは、データを分析する前のデータの収集と準備に、毎日何時間も費やすことがあります。Prestoにより、このプロセスを迅速かつ正確に自動化できるため、データサイエンティストやエンジニアはより価値の高いタスクにより多くの時間を割くことができます。

関連ソリューション
データベース・ソフトウェアとソリューション

IBMのデータベース・ソリューションを活用して、ハイブリッドクラウド全体のさまざまなワークロードのニーズに対応しましょう。

データベース・ソリューションの詳細はこちら
IBM Db2を使用したクラウドネイティブ・データベース

構造化データの保管と管理に高性能で拡張性と信頼性を備えたリレーショナル・データベースであるIBM Db2をご覧ください。IBM Cloud上でSaaSとして、もしくはセルフホスティングとしてご利用いただけます。

Db2の詳細はこちら
データ分析コンサルティングサービス

IBMコンサルティングと連携することで、企業データの価値を引き出し、ビジネス上の優位性をもたらす洞察を活用した組織を構築します。

分析サービスを発見する
次のステップ

IBMのデータベース・ソリューションを活用して、ハイブリッドクラウド全体のさまざまなワークロードのニーズに対応しましょう。

データベース・ソリューションの詳細はこちら IBM Db2の詳細はこちら