このページの本文へ

前へ 1 2 3 次へ

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

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

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

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

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

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

データ変換の定義

 いよいよデータ変換の定義を記述する。ここではデータ変換として次の3つのステップを定義する。

  1. データベースsalesのテーブルcustomerからのデータの抽出
  2. 抽出したデータの加工(DWH内部のキー=サロゲート・キーの付加)
  3. データベースpentaho_dwhのテーブルdim_customerへのロード

 画面左上の「デザイン」ボタンをクリックし、画面のモードを切り替える。まず1つめとして、データベースsalesのテーブルcustomerからデータを抽出するステップを定義する。画面左の「ステップ」から「入力」の「Table input」を選択し、画面右の「データ変換 1」のタブ内にドラッグする。

画像10 Table inputの配置

画像10 Table inputの配置

 その「Table input」をダブルクリックすると開くダイアログで、データを抽出するためのSQLなどを定義する。

画像11 設定後のTable inputダイアログ

画像11 設定後のTable inputダイアログ

 「プレビュー」ボタンをクリックすると、このステップにより取得されるデータを見ることができる。

画像12 プレビュー実行結果

画像12 プレビュー実行結果

 2つめとして、抽出したデータにDWH内部のキーを付加するステップを定義する。「ステップ」から「変換」の「Add Sequence」を選択し、「データ変換 1」にドラッグする。

画像13 Add Sequenceの配置

画像13 Add Sequenceの配置

 その「Add Sequence」をダブルクリックすると開くダイアログで、データベースのシーケンスを使ってdim_customerのDWH内部のキーであるcustomer_keyを生成する。

画像14 設定後のAdd Sequenceダイアログ

画像14 設定後のAdd Sequenceダイアログ

 次にここまでで作成したSelect customer dataとAdd dim_customer_seqの2つのステップを結合する。キーボードのShiftキーを押したまま、マウスでSelect customer dataからAdd dim_customer_seqにドラッグすると、下の画面のように2つのステップが矢印でつながる。

画像15 ステップの結合

画像15 ステップの結合

 3つめとしてデータベースpentaho_dwhのテーブルdim_customerにロードするステップを記述する。「ステップ」から「出力」の「Insert / Update」を選択し、「データ変換 1」にドラッグする。

画像16 Insert / Updateの配置

画像16 Insert / Updateの配置

 次にAdd dim_customer_seqとInsert / Updateの2つのステップを前述の方法で結合する。

 「Insert / Update」をダブルクリックすると開くダイアログで、このステップまでのデータをdim_customerのどの項目に対応づけてロードするかを設定する。

画像17 設定後のInsert / Updateダイアログ

画像17 設定後のInsert / Updateダイアログ

 これでこのデータ変換の定義は完了である。

データ変換の実行

 では、データ変換を実行してみよう。タブの下にある「実行」アイコンをクリックすると、次の画面が表示される。今回は初期値のままで実行するため「実行」ボタンをクリックする。すると画面下部の「実行結果」に結果が表示される。実行時にエラーが発生した場合、赤く表示される。

画像18 実行結果

画像18 実行結果

 データベースpentaho_dwhのテーブルdim_customerを確認すると、データが登録されているはずだ。

 なお、今回のDWHへのロードはレコードの新規挿入のみを前提としている。本来はDWHの既存データの更新やDWHへの差分データのロードなどを考慮する必要がある。

 まずはデータベースsalesのテーブルproductから
データベースpentaho_dwhのテーブルdim_productへロードする。

 dim_productにロードするためのデータ変換を下の画面の通りに作成する。

画像19 設定済みのデータ変換 2

画像19 設定済みのデータ変換 2

 なお、Add Sequenceではシーケンスdim_customer_seqを使用していただきたい。作成したら、同様にデータの変換を実行してみよう。テーブルdim_customerにデータが登録されたはずだ。

 次に、データベースsalesのテーブルsales_dataから
データベースpentaho_dwhの
テーブルfact_sales_dataへロードする。

 ディメンジョン・テーブルへのロードが完了したので、次にファクト・テーブルへのロードを行なう。まず、これまでと同様にデータベースsalesおよびpentaho_dwhへの接続情報の設定を行なう。

「Table input」ステップでデータベースsalesのsales_dataからデータを取得する処理を記述する。

画像20 設定後のTable inputダイアログ

画像20 設定後のTable inputダイアログ

 ファクト・テーブルへのロードでは最終的にはディメンジョン・テーブルのレコードと関連付けて数値を登録する。そのため、抽出したデータと紐づくべきディメンジョン・テーブルのレコードを取得して、そのキーとの組み合わせで数値をファクト・テーブルに書き込んでいく。

 今回の例ではテーブル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で関連付けるため、プルダウンからこの項目を選択する。

画像21 dim_customerの参照設定後のDatabase lookupダイアログ

画像21 dim_customerの参照設定後のDatabase lookupダイアログ

 同様にdim_product、dim_dateとの紐づけを行なう。

画像22 dim_productの参照設定後のDatabase lookupダイアログ

画像22 dim_productの参照設定後のDatabase lookupダイアログ

画像23 dim_dateの参照設定後のDatabase lookupダイアログ

画像23 dim_dateの参照設定後のDatabase lookupダイアログ

 次にこれまでと同様にシーケンスを取得する。

画像24 設定後のAdd Sequenceダイアログ

画像24 設定後のAdd Sequenceダイアログ

 最後にテーブルfact_sales_dataへの書き込みの定義をステップ「Insert / Update」で行なう。

画像25 設定後のInsert / Updateダイアログ

画像25 設定後のInsert / Updateダイアログ

 ここまでで下の画面のような設定が完成したはずだ。

画像26 設定済みのデータ変換 3

画像26 設定済みのデータ変換 3

 これまでと同じようにデータ変換を実行してみよう。テーブルfact_sales_dataにデータが登録されたはずだ。

 長くなったがこれでETLの定義と実行が完了し、DWHに分析対象のデータが登録された状態となった。次回からはこのデータを使って分析を行なうための設定をしていこう。

著者紹介:鹿取裕樹

著者近影

SAPジャパンにて会計コンサルティングを担当。その後、ビーブレイクシステムズの設立に参画する。

現在は、業務システムのパッケージソフトMA-EYESおよびBIソリューションの導入を担当する。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード