mysqlとInfoBrightを比較してみる

| | コメント(0) | トラックバック(0)
mysql5.0とInfoBright3.4.1に同様のレコード数をINSERTし、
同様のキューブを作成。
アナライザーレポートにてレスポンスを比較してみました。

実際は発行されるSQLの実行速度を比較してます。
基本的にボトルネックはDBのレスポンスですので、SQLを比較。
画面表示まではMDXも実行されますが、こちらは一瞬なのでSQLのみ対象としてます。
MondrianのSQLログの設定はこちら

比較した操作方法や、データ内容の詳細および結果レポートを弊社デモ用サーバにて見れるようにしてますので
こちらをご覧ください。
http://www.pentaho-japan.com/pentaho/Login

user:demo
pass:demo

にてログインしていただき、
「mysql-IB比較結果分析」を参照ください。

結果や考察は以下に記載してますが、
このデモ用サーバにある「結果」を軸を変えたりフィルタリングしたりして
参照してみてください。


【結果】  (単位:秒)
20110131kekka.jpg


【考察】
・mysqlよりInfoBrightのほうが10倍~20倍ほど高速。
・mysql・InfoBrightに限らず、ディメンジョンテーブルのあるスタースキーマ型のほうが高速。
・mysqlのINDEX有(エリアIDに付与)とINDEX無について比較したが、INDEXがあるほうが高速とはかぎらなかった。むしろ遅い場合も。
(当然、単純な合計(操作1・2)は速いが。)
・mysqlのディメンジョン有・365万件で、最大1分ほどかかるため、遅すぎる。
 (1分超えると利用者は待っていられないし次やることを忘れそうなので現実的ではない)

【結論】
・数千万件以上の大量データの場合はやはりInfoBrightがおすすめ。
・ディメンジョンテーブルを利用し、スキーマワークベンチにてキューブの設定を行う方が高速。
・ハードのスペックにもよるが、mysqlであれば100万件レベルが限界かも。

【その他】
・操作7はSQLを発行しないので瞬時に表示されるため「-」表示。
・PUCの「新規データソース」から「データソースウィザード」にてデータソースを作成する方法は
 簡単ではあるが、あくまで簡易的な位置づけとし、多くとも100万件程度のものを使用することをお勧めします。

理由は以下
datawiz.jpg

上記のようなSQLで、あるテーブルから取得した値を分析する場合、
Mondrianから発行されるSQLは
---------------------------------------------------------------------
select `FACT`.`category_name` as `c0`
from (select * from testTable) as `FACT`
---------------------------------------------------------------------
という感じで、
どのSQLでもfrom句が毎回
(select * from testTable)
となり、全件取得してくるためかなり遅いです。

なので、
データソースウィザードから作成する場合は、
対象のテーブルの件数が多くても、
ある程度絞った上で分析用のキューブを作成するってのがよいかと思われます。
(例えば、売上ファクトテーブルは10年分で1000万件以上とかでも、
 一年分にwhere句で絞って100万件程度を対象にするなど)


★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム

トラックバック(0)

このブログ記事を参照しているブログ一覧: mysqlとInfoBrightを比較してみる

このブログ記事に対するトラックバックURL: http://www.pentaho-partner.jp/mt/mt-tb.cgi/208

コメントする