今回から2回にわたってOLAPに関するトピックについて解説します。今回は、MOLAPとROLAPについて解説したいと思います。
OLAPとは?
MOLAPとOLAPを説明する前にそもそもOLAPって何でしょうか。Online Analytical Processingの略ですって言われてもよくわかりません。OLAPとはキューブとも呼ばれます。じゃ、キューブって何でしょうか。
キューブとはスタースキーマを多次元データベースで実装した場合の名前になります。リレーショナルデータベースで実装したものはスタースキーマと呼ばれ、多次元データベースでスタースキーマを実装さればキューブと呼ばれます。
スタースキーマとは、復習になりますが、データベース上で分析しやすいようにした設計されたデータモデリングのことで、真ん中に分析するファクトをおいて、その周りに分析する切り口であるディメンションを配置したモデリングとなります。
例えば、売り上げ分析であれば、売り上げをファクトとしてその周りに製品や顧客などのディメンションを配置して製品別や顧客別などに売り上げを分析できます。モデリングのかたちがスターに似ていることからスタースキーマと呼ばれています。
ROLAPとMOLAPの違い
さてMOLAPとROLAPの違いですが、MOLAPはMultiple OLAPの略で、多次元データベースにデータをあらかじめて保存しておく方法です。BIなどのアプリケーションでデータにアクセスする際は多次元データベースにアクセスします。多次元データベースではデータが最適化されていますので非常に高速アクセスできます。
一方、ROLAPとはRelational OLAPの略で、キューブの定義だけをしておいて、アプリケーションがデータにアクセスするたびにオラクルなどのリレーショナルデータベースにアクセスのたびにデータを取得しに行きます。
当然、リレーショナルデータベースは複雑なクエリになるとパフォーマンスが落ちるのでレスポンスが悪くなります。
それぞれの利用方法
では、ROLAPのメリットってなんでしょうか。それは、MOLAPはリレーショナルデータベースが変更されるたびに多次元データベースにその都度データを読み直さないと行けません。その点、ROLAPは都度データをリレーショナルデータベースに読みにいくので再読みの必要はありません。リレーショナルデータベースがテラデータやネティーザなどであれば高速なのでROLAPなどが利用されます。
OLAP製品によってMOLAPやROLAPであったりするのでアーキテクチャに合わせて製品を選びましょう。ちなみにMicrosoftのSQL Sever Analysis Servicesでは設定でMOLAPやROLAPのどちらかが設定できます。
また、定型レポートなどは夜間バッチで作成できるためROLAPが利用され、仮説思考によるピボット分析ではMOLAPなどが利用されたりします。
今回は、ROLAPとMOLAPの違いについて説明しました。次回は、OLAPにアクセスするクエリ言語、MDXについて説明します。
0 件のコメント:
コメントを投稿