JasperServer でOLAPを試す [BI]
業務の合間をぬってJasperServer(Community edition)をもう少し本格的に立ち上げてみました。日本語の情報は圧倒的に無いので参考にしていただければ幸いです。今回はOLAP関連を利用するところまでを解説します。
○JasperServer でOLAPに到達するまでの手順
・ETLでファクトテーブル作成、DBにデータ登録
…なんですが今回はOLAPが目的なんで手抜きしてExcelでデータを整形し、MySQLにデータを投入しています。注意点としては文字コードがちゃんとUTF8になっているかところどころ確認してください。BI用のデータ作成は以下の記事が参考になります。
http://ascii.jp/elem/000/000/500/500107/index-2.html
・Jasper Analysis Schema workbenchでスキーマとMDX作成
データ構造(キューブ)を定義するスキーマXMLファイルと、その作成したデータ構造にクエリを行うMDXコマンドを作成します。正直ここは難関です。セルフサービスBIを目指すうえで最大の壁と言えるでしょう。
JasperはOLAPエンジンにPentahoのほうで開発しているMondrianを使用しています。実はそのOLAPエンジンにかますスキーマを作成するJasper Analysis Schema workbench も Pentahoで開発されている Schema workbenchというものを使用しています。なので情報を探すときはSchema workbench 関連を探すとよいです。スキーマが作成できたらクエリのためのMDXを作成します。なんか自動作成できると書いてあったんですが、自分の環境ではうまくいかなかったので生で記述していきました。。。言語としてはSQLに激似です。なんかOLAP Schemaに文字化けが入り込んで動かなかったりすることが自分の環境では発生したのでそんなときはエラーメッセージを見ながら直接XMLを直してください。
(参考)ステップバイステップでPentahoを構成!~いよいよキューブを作ってWebブラウザから閲覧開始!
http://ascii.jp/elem/000/000/503/503916/
(参考)多次元データベースクエリー言語「MDX」入門~MDX構文の基本文法(1)
http://codezine.jp/article/detail/4334
※MDXサンプル
select [Measures].[Sales] on columns,
NON EMPTY{([Shop].Children)}
ON rows from Sales where ([Time].[2010].[7])
・データソースの設定
JDBC経由でMySQLに接続できるように設定します。
・データコネクションの設定
上記データソースを使用してコネクションというものを設定します。
・Analysis Viewの設定
先ほど作成したスキーマとテストしたMDXを書き込みます。「;」は要らないよってエラーメッセージが出るかもしれません。
・Analysis Viewの閲覧
作成したAnalysis View を閲覧します。ようやくできた~(;o;。いろいろ見え方は変更したいんですが力尽きたのでノウハウが貯まったらまた記事にするかもしれません。
○習得にかかった時間
ちなみにざっくりと習得にかかった時間は以下の通りです。
・Schema workbenchの習得に1.5日
・基本的なMDXの習得に1.5日。。。
○まとめ
いかんせん文字情報が無いのとツールが優しくないです。現時点ではまだ万人のセルフサービスBIとはいかないと思いますが、でもこのようなツールがOSSで使えるようになってきていることはツールの選択肢が増え手軽に試す機会が増えるという意味でいい傾向だなって思います。
○JasperServer でOLAPに到達するまでの手順
・ETLでファクトテーブル作成、DBにデータ登録
…なんですが今回はOLAPが目的なんで手抜きしてExcelでデータを整形し、MySQLにデータを投入しています。注意点としては文字コードがちゃんとUTF8になっているかところどころ確認してください。BI用のデータ作成は以下の記事が参考になります。
http://ascii.jp/elem/000/000/500/500107/index-2.html
・Jasper Analysis Schema workbenchでスキーマとMDX作成
データ構造(キューブ)を定義するスキーマXMLファイルと、その作成したデータ構造にクエリを行うMDXコマンドを作成します。正直ここは難関です。セルフサービスBIを目指すうえで最大の壁と言えるでしょう。
JasperはOLAPエンジンにPentahoのほうで開発しているMondrianを使用しています。実はそのOLAPエンジンにかますスキーマを作成するJasper Analysis Schema workbench も Pentahoで開発されている Schema workbenchというものを使用しています。なので情報を探すときはSchema workbench 関連を探すとよいです。スキーマが作成できたらクエリのためのMDXを作成します。なんか自動作成できると書いてあったんですが、自分の環境ではうまくいかなかったので生で記述していきました。。。言語としてはSQLに激似です。なんかOLAP Schemaに文字化けが入り込んで動かなかったりすることが自分の環境では発生したのでそんなときはエラーメッセージを見ながら直接XMLを直してください。
(参考)ステップバイステップでPentahoを構成!~いよいよキューブを作ってWebブラウザから閲覧開始!
http://ascii.jp/elem/000/000/503/503916/
(参考)多次元データベースクエリー言語「MDX」入門~MDX構文の基本文法(1)
http://codezine.jp/article/detail/4334
※MDXサンプル
select [Measures].[Sales] on columns,
NON EMPTY{([Shop].Children)}
ON rows from Sales where ([Time].[2010].[7])
・データソースの設定
JDBC経由でMySQLに接続できるように設定します。
・データコネクションの設定
上記データソースを使用してコネクションというものを設定します。
・Analysis Viewの設定
先ほど作成したスキーマとテストしたMDXを書き込みます。「;」は要らないよってエラーメッセージが出るかもしれません。
・Analysis Viewの閲覧
作成したAnalysis View を閲覧します。ようやくできた~(;o;。いろいろ見え方は変更したいんですが力尽きたのでノウハウが貯まったらまた記事にするかもしれません。
○習得にかかった時間
ちなみにざっくりと習得にかかった時間は以下の通りです。
・Schema workbenchの習得に1.5日
・基本的なMDXの習得に1.5日。。。
○まとめ
いかんせん文字情報が無いのとツールが優しくないです。現時点ではまだ万人のセルフサービスBIとはいかないと思いますが、でもこのようなツールがOSSで使えるようになってきていることはツールの選択肢が増え手軽に試す機会が増えるという意味でいい傾向だなって思います。
コメント 0