Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# データベース

クラウドデータウェアハウジングのコストインテリジェンス

コストとパフォーマンスに重点を置いてデータベースを最適化する。

― 1 分で読む


クラウドデータウェアハウスクラウドデータウェアハウスのコスト最適化理を実現する。クラウドでコスト効率の良いデータベース管
目次

長年にわたり、データベースに関する研究は、セットされたリソースを使ってうまくパフォーマンスを出すことに主に焦点を当ててきたけど、最近ではアプリケーションがパブリッククラウドに移行するにつれて、データベースを最適化する際にコストも考慮することが重要になってきた。

この記事ではコストインテリジェンスの概念を紹介し、これを取り入れたクラウドデータウェアハウスの設計について話すよ。データシステムにおいてコストインテリジェンスを実現するための主な課題は、リソースを自動的にデプロイすることと、コストに焦点を合わせてデータベースをチューニングすることの2つだ。

ここで提案されているアーキテクチャは、現在クラウドデータウェアハウスに欠けている要素を解決することを目指している。それぞれの新しい部分が、この重要な分野でのユニークな研究機会を開くんだ。

経済的な観点から見ると、データベースは製品やサービスのように機能する。ユーザーはデータベースサービスへのアクセスに対してある程度の価格を支払い、その対価として有用なクエリ結果を受け取る。これが収益につながるのが理想。こうしたサービスから得られる満足度は、性能の良さに密接に関係してる。より効果的なデータベースはユーザーの利益を最大化するんだ。

従来のデータベース研究は、コストを考慮せずパフォーマンスを向上させることに注力していた。これは、データベースが主に専用の固定コストのマシンで運用されていたためうまくいっていた。サーバーやソフトウェアの購入などの初期コストが大きかったけど、電気代などの運用コストは比較的小さく、あまり目を向けられなかった。

でも、今はほとんどのデータベースアプリケーションがクラウド上にあるから状況が変わった。クラウドサービスの「従量課金モデル」は、初期コストを抑え、運用費用をうまくコントロールするのを可能にしている。この変化により、コストを削減したいという顧客の関心も高まっている。今は、パフォーマンスはただの要件であって、最適化する目標じゃなくなってきてる。ユーザーは特定のパフォーマンスレベルを維持しながらコストを最小化することを求めてるんだ。

これからは、データベースの最適化議論でパフォーマンスと同じくらいコストを重視する必要があるってことが明らかだ。クラウドの柔軟性で、組織はコストを固定要因じゃなく調整可能な要因として扱えるようになった。コスト効率はパフォーマンスと同じくらい重要だし、どちらもユーザーの利益を最大化するのに直接関与してる。

さらに深く掘り下げる前に、ユーザーが観察するコスト(UOC)とプロバイダーが観察するコスト(POC)の2種類のコストを区別することが大事だ。ユーザーにとってコストは、クラウドサービスからの請求に反映され、タスクを完了するために割り当てられたリソースが示される。でも、UOCを単純に合計しても、サービスプロバイダーが直面するさまざまな運用コストを反映するわけじゃない。

プロバイダーはしばしば、効率を最適化するために仮想化されたリソースを管理してる。だから、UOCはユーザーが市場競争力を理解するために重要だけど、POCを改善することはサービスプロバイダーの利益率にとってカギなんだ。この記事では、UOCを最適化すること、つまりクエリ実行中のリソース使用と無駄を削減しつつ、パフォーマンスが合意された限界内に収まるようにする必要性を強調している。

コストインテリジェントなデータベースの目標は、さまざまな負荷のもとでパフォーマンスとコストの最適バランスを保つために自動的に適応することだ。つまり、データウェアハウスは動的に自分を調整して、ユーザーがリソース設定を手動で調整することなく、パフォーマンスとコストの好みを定義できるようにする必要があるんだ。

コストインテリジェンスの必要性

パブリッククラウドサービスのような柔軟な価格モデルでも、ユーザーはリソースの柔軟性を効果的に活用してコストを抑えるのが難しいってことが多い。このセクションでは、現状のクラウドシステムにおけるコスト最適化の課題を強調するよ。

