オンデマンドのMPPとは

オンデマンドMPPデータベースは、クラウドにホスティングされる分析データウェアハウスで、ワークロードの難易度に応じて動的にサイズを調整します。

コンピューティングのリソースをクエリのサイズと複雑さに合わせて自動的にスケーリングするために、これらのデータベースのアーキテクチャはストレージをコンピューティングと分離する点が特徴的です。ストレージについては、実質的に容量に制限のない膨大な共有クラウドインフラストラクチャを活用します(AWS S3Azure Storage、Google Cloud Storageなど)。

ほとんどの場合、ウェアハウスで一般的に対応可能な半構造化データや非構造化データ、構造化データを処理する能力を備えています。

エンドユーザーから見てオンデマンドMPPデータベースは非常に複雑ですが、実のところ運用はかなりシンプルです。その理由として、物理的ハードウェアおよび複雑な技術的プロセスのほとんど(またはすべて)をクラウドプロバイダーが引き受けることが挙げられます。これにより、データのアップロードとクエリでシームレスなユーザーエクスペリエンスを確実に提供できます。

ストレージと処理能力を高めるためにユーザーがクラスタのサイズを拡張しなければならないセルフマネージドMPPデータベースと比べて、オンデマンドのデータベースはスケーリングが簡単で、なかにはこのプロセスを自動化している製品もあります。ほとんどの場合は運用業務を外部に委託することでユーザーの負担が軽くなりますが、上級ユーザーにとってはカスタマイズの選択肢が限られる可能性があります。

オンデマンドMPPデータベースが実際に役立つ事例

データのサイズに左右されない一貫したパフォーマンス

オンデマンドMPPデータベースは、クエリやデータセットのサイズにかかわらずクエリを効率的に実行できるよう、必要な数のコンピューティングリソースを取得するよう設計されています。エンドユーザーからすると、クエリの処理が遅くなることはありません。

使いやすさ

こうしたデータベースのハードウェアや複雑な技術的手順のほとんどは、エンドユーザーからは見えないように抽象化されています。このため、エンドユーザーは開発や運用のサポートなしに、それらを操作して管理することができます。

最小限の管理

基本的にストレージの制限がなく、コンピューティングリソースを簡単に拡張または縮小することができるため(自動設定でない場合)、平均的なセルフマネージド型のソリューションに比べてこのシステムは煩雑な手作業をほとんど必要としません。

従量課金制

オンデマンドMPPデータベースの料金体系は製品によって異なりますが、一般的に高額の費用を事前に払うのでなく、使用量に基づいた変動料金制です。この料金体系と使いやすさが相まって、とりわけ試験的に使ってみるのに適した選択肢となっています。

代表的なオンデマンドデータベースソリューション

オンデマンドMPPデータベースのアーキテクチャ

ストレージおよびコンピューティングリソースの分離

オンデマンドMPPデータベースとマネージドMPPデータベースの大きな違いは、オンデマンドデータベースではストレージがコンピューティングリソースとは別になっている点です。

セルフマネージドMPPデータベースはクラスタサーバー(ノード)で構成され、効率化のために各ノードにストレージとコンピューティングの機能を共存させています。これにより、ネットワーク構築のコストとレイテンシを低く抑えられますが、処理能力を拡張する際にストレージもスケールアップしなければなりません(その逆も同じ)。このタイプのアーキテクチャは、各ノードに専用のコンピューティングとストレージのリソースが含まれることから、「シェアード・ナッシング・アーキテクチャ」と呼ばれます。

それとは対照的にオンデマンドMPPデータベースは、インスタンス全体でストレージとコンピューティングのリソースを共有します。これにより、クエリの数とサイズに合わせて双方をシームレスに拡張することが可能です。このアーキテクチャでは、データサイズの影響を受けずに安定して高速のパフォーマンスを達成できると同時に、コンピューティングクラスタを増やして、データを移動せずに同じ保存データにアクセスすることができます。

シームレスに拡張可能なストレージ

