| 【4-1】ディメンションの設定で表示を調整する
A君は昨日(前回)、キューブのストレージデザインを行い、さらに業務システムからデータを取得するDTSパッケージを作成しました。
今日(今回)はExcelからキューブに接続して、OLAP分析を行ってみることにします。
しかし、現状では以下のような問題があります。
- 商品ディメンションの各階層が商品分類コードや商品コードで表示されている(商品分類名、商品名で表示したい)
- 顧客ディメンションの「性別」階層で、男性が'M'、女性が'F'と表示されている('男性'、'女性'としたい)
A君は、ディメンションの設定でこれらの問題を解決することにしました。

<画面1:キューブの表示 (修正前)>
「分析マネージャ」から、商品ディメンションを選択して右クリックすると「ディメンションエディタ」が起動します。下のタブ「データ」を選択すると現状のデータが参照できます。ディメンションメンバがコードだけが表示されており、分かりにくいです。

<画面2:ディメンションエディタ (修正前)>
ここで、以下のようにディメンション設定を変更します。
- 「商品分類コード」階層の「Member Name Column」プロパティ
変更前:"dbo"."商品ディメンション"."商品分類コード"
変更後:"dbo"."商品ディメンション"."商品分類名"
- 「商品コード」階層の「Member Name Column」プロパティ
変更前:"dbo"."商品ディメンション"."商品コード"
変更後:"dbo"."商品ディメンション"."商品名"
この変更により、名称が表示されるようになりました。なお、ディメンションウィザードでもこのプロパティ変更を行うことができます。

<画面3:ディメンションエディタ (修正後)>
顧客ディメンションについても同じように修正を施します。
- 「性別」階層の「Member Name Column」プロパティ
変更前:"dbo"."顧客ディメンション"."性別"
変更後:REPLACE(REPLACE("dbo"."顧客ディメンション"."性別",'M','男') ,'F','女性')
通常はデータソース側で変更しておく内容ですが、このようにディメンションの設定で文字を置き換えることもできます。