最初の課題は、クエリ実行中の自動リソースデプロイだ。例えば、Snowflakeのインターフェースを使うと、ユーザーは定義されたオプションから自分の計算クラスターのサイズを手動で選ぶ必要がある。これだと、ユーザーがワークロードのリソース要件を過大評価してしまうことが多く、効率的なリソース使用につながらない。クラスターのサイズは固定されてることが多く、データや複雑性が変わってもタスク実行中には調整されない。

この柔軟性の欠如は、ユーザーが最もコスト効果のある設定に到達するのを妨げる可能性がある。例えば、並列処理のために多くのマシンを使用すると、性能が大幅に向上することもあるけど、特定のデータベース操作がリソースを増やしても向上しない場合、時間を改善することなくお金を無駄にしてしまう。

二つ目の課題は、バックグラウンドでの自動データベースチューニングだ。これは、システムがインデックスやマテリアライズドビューを追加するなどのチューニングアクションについてスマートな決定を下せるようにすることを含む。チューニング用のツールは存在するけど、コストを意識した設計になっていないことが多く、ユーザーが特定のチューニングアクションの利点や欠点を理解するための明確なメトリックを提供することが少ない。

こうしたオンラインとオフラインのコスト最適化の課題の結果、ユーザーはクラウド費用を効果的に管理するのが難しくなっている。ここでコストインテリジェントシステムの考え方が登場する。そんなシステムは、自動的に自分を調整し、パフォーマンスとコストのベストバランスを提供できるようにするんだ。

コストインテリジェントなクラウドデータウェアハウスの設計

コストインテリジェントなデータウェアハウスは、ユーザーがパフォーマンスと予算の制約を指定するだけで、システムが効率的かつ最小コストで結果を提供する方法を考え出すことができる。提案された各チューニングアクションは、明確な利点とコストを提示し、ユーザーが専門的な知識なしに決定しやすくするんだ。

リソースデプロイメントとコスト指向の自動チューニングの問題に対処するために、コストインテリジェンスに焦点を当てたクラウドデータウェアハウスを構築するための効果的なアーキテクチャを作るのに役立つ解決策を示すよ。

自動リソースデプロイ

分析クエリを実行するためにどれだけのコンピュートノードを割り当てるべきかを探求しつつ、コストを低く抑え、パフォーマンス要件を満たす必要がある。クラウドデータベースは、ユーザーが望むクエリパフォーマンスを達成しながらコストを最小化できる構造を提供する必要がある。この話では、クエリのための適切なハードウェアを選ぶことは含まれていない。

典型的なアーキテクチャには、ユーザーデータを保持し、迅速なアクセスに適した形式で保存するストレージ層と、必要に応じてユーザーが仮想マシンにアクセスできる弾力的なコンピュート層が含まれる。

課題は、複雑なクエリのさまざまな部分に対して最適な並列度を決定することだ。高度な計画手法は存在するけど、初期の見積もりが不正確だと最良の結果を得られないこともある。だから、各クエリの段階がデフォルトのノード数で始まり、実行中にリアルタイムフィードバックに基づいて調整されるダイナミックなアプローチが役立つかもしれない。

提案された解決策は、静的な計画と動的な調整を組み合わせてる。最初は静的手法でユーザー定義の制約に基づいて並列度を設定し、クエリが実行されると、システムは進行状況を監視し、必要に応じて調整して、パフォーマンスが最小コストで達成されるようにする。

コスト推定

提案されたアーキテクチャの重要な部分は、異なる実行プランに関連するコストを正確に予測できる効果的なコスト推定子だ。この推定子は、クエリ実行に関与する論理タスクや物理リソースを考慮する必要がある。

このコスト推定子が正確で、リソースに優しく、予測を説明できることが大事だ。ユーザーがなぜその決定がなされたのか理解できると、データベースの管理が効率的になる。

今までのモデルは、主にジョブのパフォーマンスを予測することに焦点を当てていたけど、複雑なクエリのさまざまな段階の詳細な推定を提供していないことが多い。機械学習を使った予測は魅力的に見えるけど、効果的なチューニングには必要な説明性や柔軟性が欠けていることが多い。