オンデマンドMPPデータベースはノードのクラスタ全体にデータテーブルを分散させるのではなく、Amazon S3Microsoft Azure StorageGoogle Cloud Storageといった膨大な共有クラウドオブジェクトストアをストレージの受け入れ先として活用します。このようなオブジェクトストアを利用するメリットのひとつとして、構造化データ、半構造化データ、非構造化データを格納できる点が挙げられます。このデータを処理する能力はデータベースごとに違いますが、すべてのオンデマンドMPPデータベースは少なくとも非構造化データにアクセスすることができます。すなわち、それに対応するための機能を将来的に追加できるということです。

こうしたオブジェクトストアは、ほぼ無限に拡張可能です。ストレージが各ノードで利用可能なディスク容量に制限されるマネージド型のMPPアーキテクチャとは異なり(ストレージの上限に達したときは手動でサイズ変更が必要)、S3のような膨大な分散型オブジェクトストアは常にデータに必要な容量を追加し、データの増加とともに自動的に拡張するよう設計されています。パフォーマンスへの影響はほぼありません。

シームレスに拡張するコンピューティング能力

ストレージをコンピューティングリソースから分離することで、これらのデータベースでは個々のクエリに合わせて処理能力をスケーリングすることができます。弾力性に優れたデータベースは、数百または数千もの個別のノードからなる大規模な処理用のインフラストラクチャを活用できるほか、ノードの処理能力を個々のクエリに一度に数秒間、集中させることが可能です。

こうしたクエリに必要な処理能力が数百ものノードに分散していると、クエリのサイズに関係なく、クエリが返されるまでの時間は安定して短くなります。つまり、単純に数百万行を計上するのであれ、BigQueryを使用して1000億行のテーブルに高価なREGEXを実行したり、S3に保存されたエクサバイトを上回るデータにRedshift Spectrumを用いてクエリを実行する場合でも、クエリが返ってくるのに数時間や数日かかることはなく、数秒あるいは数分で済みます。

オンデマンドMPPデータベースの制約

オンデマンドMPPデータベースは、シンプルで効率的というメリットと引き換えに、柔軟性とカスタマイズ機能を犠牲にしています。そのため、オンデマンドMPPデータベースでカスタマイズ機能に不満を感じるのであれば、おそらくセルフマネージドMPPデータベースを使用するべきでしょう。同様に、セルフマネージドMPPデータベースのメンテナンスに欠かせない専用リソースに圧倒されている場合は、代わりにオンデマンドデータベースを検討することをお勧めします。

メリットと制約のどちらか一方を選ばなければならない理由は、これらのデータベースのアーキテクチャにあります。マネージドMPPデータベースのプランでは、消費者に個別のサーバー(またはその一部)をレンタルあるいは販売します。消費者はそのサーバーを自由に構成してカスタマイズすることが可能です。一方、オンデマンドデータベースは膨大なクラスタの処理能力をクエリ実行時に消費者にレンタルしますが、個々のマシンを消費者にレンタルするわけではないためカスタマイズ機能が制限されます。

二つ目の制約は可視性です。S3やGoogle Cloudといった大規模なバケット内のそれぞれのノードにアクセスする権限は、消費者にはありません。そのため、データが実際にどこにあるのか把握するのはとても困難です。個々のクエリの構造化を除けば、クラスタの最適化やクエリプランのチューニングに関して、データベース管理者にさほど権限はありません。

オンデマンドMPPデータベースの最適化

これらのデータベース用の最適化ツールは、すべてまたはそのほとんどがエンドユーザーの目には見えません。また、管理はデータベースベンダー自身が行うため、弾力性に優れたデータベースでパフォーマンスを最適化することは非常に稀です。

つまり、これらのデータベースはほとんどチューニングしなくても優れたパフォーマンスを発揮します。ただし、一般的に料金は従量制であるため、コストには気をつけなくてはなりません。各データベースが、ワークロードのサイズと複雑さ(そしてコスト)を低減するためにさまざまな戦略を用意しています。詳しい内容については、それぞれのガイドでご説明します。

アナリティクスを快適に

ビジネスインテリジェンス、ビッグデータ分析、顧客の360°ビュー。
Lookerはお客様のどんなニーズにもお応えします。当社のデータエキスパートにご相談ください。

デモをリクエスト