【Pentaho Lab】トレーニング3日目(OLAP分析ほか)の復習

 pentahoトレーニングの最終日。本日はOLAP(online analytical processing)の説明が中心でした。iDempiereを題材に復習しておきたいと思います。

 

http://mondrian.pentaho.com/

 

 まずは、予備知識として、OLAP分析はMondrian(モンドリアン)と呼ばれるJavaで書かれたROLAP(Relational Online Analytical Processing)エンジンがあり、Pentaho(ペンタホ)はそれを利用しているという事です。

 そしてもうひとつ、PnetahoではSchema(スキーマ)と呼ばれるOLAP分析の構造を定義するのに、pentahoではSchema Workbench(スキーマ ワークベンチ)というツールを使います。

Schema Workbench(スキーマワークベンチ)

Schema Workbench(スキーマワークベンチ)のインストール

 Pentahoでは、OLAP分析に必要となるCube(キューブ)の作成にSchema Workbench(スキーマ ワークベンチ)を使用します。スキーマワークベンチのインストールは簡単で、下記のサイトよりダウンロードして解凍するだけです。

 

http://sourceforge.net/projects/mondrian/files/schema%20workbench/

 

 2013年6月27日現在の最新の安定板は3.5のようなので、リンク先の"psw-ce-3.5.0.zip"をダウンロードして、インストール先に解凍します。私はC:の直下にpentahoフォルダを作成し、その中に解凍しました。

 

 

workbench.batへの-Dfile.encoding設定

 Pentahoの各クライアントの起動ファイルには-Dfile.encoding="UTF-8"と指定しておかないと、レポートのパブリッシュ時などに思わぬエラーが発生するそうです。

 -Dfile.encoding="UTF-8"の記述を追記する必要があるファイルは下記のファイルだそうです。

\pentaho\design-tools\data-integration\Spoon.bat

\pentaho\design-tools\metadata-editor\metadata-editor.bat

\pentaho\design-tools\report-designer\report-designer.bat

\pentaho\design-tools\schema-workbench\workbench.bat

 

"JAVA_OPTION"のパス指定の所で、xmxやMaxPermSizeの直後に追記します。

※Linux環境の場合は拡張子は".bat"ではなく".sh"になります。

※上記はトレーニング環境のパスですので、環境によって読み替えて下さい。

workbench.batの例

set PENTAHO_JAVA=java

call "%~dp0set-pentaho-env.bat"

 

"%_PENTAHO_JAVA%" -Xms100m -Xmx500m -Dfile.encoding="UTF-8" -cp "%CP%" -Dlog4j.configuration=file:///%ROOT%\.schemaWorkbench\log4j.xml mondrian.gui.Workbench

 

rem End workbench.bat

 

 

Schema Workbench(スキーマワークベンチ)の起動

 wotkbench.batをダブルクリックして、Schema Workbenchを起動させます。今までのpentahoのクライアントツールと比べるとシンプルな画面が表示されます。

初期設定:データソース定義

オプション(Options)の初期設定で、データソースとなるデータベースへの接続設定を行います。

 Schema WorkbenchのコミュニティーエディションにはJDBCドライバがいっさい用意されていな感じですので、下記のフォルダに、PostgreSQL用のJDBCドライバを入れておく必要があります。

 

/pentaho/schema-workbench/drivers

 

テストボタンを押して、接続が確認できれば、初期設定は終了です。

スキーマとキューブの作成

Schme(スキーマ)の作成

ファイル -> 新規作成 -> スキーマ

 

そうすると、画面左側のウィンドウにSchema(スキーマ)が表示されます。

Schemaの設定
Schemaの設定

Cube(キューブ)の作成

 ツールバーにある"キューブ追加"アイコンをクリックするか、Shcemaを右クリックしてキューブを追加します。1つのスキーマの中に複数のキューブを作成する事ができます。

キューブの追加
キューブの追加
Cube(キューブ)の設定
Cube(キューブ)の設定

Fact Table(ファクトテーブル)の作成

 1つのCube(キューブ)には、必ず1つのファクトテーブル(Fact Table)が必要になります。ですので、Cubeを追加したら、追加したキューブを右クリックして"Add Table"メニューでFact Tableを追加して行きます。

 ここで指定するテーブルは、"ファクトテーブル(Fact Table)"と呼ばれる分析する対象のデータが入っているテーブルになります。ERPでは会計仕訳のデータを全部1つのテーブルの中に入れて"大福帳テーブル”とか"大福帳型データベース"とか言われたりしますが、Fact Tableも同じようなイメージだと私は理解しています。

Dimension(分析軸)の作成

 Fact Tableを作成したら、次にDimension(ディメンション)と呼ばれる分析軸を設定します。Dimensionには、スキーマ内の1つのCube(キューブ)だけで使用するDimensionと、スキーマ内のすべてのCubeで共有するShared Dimensionの2種類あります。

 作成したDimension(ディメンション)をクリックして開くと、ヒエラルキー(Hierarchy)が出来ているので、そのヒエラルキーを右クリックしてDimension Tableを追加して行きます。

 ヒエラルキー(Hierarchy)に戻り、ヒエラルキーの設定を行います。

 

 設定を行ったヒエラルキーを右クリックして”レベル”を追加して行きます。

 これでとりあえず1つ分析の軸ができました。

Measure(測定値)の作成

 分析軸が1つできたので、つぎに分析対象となる数値をメジャーとして定義します。

 

 キューブに戻り、右クリックしてメジャー追加を行います。

パブリッシュ

 作成したスキーマはPUCにパブリッシュする事により、アナライザーレポートでOLAP分析する事ができます。

Publish Passwordは下記のファイルに記述されています。

../biserver-ee/pentaho-solutions/system/publisher_config.xml

Pentaho Credentialsには、PUC(Pentaho User Console)のユーザーを設定します。PECのユーザーでは無いので注意して下さい。

 JNDIの設定をあらかじめPECで行っておく必要があります。JNDIの設定が、ちゃんとできていないと、Publishに成功しても、アナライザーレポートをPUCで見る事はできません。

 

 

 

Administration Console(PEC)のインストール

 Administration Consoleは、Pentaho Enterprise Console(PEC)ともいい、コミュニティーエディション(CE)版とエンタープライズエディション(EE)版があります。CE版とEE版では機能が大きく異なり、EE版では、ブラウザ上で各種設定を行う事ができますが、CE版では自分で該当するファイルを開いて設定する必要があります。

 インストールが完了したら、PECを起動する事ができますが、Window系の場合は、start-pec.batで起動させる際に、右クリックして"管理者として実行"をしないと変な挙動をする事があります。ログイン後、サーバーからの反応が無い場合などに、試してみて下さい。

 PECにログインするためのベーシック認証のIDとパスワードは次の通りです。

デフォルトユーザー名:admin

デフォルトユーザーパスワード:password

コミュニティーエデイション(CE)版のAdministration Console(Enterprise Console)

Administration Console CE
Administration Console CE

エンタープライズエディション(EE)版のAdministration Console(Enterprise Console)

PECのJNDIの設定

 Schema Wrokbenchで作成したスキーマをPUCのアナライザーレポートで使用するためには、PECでJNDIを設定し、Schema Wrokbenchでパブリッシュする際に、そのJNDIを正しく指定する必要があります。ここではPECでのJNDIの設定について説明します。

 PECでのJNDI設定は、AdministrationメニューのDatabase Connectionsタブで行います。

Database Connecitonsに既存のJNDIが一覧表示されていますので、新規に追加する場合は"+(プラス)"ボタンを押して表示されるポップアップウィンドウで設定します。