ホーム
Topics
Presto
Presto、またはPrestoデータベース(PrestoDB)は、さまざまなデータソースから大規模なデータセットを照会できるオープンソースの分散SQL Queryエンジンです。組織は、これを活用して、データの問題に大規模に対処することができます。
組織の規模を問わず、オンプレミス・システムやクラウドなどのさまざまなソースからのビッグデータを迅速かつ効率的に分析できるのがPrestoの強みです。また、新しい言語を学習することなく、既存のSQL機能を使用して、ペタバイト規模のデータを照会するのにも役立ちます。
Prestoは、Hadoopやその他の一般的なデータ・ストレージ・プロバイダーにおいて、クエリの実行に最もよく使用されています。ユーザーは、複数のクエリ言語とデータベースやストレージへのインターフェイスを管理できます。
デジタル時代において、ビッグデータ分析は、規模や業界にかかわらず、急速に企業にとってのコア・コンピテンシーになりつつあります。ビジネス・プロセス、顧客の嗜好、市場動向に関する大量のデータを収集、保存、分析できる能力には、大きな価値があります。データ分析におけるPrestoの強みは、データが保存されている場所にかかわらず、データ・ウェアハウスやデータレイクなどの、より構造化されたシステムに最初にデータを移動する必要がなく、データを分析できる点にあります。
データレイクハウス戦略をデータ・アーキテクチャーに統合することで、AIの拡張やコスト最適化の機会など、そのパワーを実感してください。
Prestoは、複数のクエリ言語、サイロ化されたデータベース、さまざまな種類のストレージを扱うデータサイエンティストやエンジニアに人気のツールです。ユーザーは、データの場所にかかわらず、シンプルなANSI SQLインターフェイスを使用して、大量のデータをリアルタイムに照会できます。Prestoは、大量のデータに対してクエリを実行できるスピードとパフォーマンスにより、Facebook、Airbnb、Netflix、Microsoft、Apple(iOS)、AWS(AthenaとAmazon s3)など、世界をリードする企業に不可欠なツールとなっています。
Prestoのアーキテクチャーは、データの保存場所にかかわらず、データを照会できるように設計されています。したがって、他の類似のソリューションよりもスケーラブルで効率的です。Prestoのクエリを使用することで、エンジニアはデータを物理的に移動することなく、データを活用できるようになります。これは、組織が保存、分析する必要がある、増え続けるデータを処理するうえでき重要な機能です。
Prestoは、データサイエンティストやエンジニアが、ソースやストレージの種類にかかわらず、膨大なデータをインタラクティブに照会できるように設計されています。Prestoはデータを保存しませんが、照会のために別のデータベースと通信します。したがって、競合製品よりも柔軟性が高く、組織のニーズの変化に基づいて、クエリを迅速にスケールアップまたはスケールダウンできます。IBMのホワイトペーパーによると、ビジネス・インテリジェンス(BI)ワークロード向けに最適化されたPrestoは、企業がデータ・ウェアハウスの価格設定を最適化し、コストを最大50%削減するのに役立ちます。
Prestoのワークフローを導入する主なメリットをご紹介します。
コストの削減:データ・ウェアハウスのサイズとクエリを実行するユーザー数が増加するにつれて、企業のコストは急速に増加します。Prestoは、大量の小規模なクエリ向けに最適化されているため、コストを抑えながらも、あらゆる量のデータを簡単に照会することができます。また、Prestoはオープンソースであるため、デプロイに関連する料金はかかりません。膨大なデータを処理する必要がある企業にとっては、大きな節約につながる可能性があります。
拡張性の向上:エンジニアは、1つのデータレイク・ストレージ・システムに複数のエンジンと言語をセットアップするのが一般的ですが、将来的にプラットフォームの再構築が必要になり、ソリューションの拡張性が制限される可能性があります。Prestoでは、すべてのクエリがユニバーサルANSI SQL言語とインターフェイスを使用して実行されるため、プラットフォームの再構築が不要になります。さらに、Prestoは少量のデータにも、大量のデータにも使用でき、1~2ユーザーから数千ユーザーまで簡単にスケールアップできます。Prestoは、独自のSQLダイアレクトとAPIを備えた複数のコンピューティング・エンジンをデプロイし、エンジニアやデータサイエンティストのチームが処理するには複雑で、時間のかかるワークロードをスケーリングするための理想的なツールです。
パフォーマンスの向上:Hadoop上でSQLを実行する多くのクエリエンジンは、結果をディスクに書き込むように設計されているため、計算パフォーマンスに制約があります。Prestoの分散インメモリ・モデルでは、大規模なデータセットに対して、一度に大量のインタラクティブ・クエリを実行することができます。Prestoは、古典的な超並列処理(MPP)設計に従って、単一のWorkerノード上でできる限り多くのクエリをスケジュールし、インメモリ・ストリーミング・シャッフルを使用して、処理速度をさらに高めます。メモリ内でタスクを実行すると、ステージ間のディスクへの書き込みと読み取りが冗長になり、各クエリの実行時間が短縮されるため、競合ツールよりも待機時間が短くなります。
柔軟性の向上: Prestoは、Cassandra、Kafka、MySQL、Hadoop分散ファイルシステム(HDFS)、PostgreSQLなど、すべてのデータソースに対してプラグアンドプレイ・モデルを使用しています。したがって、このような機能を持たない他のツールに比べて、データソース間のクエリをより高速かつ簡単に行うことが可能です。また、Prestoの柔軟なアーキテクチャーは、単一のベンダーに限定されず、ほとんどのHadoopディストリビューションで実行可能で、最もポータブルなツールの1つです。
Prestoは、開発者やデータエンジニアが利用できる唯一のSQL-on-Hadoopではありませんが、クエリ機能をデータ・ストレージから切り離す独自のアーキテクチャーにより、最も柔軟なオプションの1つです。他のツールとは異なり、クエリ・エンジンをデータ・ストレージから分離し、コネクターを使用してクエリ・エンジン間の通信を行います。この機能により、エンジニアは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を使用すると、組織はさまざまなビジネス目的で大規模なデータ・リポジトリやNoSQLデータベースを迅速かつ効率的に照会できます。ここでは、その最も一般的なユースケースをいくつかご紹介します。
さまざまなビジネス目的での、迅速なデータ探索と簡単なレポート作成が可能になります。Hive、MongoDB、Cassandraなどの一般的なPrestoコネクターを使用することで、ユーザーは興味のあるデータを照会し、数秒で結果を得ることができます。Prestoのスピードと柔軟性により、ユーザーはどこにいても、データセットを反復処理して、さらに探索できるようになります。
Prestoが接続できる、最も広く使用されているデータ・リポジトリの一部は次のとおりです。
RedHatによる2021年のパフォーマンス評価によると、企業によるハイブリッドクラウド環境の利用拡大により、クラウド・ネイティブ・ストレージへの圧力が高まっており、「現在利用可能な最速の分散クエリ・エンジン」であるPrestoが理想的とされています。1ワークロードをオンプレミス環境からクラウドまたはハイブリッドクラウド・インフラストラクチャーに移行すると、パフォーマンスやスケーラビリティの向上など、多くのメリットがあります。Prestoのアーキテクチャーは、追加のプロビジョニング、構成、チューニングを行わずに数分で起動できるため、このような環境には強力な選択肢となります。
Prestoは、エンジニアがデータを準備し、極めて効率的な方法で特徴量エンジニアリングと抽出を実行し、 機械学習(ML)の準備が整っていることを確認するのに役立ちます。コネクターの数、SQLエンジン、クエリ機能を備えているため、大量のデータにすばやく簡単にアクセスしたいエンジニアに最適です。さらに、Prestoには集計などのML関数専用に設計されたツールがあり、データサイエンティストは教師あり学習の問題に対処するために、サポート・ベクター・マシン(SVM)の分類と回帰をトレーニングできます。
Prestoを使用すると、複数のソースからデータを照会して、BI目的で簡単にアクセスできる単一のレポートまたはダッシュボードを作成できます。Prestoはシンプルで使いやすいため、アナリストはエンジニアの助けを借りずにクエリを実行し、レポートを作成できます。
アナリストは、データ変換をすることなく、構造化データと非構造化データの両方に対して、データレイク上で直接クエリを実行できます。
データの収集と準備にはコストがかかり、非効率的である可能性があります。データサイエンティストは、データを分析する前のデータの収集と準備に、毎日何時間も費やすことがあります。Prestoにより、このプロセスを迅速かつ正確に自動化できるため、データサイエンティストやエンジニアはより価値の高いタスクにより多くの時間を割くことができます。
高速かつ柔軟なオープンソースSQL QueryエンジンであるPrestoが、貴社が必要とするインサイトにどのように役立つかをご覧ください。
IBM watsonx.dataについて詳しくは、構造化データと非構造化データを簡単に統合して管理できるデータ・ストアをご覧ください。
オープンデータレイクハウス・アーキテクチャーについて詳しく知り、データレイクの柔軟性とコスト上の利点とデータ・ウェアハウスのパフォーマンスとの関係をご覧ください。
IBM watsonx.dataが、今日の複雑なデータ環境の課題に対処し、ニーズに合わせてAIを拡張するのにどのように役立つかをご覧ください。
1 データベースとアナリティクスのための外部モード・パフォーマンス特性評価(ibm.com外部へのリンク)Red Hat(2021年1月18日)