このページの本文へ

BIとは? 基礎からわかる最新BI事情 第4回

ステップバイステップでPentahoを構成!

DWHを自分で作ろう!環境構築からデータ登録まで

2010年02月26日 09時00分更新

文● 鹿取裕樹/ビーブレイクシステムズ、TECH.ASCII.jp編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

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の各テーブルの関係は下図のようになる。

データベースsalesとデータベースpentaho_dwhの各テーブルの関係

データベース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/からダウンロードする。

entahoダウンロードページ

Pentahoダウンロードページ

 上の画像の「View all files」というボタンをクリックすると下にダウンロード可能な製品が表示される。その中から「Data Integration」をクリックする。バージョンごとのフォルダが展開されるので、「3.2.0-stable」をクリックする。

Pentaho Data Integrationのダウンロード

Pentaho Data Integrationのダウンロード

 いくつかのファイルが表示されるが、その中でpdi-ce-3.2.0-stable.zipをクリックする。するとダウンロードが開始される。ダウンロードが完了したらそのファイルを解凍するだけでインストールは完了である。

ETLの定義

 いよいよETL処理の定義を行なう。解凍したPDIのフォルダの中のKettle.exeを実行する。下図のダイアログが表示されたら、「リポジトリを使用しない」をクリックする。

起動時のダイアログ

起動時のダイアログ

 すると、次の画面が表示される。これでPDIの起動が完了した。

起動後の画面

起動後の画面

 定義をするにあたり、PentahoでのETL定義で使用する「データ変換」と「ジョブ」の概要を説明しておこう。データの抽出、加工、データの登録といった実際の処理は「データ変換」に定義する。「ジョブ」は複数の「データ変換」をまとめたものとなる。複数のデータ変換を任意の順序で実行したい場合はジョブを使うことで可能になる。

データベースsalesのテーブルcustomerからデータ
ベースpentaho_dwhのテーブルdim_customerへのロード

 まずディメンジョン・テーブルへのロードを行ない、その後でファクト・テーブルへのロードを行なう。新たにデータ変換を作成するため、「ようこそ」タブの「新規作成」ボタン→「データ変換」を選択するか、メニューの「ファイル」→「新規作成」→「データ変換」を選択する。

 すると、「データ変換 1」タブが表示される。これからこの「データ変換 1」に対して定義を記述していく。

データ変換 1タブ

データ変換 1タブ

 最初にsalesとpentaho_dwhの2つのデータベースへの接続情報を設定する。画面左上の「ビュー」ボタンをクリックする。

ビューモード画面

ビューモード画面

 ここで画面左の「エクスプローラ」から「データ変換 1」の「データベース接続」を選択し、右クリックする。表示されるコンテキストメニューで「新規作成」を選択する。すると、「Database Connection」というウィンドウが表示されるので、ここにデータベースへの接続情報を設定していく。

 まずはデータベースsalesへの接続情報を下の画面のように設定し、「OK」をクリックする。「Password」には「password」と記述している。

データベース接続設定画面

データベース接続設定画面

 同じようにデータベースpentaho_dwhへの接続情報を下の画面のように設定し、「OK」をクリックする。

画像9 設定後のデータベース接続設定画面

画像9 設定後のデータベース接続設定画面

 これでデータベースへの接続情報の設定が完了した。

次ページ「データ変換の定義」に続く

カテゴリートップへ

この連載の記事