解決策は、クエリ内の各オペレーターを考慮できるオペレーターモデルとクエリレベルのシミュレーターを組み合わせることだ。ほとんどのオペレーターには、よりシンプルな数学的な定式化で十分であり、複雑なオペレーターには特定のワークロードに合わせた事前にトレーニングされた回帰モデルが利益をもたらすことができる。

二重目的クエリ最適化

コストインテリジェントなクラウド環境では、クエリ最適化はパフォーマンスとコストの両方を同時に考慮する必要がある。つまり、最適化はレイテンシと予算のユーザー定義の制約に対応しつつ、効果的で迅速かつ手頃なプランを生み出すことだ。

管理しやすくするために、すべての可能なトレードオフを示す複数のプランを生成する代わりに、ユーザーは望ましいレイテンシや予算のような好みを示せばいい。これにより、最適化が単一の目的問題に絞られ、ユーザーのニーズに基づいた最適なフィットを見つける。

並列度の計画と実行プロセスのステップの計画を分けることで、探索の複雑さを減らすことができる。これは必ずしも最良の全体計画を生み出すわけではないけど、効率は維持される。

タイムリーなパフォーマンスとコストのトレードオフを実現するために、オプティマイザーはさまざまなプラン構成を探求でき、特にジョインのような複雑な操作ではリソースのより良い使用が可能だ。

ダイナミッククラスターサイズ変更

リソースを静的に割り当てると、初期の仮定が不正確な場合に問題が生じることが多い。このため、クエリ実行中にクラスターをダイナミックに監視し、サイズを変更することで、パフォーマンスを最適化し、コストを最小限に抑えることができる。

既存の戦略は通常、固定の間隔でクラスターのパフォーマンスを評価するけど、複雑なクエリにはうまく機能しないことが多い。代わりに、個々のパイプラインのパフォーマンスに焦点を当てることで、リソースの割り当てをより良くして無駄を減らすことができる。

DOPモニターは、リアルタイムで実行パフォーマンスを追跡し、必要に応じてリソースの割り当てを調整できる。もしデータパイプラインのいずれかに問題が発生したら、このシステムはダイナミックにリソースを調整して、設定されたパフォーマンス基準を維持できる。

コスト指向の自動チューニング

クラウドのデータベースのチューニングを自動化するのは難しい課題だけど、コストを共通の指標として利用することで、チューニングアクションを系統的に評価しやすくできる。クラウドリソースをうまく活用し、コストへの影響を考慮することで、パフォーマンスを向上させつつコストを過度に負担させないチューニングアクションを適用できる。

例えば、マテリアライズドビューを開発すれば特定のクエリの速度を上げることができるけど、それを維持することにもコストがかかる。メンテナンス用に別のリソースを割り当てる能力があれば、他の操作を妨げずにパフォーマンスの向上が可能になる。

チューニングアクションの財務的影響の予測は正確で、歴史データに基づく予測モデルに基づくべきだ。統計サービスがさまざまなワークロードから関連データを集めて、将来の予測を強化することができる。

ロバストな統計サービスを作るには、リソース使用を監視しながらデータを効率的に収集する軽量のプロファイリングツールが必要だ。クラウドサービスにおけるマルチテナンシーを考慮することで、共有リソースの割り当てを理解することが重要になり、複雑さが増す。

自動チューニングプロセス全体は、What-ifサービスのサポートを得て、チューニング提案を評価し、将来のワークロードを予測し、特定のアクションがコスト的に有益かどうかを判断することで完了できる。

結論

この記事では、クラウドベースのデータ管理システムにおけるコストインテリジェンスの必要性を強調している。自動リソースデプロイメントとコスト指向のチューニングに焦点を当てることで、将来のクラウドデータウェアハウスは、ユーザーがコストを効果的に管理しつつ必要なパフォーマンスレベルを確保するための道具を提供できる。

提案されたアーキテクチャと方法は、リソースの効率的な使用とユーザーにとっての単純な意思決定を促進するシステムの構築を目指しており、より良いクラウドデータ管理の実践への道を開くことが期待されている。この探求が、研究者たちの間でこうした課題に一緒に取り組む興味を引き起こすことを願ってる。それにより、クラウドにおけるよりスマートでコスト効率の良いデータベースソリューションにつながることが期待される。

著者たちからもっと読む

類似の記事