Oracle BI Administration Tool を利用したリポジトリの作成
第1 版 作成日:2007 年 7 月 31 日 更新日:2007 年 7 月 31 日
目次 はじめに ... 3 Ⅰ.事前準備作業 ... 3 Ⅱ.新規リポジトリの作成 ... 5 Ⅲ.フィジカル・モデル層の作成 ... 6 Ⅲ-1.データベーススキーマの取り込み ... 6 Ⅲ-2.レコード数の取得 ... 8 Ⅲ-3.各テーブル間の結合を設定 ... 9 Ⅳ.ビジネス・モデル層の作成 ... 11 Ⅳ-1.FACT表の作成 ... 11 Ⅳ-2.スタースキーマの設定 ... 14 Ⅴ.プレゼンテーション層の作成 ... 29 Ⅴ-1.プレゼンテーション層 ... 29 Ⅴ-2.新規メジャーの作成 ... 30 Ⅴ-4.論理列よりのメジャーの作成とPresentation層への展開と名称変更 ... 37 Ⅴ-5.物理列よりのメジャーの作成とPresentation層への展開と名称変更 ... 39 Ⅴ-7.新たなメジャーの作成とPresentation層への展開と名称変更 ... 45 Ⅵ.リポジトリの保存 ... 48
はじめに
本書では、Oracle BI Standard Edition One(以下、BI SE1)を利用して、分析のもととなるリポジトリを作成してい きます。具体的には、Oracle Database 10g のサンプルスキーマである”sh”スキーマのデータを利用してリポジト リを作成していきます。 ここでは、「フィジカル・モデル層」、「ビジネス・モデル層」、「プレゼンテーション層」を順次作成していく方法を解説 します。
Ⅰ
.事前準備作業
SH スキーマを作成して、分析に利用するデータをロードします。また、データベースにアクセスするための ODBC のシステムデータソースを作成します。 1. コマンドプロンプトを起動し、SYSDBA ユーザーにて、SQL*Plus より、チュートリアルに付属のスクリプ ト”create_sh.sql”を実行します。C:¥> sqlplus sys/[パスワード] as sysdba SQL> @[パス]create_sh.sql SQL> exit (注)・・・付属のスクリプトでは、デフォルトのSH スキーマを削除し、再作成しています。SH スキーマのパス ワードは”SH”、デフォルト表領域は、”EXAMPLE”、テンポラリー表領域は、”TEMP”で設定してい ます。環境によっては、これらの値を一部変更する必要があります。 2. 分析に必要なデータをロードします。チュートリアルに付属のダンプファイル”se1.dmp”を IMP ユーティリティ を利用してインポートしてください。
C:¥> IMP system/[パスワード] fromuser=sh touser=sh file=[パス]se1.dmp log=se1.log
3. ODBC 接続の設定の確認
Oracle データベースのへ接続するための ODBC のシステムデータソース名を確認します。BI SE One は、イ ンストール時に、”bise1db”という名前にて作成しています。
コントロールパネル>管理ツール>データ ソース(ODBC) から、「ODBC データソースアドミニストレータ」を 起動し、「システム DSN」をクリックし、”bise1db”が作成されていることを確認します。
Ⅱ
.新規リポジトリの作成
1. Administrator Tool を起動します。
「スタート」⇒「Oracle Business Intelligence」⇒「Administration」
2. 新規リポジトリをして「sh.rpd」を作成します。「File」⇒「New」を選択します。
3. リポジトリ名として「sh.rpd」と入力して「保存」をクリック
4. 空のsh リポジトリが作成されます。
Ⅲ
.フィジカル・モデル層の作成
Ⅲ-1.データベーススキーマの取り込み
1. 分析に利用するデータベースのスキーマをインポートします。 「File」⇒「Import」⇒「from Database」と選択します。 2. 事前準備作業にて設定したODBC のシステム DSN を選択し、接続するユーザー名(ここでは、sh)とパスワ ードを入力します。入力後、「OK」をクリックします。 3. sh スキーマから分析に利用するテーブル等を選択します。選択後、「import」をクリックします。(注)・・・チェックボックスの「Keys」を選択から外してください。ここでは、「Ⅲ-3.各テーブル間の結合を設定」を 実施するために、手動意図的に「Keys」のチェックを外しています。「Keys」、「Foreign Keys」がデータ ベース定義で適切に設定されている場合は、「Keys」、「Foreign Keys」をチェックすることで「Ⅲ-3.各 テーブル間の結合を設定」のステップを省略することも可能です。
4. 「Connection Pool」のウィンドウが表示されますが、Data Source name が正しいか確認して、「OK」をクリッ クします。
5. 「フィジカル・モデル」へデータをインポートする画面が表示され、終了すると、ステップ3.の画面に戻りますの
で、「Close」をクリックします。「Physical」のレイヤーにインポートされた sh スキーマの情報が表示されます。
Ⅲ-2.レコード数の取得
1. 対象のテーブルにカーソルを合わせて、右クリックし、「Update Row Count」を実施してください。
複数のテーブルを選択して、一度に実施することも可能です。この作業は、後のディメンションを作成する場 合の「Number of elements at this level」に設定する値の参照値にします。
(備考)・・・その他の方法として、「Tool⇒Options」を選択し「General」タブの「Show row count in physical view」をチェックし、「Tools⇒Update All Row Counts」を実行することでも実施可能です。
Ⅲ-3.各テーブル間の結合を設定
1. 対象のテーブルに対する「結合」の定義を実施します。対象のテーブルを選択して、「Physical Diagram」ボ
タン をクリックします。
2. 「Physical Diagram」上にて、結合を定義していきます。まず、Products 表と Sales 表の外部参照を設定しま す。「New Foreign Key」ボタンを選択し、「Physical Diagram」上にて Products 表上でクリックしてから Sales 表上で再クリックします。
(補足)「Physical Diagram」上の、ホワイト・スペースにて、右クリックするとダイアグラムのズームを変更して 見やするすることができます。
3. 「Physical Foreign Key」のプロパティ画面が表示されます。どこも変更せずに「OK」をクリックします。
4. キーが存在しておらず、「作成しますか?」と聞かれるので、「Yes」をクリックして作成します。
Ⅳ
.ビジネス・モデル層の作成
Ⅳ-1.FACT表の作成
1. ビジネス・モデルを新規に作成します。「Business Model and Mapping」のホワイト・スペース上にて右クリッ クして、「New Business Model」を選択します。
2. Business Model の Name に「sh」と入力して、「OK」をクリックします。
3. 「Business Model and Mapping」上の「sh」を右クリックして「New Object」⇒「Logical Table」を選択しま す。
4. 「Logical Table」の画面にて Name に「SalesFact」と入力して、「OK」をクリックします。
5. 「Business Model and Mapping」上の SalesFact に Physical 層から FACT に必要な項目をドラッグ & ド ロップしてSalesFact を作成していきます。ここでは、Sales 表の AMOUNT_SOLD を SalesFact にドラッグ &ドロップしています。
6. 次に、AMOUNT_SOLD の集計タイプの属性を「Sum」に変更します。「Business Model and Mapping」上 のAMOUNT_SOLD を右クリックして「Properties」を選択します。
7. AMOUNT_SOLD の属性プロパティの画面が表示されるので、「Aggregation」タブを選択して、「default aggregation rule」を”Sum”に設定し、「OK」をクリックします。
8. 「Business Model and Mapping」上の AMOUNT_SOLD のアイコンが集計のアイコンに変わります。
<変更前> <変更後>
Ⅳ-2.スタースキーマの設定
1. 次にロジカル・ジョインを作成して分析のためのスタースキーマを作成します。ディメンション・テーブルに必
要なテーブルを「Physical」で選択し、「Business Model and Mapping」上の Business Model である「sh」 にドラッグ&ドロップします。
ここでは、「CHANNELS」、「CUSTOMERS」、「PRODUCTS」、「PROMOTIONS」、「TIMES」を選択してい ます。また、ドラッグ&ドロップする際には、必ず、「Business Model and Mapping」の「sh」の上にドロップして ください。
2. ビジネス・モデル・ダイアグラムを作成します。sh を右クリックして、「Business Model Diagram」⇒「Whole Diagram」を選択します。
3. 「New Complex Join」ボタンを選択し、「Physical Diagram」上にて Times 表上でクリックしてから SalesFact 上へで再クリックします。
4. 「Logical Join」のプロパティ画面が表示されます。どこも変更せずに「OK」をクリックします。
5. 他の結合も同様の手順にて作成していき、下記のように結合を完成させます。
ここまでの手順により、ファクト・テーブル(
)
とディメンション・テーブル()
が、ビジネス・モデル層にてアイコンの状態にて変化していることで確認できます。
Ⅳ-3.ディメンション(階層)の作成(1)
1. 次に、ディメンション(階層)を作成します。まずは、PRODUCTS に対するディメンションを作成します。
Physical の Products 表から必要な項目を「Business Model and Mapping」に移動して、ディメンションを作 成します。
Physical の Products 表を展開し、”PROD_CATEGORY”、”PROD_ID”、”PROD_SUBCATEGORY”を選択 します。
3. 「Business Model and Mapping」の Products を右クリックして「Create Dimension」を選択します。
4. 作成されたProducts のディメンションを展開し、「PRODUCTS Detail」を右クリックして、「Properties」を選択 します。
5. 次にディメンション階層を作成します。「PRODUCTS Detail」を右クリックして、「New Objects」⇒「Parent Level」を選択します。
6. 「Logical Level -Subcategory」の画面で、Name と Number of elements at this level を設定して「OK」をク リックします。ここでは、Names に「Subcategory」、Number of elements at this level に「21」を設定します。
7. 作成された「Subcategory」を右クリックして、「New Objects」⇒「Parent Level」を選択します。
8. 「Logical Level - Category」の画面にて、Name と Number of elements at this level を設定して「OK」をクリ ックします。ここでは、Names に「Category」、Number of elements at this level に「5」を設定します。
9. 作成したそれぞれの階層にPRODUCTS Detail のメンバから適切なカラムをドラッグ&ドロップします。
階層 カラム
PRODUCTS Total PROD_TOTAL
Category PROD_CATEGORY Subcategory PROD_SUBCATEGORY
10. 次に、作成した階層にドリルダウン・キーを設定します。ディメンション「PRODUCTS Total」を右クリックして、 「New Objects」⇒「Logical Key」を選択します。
11. 「Logical Level Key – PROD_TOTAL」の画面にて、Name を入力し、Columns をチェックして「OK」をクリッ
12. 同様に、「Category」と「Subcategory」にもドリルダウン・キーを設定します。
13. 次に、「PRODUCTS Detail」の PROD_NAME を右クリックし、「New Logical Level Key」を選択します。
14. 「Logical Level Key – PROD_NAME」の画面にて、PROD_NAME にチェックがあることを確認して「OK」を クリック
16. 「Keys」のタブを選択し、「PRODUCTS Detail_Key」を選択して、「Edit」ボタンをクリック
17. 「Logical Level Key – PRODUCTS Detail_Key」の画面にて、「Use for drilldowm」のチェックを外して、 「OK」をクリック
18. 「PRODUCTS Detail_Key」のアイコンが変更されていることを確認し、「OK」をクリック
19. 最終的に以下のようなディメンションが作成されます。
20. 残 り の テ ー ブ ル ”CHANNELS” 、 ”PROMOTIONS” 、 ”TIMES” も 同 様 に デ ィ メ ン シ ョ ン を 作 成 し ま す。”CUSTOMERS”に関しては、論理列を利用した階層を定義するので、この後にその部分を説明します。 <CHANNELS>
<PROMOTIONS>
<TIMES>
“TIMES”に関しては、カレンダー分と会計年度分を作成します。
Ⅳ-4.ディメンション(階層)の作成(2)
1. “CUSTOMERS”のディメンションを作成します。
まず、他のテーブルと同様に「Create Dimension」にてディメンションを作成して、「New Object」⇒「Parent Level」を選択して”City”、”State Province”、”Country”の階層を作成します。
2. 論理列を作成するためにテーブル”CUSTOMERS”を右クリックして「New Object」⇒「Logical Column」を選 択します。
3. 名前の性と名を文字連結した論理列を作成するので、「Logical Column」の画面にて「Use existing logical columns as the source」にチェックを入れ、「・・・」を選択します。
4. 「Expression Builder」が表示されるので、画面下の選択項目より、「Logical Table」、「CUSTOMERS」を順 次選択し、「CUST_FIRST_NAME」と「CUST_LAST_MNAME」も文字連結して、名前を作成します。「OK」 をクリックします。
5. 適切な文字列式が作成されているのを確認し、Name に「Customer Name」と入力し、「OK」をクリックしま
す。
6. 作成された、論理列の「Customer Name」をディメンションの「CUSTOMERS Detail」にドラッグ&ドロップしま す。
7. 「CUSTOMERS Detail」を右クリックし「Properties」を選択します。
8. 「Key」タブを選択し、「New」ボタンをクリックします。
10. 「Logical Level – CUSTOMER Detail」画面にて、”CUSTOMERS_Key”を選択して、「Edit」をクリックしま す。
11. 「Use for drilldown」のチェックを外して、「OK」をクリックします。
12. “CUSTMERS_Key”のアイコンが変わっていることを確認し、「OK」をクリックします。
13. ディメンション“Country”の Parent Level として、”Subregion”、”Region”、”Country Total Attribute”ディメンシ ョンを追加で作成し、カラムを割り当てていないその他の階層にも適切なカラムをドラッグ&ドロップし、各ディ メンションにてLogical Key を割り当てて CUSTOMERS のディメンションを完成します。
Ⅴ
.プレゼンテーション層の作成
Ⅴ-1.プレゼンテーション層
1. 新しいプレゼンテーション・カタログを作成します。「Presentation」のホワイト・スペースで右クリックし、「New Presentation Catalog」を選択してください。
2. 「Presentation Catalog」の画面で Name を入力して「OK」をクリックします。
3. プレゼンテーション層にビジネス・モデル層から必要な項目をドラッグ&ドロップにて移動します。
Ⅴ-2.新規メジャーの作成
1. 新しいメジャーとして”COST”を追加します。フィジカル・モデル層にて”COST”と”SALES”を選択して、
「Physical Diagram」ボタンをクリックします。
2. “COST”から”SALES”に Foreign Key を設定します。「New Foreign Key」ボタンをクリックして、ダイアグラム 上の”COST”から”SALES”にドラッグ&ドロップします。
3. “PROD_ID”、”TIME_ID”、”PROMO_ID”、”CHANNEL_ID”にて Join するように設定し、「OK」をクリックしま す。
4. 以下のメッセージが表示されるので、「OK」をクリックし、「Physical Diagram」を閉じます。
5. “COSTS”の外部キーを設定します。「Physical」の”COSTS”を右クリックし、「Properties」を選択します。
6. 「Key」タブで“COSTS_Key”を選択し、「Edit」ボタンをクリックします。
7. “PROD_ID”、”TIME_ID”、”PROMO_ID”、”CHANNEL_ID”が選択されていることを確認して、「OK」をクリッ クし、親画面も「OK」をクリックします。
8. 「Physical」の”COSTS”の”UNIT_COST”を「Business Model」の”SalesFact”の Source の”SALES”へドラッ &ドロップします。
グ
(注) “SalesFact”にドラッグ&ドロップすると、Physical 層の”COSTS”と”SALES”の結合を利用できないので 注意が必要です。
10. 「General」タブで Name を”Unit Cost”に変更し、「Aggregation」タブで、「Default Aggregation rule」 を”Sum”に設定し、「OK」をクリックします。
Ⅴ-3.Presentation 層への展開と名称変更
1. 「Business Model」層の”Unit Cost”を「Presentation」層の”SalesFact”にドラッグ&ドロップします。
2. 「Presentation」層のユーザーに表示する名称を変更します。該当の項目(ここでは、”CHANNEL_DESC”) を右クリックして、「Properties」を選択します。
4. 「Presentation」層の名前が変わったことが確認できます。
5. 同様の方法にて必要な項目名を変更し、不必要な項目は削除して、以下のように変更します。 <名称変更前>
<名称変更後>
Ⅴ-4.論理列よりのメジャーの作成とPresentation層への展開と名称変更
クリックし、 Logical Column」を選択します。
1. 次に論理列を利用して別のメジャーを作成します。「Business Model」層の”SalesFact”を右 「New Objects」⇒「
2. Logical Column」の画面にて Name に”Gross Profit”と入力し、「Use existing logical column as the クし、「・・・」ボタンをクリックします。
「
source」をチェッ
3. 「Expression Builder」の画 示されるので、売上 – コストの計算式を作成します。「logical Table」⇒ SalesFact」⇒「AMOUNT SOLD」を選択し、Insert ボタンを押し、演算子「-」を押し、「Unit Cost」を選択し て、Insert を押します。式を確認後、「OK」をクリックします。
面が表 「
4. 作成された論理列の「Gross Profit」を「Presentation」層の「売上」にドラッグ&ドロップし、名称を「利益」に変 更しておきます。
Ⅴ-5.物理列よりのメジャーの作成とPresentation層への展開と名称変更
OLD”を「Business Model」層の”SalesFact”にドラッグ&ドロップします。
1. 次 に 「 単 価 」 と 「 数 量 」 を 表 示 で き る よ う に 設 定 し ま す 。 ま ず 、 「Physical 」 層 か ら ”SALES” の”QUANTITY_S
2. 「Business Model」層の”QUANTITY_SOLD”を右クリックし、「Properties」を選択し、「Aggregation」タブの 「Default aggregation rule」を”Sum”に変更し、「General」タブで Name を”Quantity Solid”に変更し、「OK」 をクリックします。
3. 「Business Model」層の”SalesFact”を右クリックし、「New Object」⇒「Logical Column」を選択します。
4. 「Logical Column」の画面にて、Name に”Solid Unit Price”と入力し、「Aggregation」タブを選択し、「Default aggregation rule」を”sum”に設定、「Data type」タブを選択し、「Show all logical source」をチェック し、”SALES”を選択して「Edit」ボタンをクリックします。
”の「・・・」をクリックします。
5. 「Logical Table Source」の画面が表示されるので、「Column Mapping」タブを選択し、「Logical Column」 の”Solid Unit Price
」⇒ 「SalesFact」⇒「AMOUNT_SOLD」を選択し、Insert ボタンを押し、演算子「/」を押し、「QUANTITY_SOLD」 を選択して、Insert を押します。式を確認後、「OK」をクリックします。
7. 各親画面を「OK」でクローズすると「Solid Unit Price」が作成されます。
8. 作成した”Quantity Solid”と、”Solid Unit Price”を「Presentation」層の「売上」にドラッグ&ドロップし、名前を 「売上数量」と「単価」に変更します。
Ⅴ-6. ョンを利用したメジャーの作成とPresentation 層への展開と名称変更
el」層の”SalesFact”を右クリックし、 「New Object」⇒「Logical Column」を選択します。
ファンクシ
1. 次にファンクションを利用してランキングを作成します。「Business Mod
れるので、Name に”Rank Amount Sold”と入力し、「Use existing logical columns as the source」をチェックし「・・・」をクリックします。
2. 「Logical Column」の画面が表示さ
3. 「Expression Builder」の画面が表示されるので、「Functions」、「Display Functions」、「Rank」を選択して、 「Insert」ボタンを押します。そして、引数(NumExpr)に「Logical Table」、「SalesFact」、「AMOUNT_SOLD」 を選択して「Insert」ボタンを押して式を完成させます。「OK」をクリックします。
4. 作成された”Rank Amount Sold”を右クリックし、「Duplicate」を選択します。
5. 作成された”Rank Amount Sold#1”を右クリックし、「Properties」を選択します。
6. Name を” Rank Amount Sold Within Category”に変更し、「Level」タブをクリックします。
7. ディメンション”PRODUCTSDim”の Logical Level で”Category”を選択し、「OK」ボタンをクリックします。
ョンの「Category」にドラッ グ&ドロップします。
8. 作成した”Rank Amount Sold Within Category”を「PROSUCTSDim」ディメンシ
9. ”Rank Amount Sold”、”Rank Amount Sold Within Category”を「Presentation」層の「売上」にドラッグ&ドロ ップし、名称をそれぞれ「売上ランク」、「製品カテゴリ別売上ランク」に変更します。
Ⅴ-7.新たなメジャーの作成とPresentation層への展開と名称変更
1. 新たに”Sales Category”メジャーを「Business Model」層に作成します。”AMOUNT SOLD”を右クリックして、 「Duplicate」を選択します。
2. 作成された”AMOUNT SOLD#1”を右クリックし、「Properties」を選択します。
3. Name に” Sales Category”と入力し、「Level」タブをクリックします。
4. ディメンション”PRODUCTSDim”の Logical Level で”Category”を選択し、「OK」ボタンをクリックします。
5. 作成された”Sales Category”を「Presentation」層の「売上」にドラッグ&ドロップし、名称を”製品カテゴリ別売 上合計”に変更します。
6. 作成した”製品カテゴリ別売上合計”の Amount Sold に対する比率を求めます。「Business Model」層 の”AMOUNT SOLD”を右クリックして、「Calculation Wizard 」を選択します。
7. 「Welcome」画面で「次へ」をクリックし、「Choose Column」で”Sales Category”を選択し、「次へ」をクリック します。
8. 「Calculation Name」に“Share of Category”と入力、「Generate Calculations」を”Percent”のみのチェック にして、「次へ」をクリックし、次画面で「完了」をクリックします。
9. 作成された”Share of Category”を「Presentation」層の「売上」にドラッグ&ドロップし、名称を” 製品カテゴリ 別売上シェア”に変更します。
Ⅵ
.リポジトリの保存
作成したリポジトリを保存する場合、作成したモデルの一貫性に関するチェックを実行します。一貫性が保てる条 件としては、以下が該当します。 - 一つ以上のロジカル・テーブルがある - ロジカル・テーブルが結合されている - ロジカル・ディメンション・テーブルがキーを保持している - ロジカル・カラムがソースにマップされている - 階層はソースと整合性がとれている - ビジネス・モデルはプレゼンテーション・カタログを保持している - カラム名の前後に空白(スペース)が無い - ディメンションのソースがファクトのソースに結合されている 1. 「File」メニューより、「Save」を選択します。 2. 一貫性のチェックの実行を実行するか聞かれますので、「はい」を選択して実行してください。
3. チェックの実行結果を確認し、エラーが無いことを確認してください。
(注)ここでは、ユーザー”Administrator”にパスワードを設定していない旨の警告がでていますが、無視しま と、該当項目の設定画面が表示されます。