ステップバイステップでPentahoを構成!
DWHを自分で作ろう!環境構築からデータ登録まで
2010年02月26日 09時00分更新
データ変換の定義
いよいよデータ変換の定義を記述する。ここではデータ変換として次の3つのステップを定義する。
- データベースsalesのテーブルcustomerからのデータの抽出
- 抽出したデータの加工(DWH内部のキー=サロゲート・キーの付加)
- データベースpentaho_dwhのテーブルdim_customerへのロード
画面左上の「デザイン」ボタンをクリックし、画面のモードを切り替える。まず1つめとして、データベースsalesのテーブルcustomerからデータを抽出するステップを定義する。画面左の「ステップ」から「入力」の「Table input」を選択し、画面右の「データ変換 1」のタブ内にドラッグする。
その「Table input」をダブルクリックすると開くダイアログで、データを抽出するためのSQLなどを定義する。
「プレビュー」ボタンをクリックすると、このステップにより取得されるデータを見ることができる。
2つめとして、抽出したデータにDWH内部のキーを付加するステップを定義する。「ステップ」から「変換」の「Add Sequence」を選択し、「データ変換 1」にドラッグする。
その「Add Sequence」をダブルクリックすると開くダイアログで、データベースのシーケンスを使ってdim_customerのDWH内部のキーであるcustomer_keyを生成する。
次にここまでで作成したSelect customer dataとAdd dim_customer_seqの2つのステップを結合する。キーボードのShiftキーを押したまま、マウスでSelect customer dataからAdd dim_customer_seqにドラッグすると、下の画面のように2つのステップが矢印でつながる。
3つめとしてデータベースpentaho_dwhのテーブルdim_customerにロードするステップを記述する。「ステップ」から「出力」の「Insert / Update」を選択し、「データ変換 1」にドラッグする。
次にAdd dim_customer_seqとInsert / Updateの2つのステップを前述の方法で結合する。
「Insert / Update」をダブルクリックすると開くダイアログで、このステップまでのデータをdim_customerのどの項目に対応づけてロードするかを設定する。
これでこのデータ変換の定義は完了である。
データ変換の実行
では、データ変換を実行してみよう。タブの下にある「実行」アイコンをクリックすると、次の画面が表示される。今回は初期値のままで実行するため「実行」ボタンをクリックする。すると画面下部の「実行結果」に結果が表示される。実行時にエラーが発生した場合、赤く表示される。
データベースpentaho_dwhのテーブルdim_customerを確認すると、データが登録されているはずだ。
なお、今回のDWHへのロードはレコードの新規挿入のみを前提としている。本来はDWHの既存データの更新やDWHへの差分データのロードなどを考慮する必要がある。
まずはデータベースsalesのテーブルproductから
データベースpentaho_dwhのテーブルdim_productへロードする。
dim_productにロードするためのデータ変換を下の画面の通りに作成する。
なお、Add Sequenceではシーケンスdim_customer_seqを使用していただきたい。作成したら、同様にデータの変換を実行してみよう。テーブルdim_customerにデータが登録されたはずだ。
次に、データベースsalesのテーブルsales_dataから
データベースpentaho_dwhの
テーブルfact_sales_dataへロードする。
ディメンジョン・テーブルへのロードが完了したので、次にファクト・テーブルへのロードを行なう。まず、これまでと同様にデータベースsalesおよびpentaho_dwhへの接続情報の設定を行なう。
「Table input」ステップでデータベースsalesのsales_dataからデータを取得する処理を記述する。
ファクト・テーブルへのロードでは最終的にはディメンジョン・テーブルのレコードと関連付けて数値を登録する。そのため、抽出したデータと紐づくべきディメンジョン・テーブルのレコードを取得して、そのキーとの組み合わせで数値をファクト・テーブルに書き込んでいく。
今回の例ではテーブルsales_dataから抽出したデータをもとに、テーブルdim_customerおよびテーブルdim_productと関連付けてfact_sales_dataに書き込むことになる。
dim_customerとの関連付けは、sales_dataのcustomer_code項目とcustomer_code項目が一致するdim_customerのレコードのcustomer_key項目によって行なう。customer_code項目で関連付けを行なっていないことに注目していただきたい。customer_key項目はDWH内部のサロゲート・キーであり、ファクト・テーブルとディメンジョン・テーブルとをサロゲート・キーで紐づけている。
ではこれから、テーブルdim_customerのレコードを関連付ける処理を記述する。「ステップ」から「ルックアップ」の「Database lookup」を選択し、「データ変換 2」のタブ内にドラッグする。
その「Database lookup」をダブルクリックすると開くダイアログで、sales_dataから抽出したデータとdim_customerをcustomer_keyで紐づけるための設定を行なう。
まず「フィールド(参照)」ではsales_dataのどの項目とdim_customerのどの項目が対応するかを設定する。「列名」にdim_customerの項目を、「フィールド名1」にsales_dataの項目を設定する。次にfact_sales_dataに書き込む際にdim_customerと関連付ける項目を設定する。サロゲート・キーであるcustomer_keyで関連付けるため、プルダウンからこの項目を選択する。
同様にdim_product、dim_dateとの紐づけを行なう。
次にこれまでと同様にシーケンスを取得する。
最後にテーブルfact_sales_dataへの書き込みの定義をステップ「Insert / Update」で行なう。
ここまでで下の画面のような設定が完成したはずだ。
これまでと同じようにデータ変換を実行してみよう。テーブルfact_sales_dataにデータが登録されたはずだ。
長くなったがこれでETLの定義と実行が完了し、DWHに分析対象のデータが登録された状態となった。次回からはこのデータを使って分析を行なうための設定をしていこう。
著者紹介:鹿取裕樹
SAPジャパンにて会計コンサルティングを担当。その後、ビーブレイクシステムズの設立に参画する。
現在は、業務システムのパッケージソフトMA-EYESおよびBIソリューションの導入を担当する。
この連載の記事
-
最終回
ソフトウェア・仮想化
インタラクティブなBIダッシュボードを自分で作る -
第6回
ソフトウェア・仮想化
ついにBIのレポートを作成!どんどん実践的に使おう -
第5回
ソフトウェア・仮想化
いよいよキューブを作ってWebブラウザから閲覧開始! -
第3回
ソフトウェア・仮想化
あなたのパソコンで、BIを実地体験してみよう -
第2回
ソフトウェア・仮想化
「BIの中身を覗きましょう」― BIの機能と導入手順 -
第1回
ソフトウェア・仮想化
「先輩、BIって知ってますか?」― 知識ゼロから学ぶBI -
ソフトウェア・仮想化
BIとは? 基礎からわかる最新BI事情 - この連載の一覧へ