先日UPしました、pentahoデモサイトの「デモ コンビニ2」のコンテンツですが、
もっさり動作が許せないので、mysqlからinfobrightに変えてみました。
infobrightは最新の4.0.3です。
(infobrightのご紹介はこちら)
さすがinfobrightって感じの結果です。
おかげでさくさく動作になりました。
実際、どの程度速いのかMondrianのSQLログを見て、
確認した結果は以下の通りです。
(ちなみにMondrianのログ出力方法はこちら)
対象の分析レポート(ダッシュボード)は、以下の「エリア別月別商品売上TOP10」にて確認。

この分析レポートを表示する際、
複数のSQL→MDXが発行され、画面が表示されますが、
10件ほど発行されていたSQLの中から一番時間のかかっていたSQLを比べたところ、
■mysql:exec+fetch 4276 msec
■infobright:exec+fetch 46 msec
約93倍!
すばらしい^^
実際比べたSQLは以下です。
----------------------------------------------------
select
`エリアDIM`.`area_name` as `c0`,
`エリアDIM`.`area_id` as `c1`,
`エリアDIM`.`area_name` as `c2`,
`エリアDIM`.`tenpo_name` as `c3`,
`エリアDIM`.`tenpo_id` as `c4`,
`エリアDIM`.`tenpo_name` as `c5`,
`商品DIM`.`category_name` as `c6`,
`商品DIM`.`category_id` as `c7`,
`商品DIM`.`category_name` as `c8`,
`商品DIM`.`shohin_name` as `c9`,
`商品DIM`.`shohin_id` as `c10`,
`商品DIM`.`shohin_name` as `c11`,
`timeDIM`.`year` as `c12`,
`timeDIM`.`month` as `c13`
from
`エリアDIM` as `エリアDIM`,
`factTBL` as `factTBL`,
`商品DIM` as `商品DIM`,
`timeDIM` as `timeDIM`
where
`factTBL`.`tenpo_id` = `エリアDIM`.`tenpo_id` and
`factTBL`.`shohin_id` = `商品DIM`.`shohin_id` and
`factTBL`.`yyyymmdd` = `timeDIM`.`yyyymmdd` and
(`timeDIM`.`month` = '1' and `timeDIM`.`year` = '2010') and
(`エリアDIM`.`area_name` = '関東')
group by
`c0`, `c1`, `c2`, `c3`, `c4`, `c5`, `c6`, `c7`, `c8`, `c9`, `c10`, `c11`, `c12`, `c13`
order by
`エリアDIM`.`area_id` ASC,
`エリアDIM`.`tenpo_id` ASC,
`商品DIM`.`category_id` ASC,
`商品DIM`.`shohin_id` ASC,
`timeDIM`.`year` ASC,
`timeDIM`.`month` ASC
----------------------------------------------------
今回のこのコンビニ2データは
ファクトがおおよそ15万件。
各ディメンジョンがそれぞれ数十件程度です。
これくらいだとmysqlでもチューニング次第でもっと速くなるでしょうが、
infobrightは特になにもせずにこの速さなので、
楽ちんです。
しかもinfobrightはほぼmysqlと思ってよいので、
移行も簡単。
infobrightだからという特有の知識はほぼいりません。
分析レポートは、
mysqlであっても、
一度でもレポートを表示していれば
一度実行したSQLはメモリにキャッシュされ、
表示も早くなりますが、
分析レポートのように、自由にぐりぐり動かすようなものは
一度目から速いのに越したことはないですね。
是非infobrightも検討ください。
★Have a Great Open Source Day★
KSKソリューションズ Pentahoチーム
Tweet
もっさり動作が許せないので、mysqlからinfobrightに変えてみました。
infobrightは最新の4.0.3です。
(infobrightのご紹介はこちら)
さすがinfobrightって感じの結果です。
おかげでさくさく動作になりました。
実際、どの程度速いのかMondrianのSQLログを見て、
確認した結果は以下の通りです。
(ちなみにMondrianのログ出力方法はこちら)
対象の分析レポート(ダッシュボード)は、以下の「エリア別月別商品売上TOP10」にて確認。
この分析レポートを表示する際、
複数のSQL→MDXが発行され、画面が表示されますが、
10件ほど発行されていたSQLの中から一番時間のかかっていたSQLを比べたところ、
■mysql:exec+fetch 4276 msec
■infobright:exec+fetch 46 msec
約93倍!
すばらしい^^
実際比べたSQLは以下です。
----------------------------------------------------
select
`エリアDIM`.`area_name` as `c0`,
`エリアDIM`.`area_id` as `c1`,
`エリアDIM`.`area_name` as `c2`,
`エリアDIM`.`tenpo_name` as `c3`,
`エリアDIM`.`tenpo_id` as `c4`,
`エリアDIM`.`tenpo_name` as `c5`,
`商品DIM`.`category_name` as `c6`,
`商品DIM`.`category_id` as `c7`,
`商品DIM`.`category_name` as `c8`,
`商品DIM`.`shohin_name` as `c9`,
`商品DIM`.`shohin_id` as `c10`,
`商品DIM`.`shohin_name` as `c11`,
`timeDIM`.`year` as `c12`,
`timeDIM`.`month` as `c13`
from
`エリアDIM` as `エリアDIM`,
`factTBL` as `factTBL`,
`商品DIM` as `商品DIM`,
`timeDIM` as `timeDIM`
where
`factTBL`.`tenpo_id` = `エリアDIM`.`tenpo_id` and
`factTBL`.`shohin_id` = `商品DIM`.`shohin_id` and
`factTBL`.`yyyymmdd` = `timeDIM`.`yyyymmdd` and
(`timeDIM`.`month` = '1' and `timeDIM`.`year` = '2010') and
(`エリアDIM`.`area_name` = '関東')
group by
`c0`, `c1`, `c2`, `c3`, `c4`, `c5`, `c6`, `c7`, `c8`, `c9`, `c10`, `c11`, `c12`, `c13`
order by
`エリアDIM`.`area_id` ASC,
`エリアDIM`.`tenpo_id` ASC,
`商品DIM`.`category_id` ASC,
`商品DIM`.`shohin_id` ASC,
`timeDIM`.`year` ASC,
`timeDIM`.`month` ASC
----------------------------------------------------
今回のこのコンビニ2データは
ファクトがおおよそ15万件。
各ディメンジョンがそれぞれ数十件程度です。
これくらいだとmysqlでもチューニング次第でもっと速くなるでしょうが、
infobrightは特になにもせずにこの速さなので、
楽ちんです。
しかもinfobrightはほぼmysqlと思ってよいので、
移行も簡単。
infobrightだからという特有の知識はほぼいりません。
分析レポートは、
mysqlであっても、
一度でもレポートを表示していれば
一度実行したSQLはメモリにキャッシュされ、
表示も早くなりますが、
分析レポートのように、自由にぐりぐり動かすようなものは
一度目から速いのに越したことはないですね。
是非infobrightも検討ください。
★Have a Great Open Source Day★
KSKソリューションズ Pentahoチーム

