2010年12月28日火曜日

MOLAPとROLAPって何?

今日はMOLAPとROLAPについて解説したいと思います。
MOLAPとOLAPを説明する前にそもそもOLAPって何でしょうか。
Online Analytical Processingの略ですって言われてもよくわかりません。
OLAPとはキューブとも呼ばれます。じゃ、キューブって何でしょうか。

キューブとはスタースキーマを多次元データベースで実装した場合の名前になります。
リレーショナルデータベースで実装したものはスタースキーマと呼ばれ、多次元データベースで
スタースキーマを実装さればキューブと呼ばれます。

スタースキーマとはデータベース上で分析しやすいようにした設計されたデータモデリングのことで、
真ん中に分析するファクトをおいて、その周りに分析する切り口であるディメンションを配置したモデリングと
なります。
例えば、売り上げ分析であれば、売り上げをファクトとしてその周りに製品や顧客などのディメンションを
配置して製品別や顧客別などに売り上げを分析できます。
モデリングのかたちがスターに似ていることからスタースキーマと呼ばれています。

さてMOLAPとROLAPの違いですが、MOLAPは多次元データベースにデータをあらかじめて保存しておく方法です。
BIなどのアプリケーションでデータにアクセスする際は多次元データベースにアクセスします。
多次元データベースではデータが最適化されていますので非常に高速アクセスできます。
一方、ROLAPとはキューブの定義だけをしておいて、アプリケーションがデータにアクセスするたびにオラクルなどの
リレーショナルデータベースにアクセスのたびにデータを取得しに行きます。
当然、リレーショナルデータベースは複雑なクエリになるとパフォーマンスが落ちるのでレスポンスが悪くなります。。。
では、ROLAPのメリットってなんでしょうか。
それはMOLAPはリレーショナルデータベースが変更されるたびに多次元データベースにその都度データを読み直さないと
行けません。その点、ROLAPは都度データをリレーショナルデータベースに読みにいくので再読みの必要はありません。
リレーショナルデータベースがテラデータやネティーザなどであれば高速なのでROLAPなどが利用されます。

OLAP製品によってMOLAPやROLAPであったりするのでアーキテクチャに合わせて製品を選びましょう。
ちなみにMicrosoftのSQL Sever Analysis Servicesでは設定でMOLAPやROLAPのどちらかが設定できます。

また、定型レポートなどは夜間バッチで作成できるため、RLAP、
仮説思考によるピボット分析ではMOLAPなどが利用されたりします。

ある本にはMicrosoftのSQL Sever Reporting ServicesがROLAP, Analysis ServicesがMOLAPと書いてありました。

0 件のコメント:

コメントを投稿