本ブログでは、
SAP Datasphere (以下、「
Datasphere」) でのモデリング操作の流れを、より分かり易く、直感的に行うためのTips について解説します。
今回は、
スタースキーマ、スノーフレークスキーマの設定/定義をするにあたって「
E/Rモデル」を活用したモデリングのTipsについてご紹介します。
下記のブログで、Datasphere のモデリングの基本的な操作の流れについてご紹介しました。
はじめての SAP Datasphere Part 3 : モデリング
ただし、DWHやBIの構築、モデリングの経験者にとっては、
「ディメンションの定義とファクトの定義はわかるけど、なぜ、ファクトの定義でディメンションとの関連付け(アソシエーションの設定)をしなければいけないのか ?」
と少しモヤモヤした気持ちになっていたかと思います。
その気持ち..... わかります...... (私もはじめはモヤモヤしました) 。
モデリングの操作手順をもう少し丁寧に解説すると下記の順番になります。
1. ディメンションテーブル/ビューの定義
2. ファクトテーブル/ビューの定義
3. ディメンションとファクトの関連付け
4. 分析モデルの作成
前出のブログでの操作解説では、
「ファクトビューの定義/作成」の中で
「ディメンションとファクトの関連付け」を行いましたが、より理解を深めていただくために、今回は、この操作を
「E/Rモデル」を利用して、直感的に、そして、全体の流れをイメージしていただこうと思います。
もちろん、ディメンションの数が増えた場合には、エンティティ間の関係がビジュアライズされて直感的に分かることはメリットがありますので、是非、この機会に
「E/Rモデル」もご利用ください。
前準備
実際に操作を試す場合は、
前出のブログのモデリングで作成したファクトビューから
「アソシエーション」を削除して再デプロイしてください。削除の方法は、アソシエーションを選択して
「ゴミ箱」ボタンをクリックします。
「アソシエーションを未設定にした」ファクトビューを新規に作成しても結構です。
E/Rモデルの作成
左メニューの
「データビルダー」から
「E/Rモデル」タブを選択し、
「新しいERモデル」をクリックします。
まず、最初にファクトである
「受注明細ファクト」ビューをキャンバスにドラック & ドロップします。「受注明細ファクト」ビューのエンティティが表示されました。
この
「受注明細ファクト」ビューを選択して、プロパティで
「アソシエーション」が未設定であることを確認します。
続いて1つの目のディメンション、
「顧客ディメンション」ビューをキャンバスにドラッグ & ドロップします。「顧客ディメンション」ビューのエンティティが表示されました。
同じ手順で2つの目のディメンション、
「製品ディメンション」ビューをキャンバスにドラッグ & ドロップします。「製品ディメンション」ビューのエンティティが表示されました。
さて、準備は整いました。
いよいよ、
ファクトとディメンションの関連付け(アソシエーションの設定) を行います。
「受注明細ファクト」ビューを選択し、
「アソシエーションの作成」ボタンをクリックし、「
顧客ディメンション」ビューに対してドラッグ & ドロップします。
ファクトからディメンションに対して、
アソシエーションが作成されました。また、顧客ID同士で関連付けられていることがわかります。
ここでの
注意点は、アソシエーションの矢印の向きは、「ファクトからディメンション」の方向であることです。
「ファクトからディメンションに"マスターデータ"を参照する」と憶えると容易かと思います。
同じ手順で、
「受注明細ファクト」ビューを選択し、
「アソシエーションの作成」ボタンをクリックし、
「製品ディメンション」ビューに対してドラッグ & ドロップします。
ファクトからディメンションに対して、アソシエーションが作成されました。また、製品ID同士で関連付けられていることがわかります。
画面右上の
「自動レイアウト」ボタンをクリックして、表示を整えます。
「受注明細ファクト」ビューを選択すると、プロパティで
「アソシエーション」が設定されていることが確認できます。
それでは、この
アソシエーションの設定とE/Rモデル(図)を保存して有効化します。
ビジネス名と技術名に任意の名前を付けて、
「保存」ボタン、
「デプロイ」ボタンの順番でクリックし、有効化します。
いかがでしたでしょうか ?
まず、
「ファクトビューの設定」はシンプルに
「メジャーの選択/設定」を行います。
「アソシエーションの設定」については、ディメンション数が少ない場合は、そのまま
「ファクトビューの設定」の中で設定しても良いと思います。
ディメンションの数が多い場合は、
「E/Rモデル」を作る中で設定した方がラクチンですし、ビジュアル化できてエンティティ間の関係も分かり易いかと思います。
また、
ファクトビューの設定でアソシエーションの設定をした場合でも、
「E/Rモデル」で関連するファクトとディメンションをドラッグ & ドロップするだけで、作成済のアソシエーションの定義がビジュアル化されます。
いずれにしても、
「E/Rモデル」を各スタースキーマ毎、各スノーフレークスキーマ毎に作成すると便利だと思いますので、是非、ご活用ください。
ありがとうございました !!
※ Special Thanks TOCHIMOTO-san : ブログ執筆にあたり、いつものように色々と教えていただき、ありがとうございました。