ステップバイステップでPentahoを構成!
DWHを自分で作ろう!環境構築からデータ登録まで
2010年02月26日 09時00分更新
小さなお菓子メーカーに勤める新入社員の津井田くんは、社長の一声でBI導入検討を任されることに。お目付役の土須先輩とともに、BIの勉強を始めます。
今回は、オープンソースのBIソフト「Pentaho」を、自分で設定してみます
土須 お! またパソコン弄りか。本業も忘れるなよ-。
津井田 ナニ言ってんですか。これも仕事なんですけど。むしろ先輩がナニもしてないんですが。
土須 アレか? Pentahoだっけ。こないだインストールしてちょっといじったの(関連記事)、面白かったな。
津井田 そうです。よく覚えてましたね。これからいよいよ設定するんですよ!
土須 え? ナニィ! そんなことお前、技術者にやってもらえ!
ミク 何それ。
津井田 あ! ミクちゃん。コレね、BIっていうんだよ。いろんなデータ分析ができるんだ。
ミク へぇ~。お父さんの牧場経営にも役立ちそうね。
津井田 アレ? ミクちゃんのお父さんって、日記ばっかり書いてろくに仕事してなかったんじゃ?
ミク 最近牧場を買ったら大当たりしてね。大変みたいなの。
土須 あやかりたいねぇ。
津井田 Pentahoはオープンソースだから、個人経営の人も手軽に始められるよ。
ミク でも設定が難しそうだな。
津井田 大丈夫。最初から丁寧にやっていきましょう!
PentahoでのBI構築
今回からは実際にPentahoの機能を使用するための設定方法を説明していきたい。簡単な例題をもとにETL、多次元分析、レポート、ダッシュボードの順でPentahoの各ツールを使用して、設定方法を見ていく。理解を深めるために、皆さんも実際に設定を行なってみていただきたい。
BI Serverの構成
これから様々な設定を行なっていき、その設定ファイルをBI Serverに配置し、設定を反映させていくことになる。そのため、まずはBI Serverの構成を見ていきたい。前回のインストールで「biserver-ce-3.5.0.stable」フォルダの下に「biserver-ce」が作成された。「biserver-ce」がBI Server本体であり、以降はこのフォルダをベースに説明していく。
「biserver-ce」の下には次の5つのフォルダがある。
- data
- RDBMS別のPentaho動作用データベース作成SQLおよびサンプルデータ
- jre
- Javaの実行環境JRE
- licenses
- ソフトウェアのライセンスに関する文書
- pentaho-solutions
- 設定ファイルを配置する
- tomcat
- Tomcat 5.5およびPentahoのWebアプリケーション
これらのうち、これからのPentahoでの構築作業では主に「pentaho-solutions」に対して作業を行っていく。それ以外のフォルダは標準の機能を利用する上でほとんど変更しない。
PostgreSQLでPentahoを動かす
前回見たサンプルは、「Hypersonic」というDBのデータを使用して動作していた。これはサンプルを動かすためのDBであるため、通常、実際に構築する際には別のRDBMSを使用する。ここではRDBMSにPostgreSQLを用いることとし、PostgreSQLでPentahoを動作させるための設定を行なう。
前提の環境
PostgreSQL 8.4.2
ここでは上記のPostgreSQLがすでにインストールされている前提で話を進めていく。本章では最終的にPostgreSQL内に下図のようなデータベースを作成する。
必要なファイルの配置
DB接続のパフォーマンス向上のため、コネクションプーリング用のライブラリc3p0-0.9.1.2.jarを次の場所に配置する。
<code> biserver-ce/tomcat/common/lib </code>
このファイルはhttp://sourceforge.net/projects/c3p0/からダウンロードできるc3p0-0.9.1.2.bin.zipに含まれる。
データベースhibernateのPostgreSQLへの作成
Pentahoの分析機能、ダッシュボード機能の分析対象のデータに関する情報などを格納するデータベースとなる。psql.exeで次のファイルを実行する。パスワードの入力を求められた場合はpasswordと入力する。
<code> biserver-ce/data/postgresql/ create_repository_postgresql.sql </code>
これにより、データベースユーザーhibuserとデータベースhibernateが作成され、データベースhibernateにテーブルdatasourceが作成される。
データベースquartzのPostgreSQLへの作成
Pentahoでのジョブに関する情報を格納するデータベースとなる。今回の連載ではジョブについては扱わないが、Pentahoの動作上必要なため作成しておく。psql.exeで次のファイルを実行する。パスワードの入力が求められた場合はpasswordと入力する。
<code> biserver-ce/data/postgresql/create_quartz_postgresql.sql </code>
これにより、データベースユーザーpentaho_userとデータベースquartzが作成され、データベースquartzにいくつかのテーブルが作成される。
データベースpentaho_dwhのPostgreSQLへの作成
まず、データベースユーザーpentahoを作成する。
<code> CREATE USER pentaho PASSWORD 'password' </code>
つぎにデータベースpentaho_dwhを作成する。
<code> CREATE DATABASE pentaho_dwh WITH OWNER = pentaho ENCODING = 'UTF8' TABLESPACE = pg_default; </code>
データベースユーザーpentahoにデータベースpentaho_dwhの権限を付与する。
<code> GRANT ALL PRIVILEGES ON DATABASE pentaho_dwh to pentaho; </code>
データベースsalesのPostgreSQLへの作成
まず、データベースユーザーsalesを作成する。
<code> CREATE USER sales PASSWORD 'password'; </code>
つぎにデータベースsalesを作成する。
<code> CREATE DATABASE sales WITH OWNER = sales ENCODING = 'UTF8' TABLESPACE = pg_default; </code>
データベースユーザーsalesにデータベースsalesの権限を付与する。
<code> GRANT ALL PRIVILEGES ON DATABASE sales to sales; </code>
データベースhibernateの
テーブルdatasourceへのDWHへの接続情報を登録する。
<code> INSERT INTO DATASOURCE VALUES('PentahoDwh',20,'org.postgresql.Driver',5,'pentaho','cGFzc3dvcmQ=','jdbc:postgresql://localhost:5432/pentaho_dwh','',1000); </code>
1つめのパラメータはPentaho内でのこのデータソースの名前、5つめのパラメータはpentaho_dwhへの接続用データベースユーザー、6つめのパラメータは接続用パスワード(暗号化済み)である。
また、前回見たサンプルも使用できるように、サンプルデータについての接続情報も登録しておく。
INSERT INTO DATASOURCE VALUES('SampleData',20,'org.hsqldb.jdbcDriver',5,'pentaho_user','cGFzc3dvcmQ=','jdbc:hsqldb:hsql://localhost:9001/sampledata','select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES',1000);
context.xmlの変更
データベースhibernateおよびquartzへの接続情報を記述する。
biserver-ce/tomcat/webapps/pentaho/META-INF/context.xmlを次のように変更する。
<resource auth="Container" driverclassname="org.postgresql.Driver" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxactive="20" maxidle="5" maxwait="10000" name="jdbc/Hibernate" password="password" type="javax.sql.DataSource" url="jdbc:postgresql://localhost:5432/hibernate" username="hibuser" validationquery="select 1"><resource auth="Container" driverclassname="org.postgresql.Driver" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxactive="20" maxidle="5" maxwait="10000" name="jdbc/Quartz" password="password" type="javax.sql.DataSource" url="jdbc:postgresql://localhost:5432/quartz" username="pentaho_user" validationquery="select 1"></resource></resource>
hibernate-settings.xmlの変更
Pentahoで使用しているORマッピングツールHibernateの設定としてPostgreSQL用のファイルを使用するように変更する。
biserver-ce/pentaho-solutions/system/hibernate/hibernate-settings.xmlを次のように変更する。
<config-file>system/hibernate/postgresql.hibernate.cfg.xml>/config-file>
</config-file>
postgresql.hibernate.cfg.xmlの変更
上で指定したPostgreSQL用のファイルを、コネクションプーリングを使用できるように変更する
biserver-ce/pentaho-solutions/system/hibernate/postgresql.hibernate.cfg.xmlを次のように変更する。
<session-factory>の下に次を追加。
<property name="hibernate.c3p0.acquire_increment">3</property>
<property name="hibernate.c3p0.idle_test_period">14400</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">75</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.timeout">25200</property>
<property name="hibernate.c3p0.preferredTestQuery">select 1</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
</session-factory>
quartz.propertiesの変更
biserver-ce/pentaho-solutions/system/quartz/quartz.propertiesの300行目を次のように変更する。
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
ここまでで、PostgreSQLのデータでPentahoの機能を使うことができるようになった。前回行なったように、Pentahoの起動とログインを試してみてほしい。前回と同様に使用できるはずだ。
これからはPostgreSQLに実際にデータを登録し、各機能を使用していく。
次ページに「ETLでのDWHへのデータ統合」続く
この連載の記事
-
最終回
ソフトウェア・仮想化
インタラクティブなBIダッシュボードを自分で作る -
第6回
ソフトウェア・仮想化
ついにBIのレポートを作成!どんどん実践的に使おう -
第5回
ソフトウェア・仮想化
いよいよキューブを作ってWebブラウザから閲覧開始! -
第3回
ソフトウェア・仮想化
あなたのパソコンで、BIを実地体験してみよう -
第2回
ソフトウェア・仮想化
「BIの中身を覗きましょう」― BIの機能と導入手順 -
第1回
ソフトウェア・仮想化
「先輩、BIって知ってますか?」― 知識ゼロから学ぶBI -
ソフトウェア・仮想化
BIとは? 基礎からわかる最新BI事情 - この連載の一覧へ