ステップバイステップでPentahoを構成!
DWHを自分で作ろう!環境構築からデータ登録まで
2010年02月26日 09時00分更新
ETLでのDWHへのデータ統合
テーブルの作成
事前準備として下の表の内容でデータベースsalesおよびデータベースpentaho_dwhにテーブルを作成しておく。今回は項目を最小限にしぼっている。また、pentaho_dwhはスタースキーマでの定義としている。
データベースsalsの定義
customer(顧客)
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
customer_code | 顧客コード | character | 30 | - |
name | 顧客名 | character varying | 300 | - |
product(製品)
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
product_code | 製品コード | character | 30 | - |
name | 製品名 | character varying | 300 | - |
unit_price | 単価 | numeric | 13 | 0 |
sales_data(販売データ)
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
sales_data_id | 販売データID | integer | - | - |
date_of_sales | 販売日 | date | - | - |
customer_code | 顧客コード | character | 30 | - |
product_code | 製品コード | character | 30 | - |
quantity | 販売数量 | integer | - | - |
amount | 金額 | numeric | 13 | 0 |
データベースpentaho_dwhの定義
dim_customer
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
customer_key | 顧客キー | integer | - | - |
customer_code | 顧客コード | character | 30 | - |
name | 顧客名 | character varying | 300 | - |
dim_product
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
product_key | 製品キー | integer | - | - |
product_code | 製品コード | character | 30 | - |
name | 製品名 | character varying | 300 | - |
dim_date
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
date_key | 日付キー | integer | - | - |
date_value | 日付 | date | - | - |
fact_sales_data
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
sales_data_key | 販売データキー | integer | - | - |
sales_data_id | 販売データID | integer | - | - |
date_of_sales_key | 販売日キー | integer | - | - |
customer_key | 顧客キー | integer | - | - |
product_key | 製品キー | integer | - | - |
quantity | 販売数量 | integer | - | - |
amount | 金額 | numeric | 13 | 0 |
dim_date
列名 | 列名(日本語) | 型 | 長さ | 精度 |
---|---|---|---|---|
date_key | 日付キー | integer | - | - |
date_value | 日付 | date | - | - |
year_num | 年 | integer | - | - |
month_num | 月 | integer | - | - |
day_num | 日 | integer | - | - |
salesとpentaho_dwhの各テーブルの関係は下図のようになる。
データベースpentaho_dwhに次の3つのシーケンスを定義しておく。
dim_customer_seq
dim_product_seq
fact_sales_data_seq
データの登録
下の表の内容でデータを登録する。
データベースsales
customer
customer_code | name |
---|---|
C1000 | 顧客1 |
C2000 | 顧客2 |
C3000 | 顧客3 |
product
product_code | name | unit_price |
---|---|---|
P1000 | 製品1 | 100 |
P2000 | 製品2 | 200 |
P3000 | 製品3 | 300 |
sales_data
sales_data_id | date_of_sales | customer_code | product_code | quantity | amount |
---|---|---|---|---|---|
1 | 2010/1/5 | C1000 | P1000 | 10 | 1000 |
2 | 2010/1/5 | C2000 | P2000 | 5 | 1000 |
3 | 2010/1/10 | C1000 | P3000 | 3 | 900 |
4 | 2010/1/15 | C1000 | P1000 | 4 | 400 |
5 | 2010/1/15 | C2000 | P2000 | 20 | 4000 |
6 | 2010/1/15 | C3000 | P3000 | 1 | 300 |
7 | 2010/1/20 | C2000 | P1000 | 2 | 400 |
8 | 2010/1/20 | C3000 | P2000 | 30 | 9000 |
9 | 2010/1/25 | C3000 | P3000 | 3 | 900 |
10 | 2010/1/30 | C3000 | P3000 | 5 | 1500 |
データベースpentaho_dwh
dim_date
date_key | date_value | year_num | month_num | day_num |
---|---|---|---|---|
1 | 2010/1/5 | 2010 | 1 | 5 |
2 | 2010/1/10 | 2010 | 1 | 10 |
3 | 2010/1/15 | 2010 | 1 | 15 |
4 | 2010/1/20 | 2010 | 1 | 20 |
5 | 2010/1/25 | 2010 | 1 | 25 |
6 | 2010/1/30 | 2010 | 1 | 30 |
データベースsalesの各テーブルのデータはETL処理を通して、データベースpentaho_dwhのテーブルに登録される。データベースpentaho_dwhのテーブルdim_dateは日付のディメンジョン・テーブルである。これは業務システムなどから作成するのではなく、通常はストアドプロシージャなどであらかじめ数年分を一括で登録しておく。今回は使用する日付が限られているため、必要な分だけを手動で登録することとする。
ETL定義ツールのインストール
PentahoではPentaho Data Integration(PDI)というツールを用いてETL処理の定義を行なう。BI Serverと同様に、http://sourceforge.net/projects/pentaho/からダウンロードする。
上の画像の「View all files」というボタンをクリックすると下にダウンロード可能な製品が表示される。その中から「Data Integration」をクリックする。バージョンごとのフォルダが展開されるので、「3.2.0-stable」をクリックする。
いくつかのファイルが表示されるが、その中でpdi-ce-3.2.0-stable.zipをクリックする。するとダウンロードが開始される。ダウンロードが完了したらそのファイルを解凍するだけでインストールは完了である。
ETLの定義
いよいよETL処理の定義を行なう。解凍したPDIのフォルダの中のKettle.exeを実行する。下図のダイアログが表示されたら、「リポジトリを使用しない」をクリックする。
すると、次の画面が表示される。これでPDIの起動が完了した。
定義をするにあたり、PentahoでのETL定義で使用する「データ変換」と「ジョブ」の概要を説明しておこう。データの抽出、加工、データの登録といった実際の処理は「データ変換」に定義する。「ジョブ」は複数の「データ変換」をまとめたものとなる。複数のデータ変換を任意の順序で実行したい場合はジョブを使うことで可能になる。
データベースsalesのテーブルcustomerからデータ
ベースpentaho_dwhのテーブルdim_customerへのロード
まずディメンジョン・テーブルへのロードを行ない、その後でファクト・テーブルへのロードを行なう。新たにデータ変換を作成するため、「ようこそ」タブの「新規作成」ボタン→「データ変換」を選択するか、メニューの「ファイル」→「新規作成」→「データ変換」を選択する。
すると、「データ変換 1」タブが表示される。これからこの「データ変換 1」に対して定義を記述していく。
最初にsalesとpentaho_dwhの2つのデータベースへの接続情報を設定する。画面左上の「ビュー」ボタンをクリックする。
ここで画面左の「エクスプローラ」から「データ変換 1」の「データベース接続」を選択し、右クリックする。表示されるコンテキストメニューで「新規作成」を選択する。すると、「Database Connection」というウィンドウが表示されるので、ここにデータベースへの接続情報を設定していく。
まずはデータベースsalesへの接続情報を下の画面のように設定し、「OK」をクリックする。「Password」には「password」と記述している。
同じようにデータベースpentaho_dwhへの接続情報を下の画面のように設定し、「OK」をクリックする。
これでデータベースへの接続情報の設定が完了した。
次ページ「データ変換の定義」に続く
この連載の記事
-
最終回
ソフトウェア・仮想化
インタラクティブなBIダッシュボードを自分で作る -
第6回
ソフトウェア・仮想化
ついにBIのレポートを作成!どんどん実践的に使おう -
第5回
ソフトウェア・仮想化
いよいよキューブを作ってWebブラウザから閲覧開始! -
第3回
ソフトウェア・仮想化
あなたのパソコンで、BIを実地体験してみよう -
第2回
ソフトウェア・仮想化
「BIの中身を覗きましょう」― BIの機能と導入手順 -
第1回
ソフトウェア・仮想化
「先輩、BIって知ってますか?」― 知識ゼロから学ぶBI -
ソフトウェア・仮想化
BIとは? 基礎からわかる最新BI事情 - この連載の一覧へ