<画面4:キューブの表示 (修正後)>
【4-2】ExcelピボットテーブルのOLAP操作を確認する
キューブの表示の調整が終わったので、ExcelでのOLAP分析を行ってみることにします。
以前にサンプルキューブに接続したように、(http://www.sqlpassj.org/bunkakai/bi/series/01.aspx#04)
Excelから「売上分析」キューブに接続してみましょう。 接続後、まず確認しておくことはExcelのピボットテーブルに表示されるフィールドです。
- 最上部「ここにデータのフィールドをドラックします」
- 集計枠の左側「ここにデータのフィールドをドラックします」
- 集計枠の上部「ここにデータのフィールドをドラックします」
- 集計枠の内側「ここにデータアイテムをドラックします」
これらにディメンションやメジャーを配置して、OLAP分析を行います。

<画面5:Excel ピボットテーブル (配置前)>

<図1:Excel ピボットテーブル>
Excel ピボットテーブル上の配置エリアの使い方を整理しましょう。
| |
使い方 |
配置するもの |
| (1) |
絞り込み条件となるディメンションを配置する |
ディメンション |
| (2) |
横軸となるディメンションを配置する |
ディメンション |
| (3) |
縦軸となるディメンションを配置する |
ディメンション |
| (4) |
集計対象のメジャーを配置する |
メジャー |
|
例えば、年度別、商品グループ別の売上金額が知りたいときは(2)横軸に商品ディメンションを、(3)縦軸に売上日ディメンションを、(4)集計対象に売上金額メジャーを配置します。さらに、そのデータを男性の顧客に絞り込みたい場合は(1)絞り込み条件に顧客ディメンションを配置し、男性のみを選択します。

<画面6:Excel ピボットテーブル (配置後)>
■ダイシング(dicing)
(2)横軸、(3)縦軸のエリアには複数のディメンションを配置することも、相互に入れ替えることもできます。
このような「分析軸を決める」操作をOLAP用語で「ダイシング(dicing)」と呼びます。ダイシングとはダイス(サイコロ)を振るように、縦軸・横軸を指定する(入れ替える)ことを意味します。
■スライシング(slicing)
(1)絞り込み条件にディメンションを配置して対象データを選択したり、画面7のよう軸の指定のなかで対象データを絞り込んだりすることもできます。
これをOLAP用語で「スライシング(slicing)」と呼びます。スライシングとは、例えば野菜をスライスする(薄切りにする)ようにデータの切り口を決定することを意味します。

<画面7:Excel ピボットテーブル (スライシング)>
■ドリリング(drilling)
(2)横軸、(3)縦軸のエリアをダブルクリックすると、画面8のようにディメンションにおいて1つ下の階層(集計レベル)での集計値が表示されます。これをOLAP用語で「ドリリング(drilling)」と呼びます。ドリリングとはドリルを使って地面を掘り進むように、下位の階層での集計値を参照することを意味します。

<画面8:Excel ピボットテーブル (ドリリング)>
■ドリルダウン(drill-down)、ドリルアップ(drill-up)、ドリルスルー(drill-through)
ドリリングは、「ドリルダウン(drill-down)」(下位の階層での集計値を参照する)と「ドリルアップ(drillup)」(上位の階層で集計を取る)の2つに使い分けられます。
また、「ドリルスルー(drill-through)」という用語も重要です。
ドリルスルーはドリルダウンとよく似ていますが、ドリルダウンが集計レベルを下げた状態での「集計値」を参照するのに対して、ドリルスルーは集計値の元になっている「詳細データ」を参照します。
Excelのピボットテーブルにはドリススルー機能はなく、必要な場合はVBAなどを使って自作する必要がありました。
参考:http://www.microsoft.com/japan/msdn/officedev/excel2002/odc_xlextendolap.asp
しかし、2003年6月に「Excelドリルスルーアドイン」が公開され、これを導入することで簡単にドリルスルーを行うことができるようになりました。
Excelドリルスルーアドイン:http://www.microsoft.com/japan/solutions/bi/techinfo/drillthrough/
このアドインを使用した場合のドリルスルーの結果の例が画面9です。なお、ドリルスルーを使用する場合はキューブエディタのドリルスルーオプションでドリルスルーを許可する設定が必要です。

<画面9:Excel ピボットテーブル (ドリルスルー)>

<画面10:ドリルスルーオプション>
【4-3】ExcelでOLAP分析する
それでは実際に、売上データのOLAP分析を行ってみましょう。
売上げが向上するアイデアを過去の売上げデータから得ることを目的として、売上キューブを見ていきましょう。
まず、商品ごとの売上金額を時系列に見てみたいので画面11のようにディメンションを配置します。

<画面11:OLAP分析1>
数値のままより、グラフの方が見やすいので、「グラフウィザード」ボタンを押してグラフにしてみます。

<画面11:OLAP分析2>
2003年の売上げが2001年、2002年と比較して落ちているように見えますが2003年はまだ途中です。四半期に分けて、既に確定済みのデータに限定しましょう。

<画面12:OLAP分析3>
「プロ野球グッズ」の売上げが減少傾向にあるようなので、商品グループを限定してみます。
確かに、減少傾向にあるようです。

<画面12:OLAP分析4>
プロ野球グッズの売上げが全体的に減少傾向にあるのか、特定の商品が減少傾向にあるのか知る必要があります。商品ディメンションを売上日ディメンションと同じ場所に配置して、商品ごとの時系列の変化を見てみます。この操作の途中で、2001年のデータや一部の商品データを絞り込んでいます。

<画面12:OLAP分析5>
どうも、「プロ野球ミニタオル」が特に売上げを減らしているようです。商品を「プロ野球ミニタオル」だけにしてみましょう。

<画面12:OLAP分析6>
顧客ディメンションも配置してみました。すると、女性への「プロ野球ミニタオル」の販売数が激減していることが分かりました。

<画面12:OLAP分析7>
この商品の男性への販売や、「プロ野球グッズ」の他製品の女性への販売は堅調なので、「プロ野球ミニタオル」が女性に売れなくなった原因を突き止め、解消することで売上げ増加を図れそうです。(タオルのデザインが女性受けしないのでしょうか・・・)
ダイシング、スライシング、ドリルダウン、ドリルスルーを駆使してこれより深い分析を続けることも可能ですし、より詳細のデータがあれば年齢別、売上日の天候別、などでの分析も考えられます。
このように、OLAP分析では様々な操作の組み合わせで自由な分析が可能です。Excelのグラフ機能を利用することで、簡単に分析を行うことができます。
明日(次回)は、キューブの作り方を工夫して、より役立つキューブを作成します。
|