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 2
はじめに本書では 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 が作成されていることを確認します 3
4
Ⅱ. 新規リポジトリの作成 1. Administrator Tool を起動します スタート Oracle Business Intelligence Administration 2. 新規リポジトリをして sh.rpd を作成します File New を選択します 3. リポジトリ名として sh.rpd と入力して 保存 をクリック 4. 空の sh リポジトリが作成されます 5
Ⅲ. フィジカル モデル層の作成 Ⅲ-1. データベーススキーマの取り込み 1. 分析に利用するデータベースのスキーマをインポートします File Import from Database と選択します 2. 事前準備作業にて設定した ODBC のシステム DSN を選択し 接続するユーザー名 ( ここでは sh) とパスワ ードを入力します 入力後 OK をクリックします 3. sh スキーマから分析に利用するテーブル等を選択します 選択後 import をクリックします 6
( 注 ) チェックボックスの Keys を選択から外してください ここでは Ⅲ-3. 各テーブル間の結合を設定 を実施するために 手動意図的に Keys のチェックを外しています Keys Foreign Keys がデータベース定義で適切に設定されている場合は Keys Foreign Keys をチェックすることで Ⅲ-3. 各テーブル間の結合を設定 のステップを省略することも可能です 4. Connection Pool のウィンドウが表示されますが Data Source name が正しいか確認して OK をクリッ クします 5. フィジカル モデル へデータをインポートする画面が表示され 終了すると ステップ 3. の画面に戻りますの で Close をクリックします Physical のレイヤーにインポートされた sh スキーマの情報が表示されます 7
Ⅲ-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 を実行することでも実施可能です 8
Ⅲ-3. 各テーブル間の結合を設定 1. 対象のテーブルに対する 結合 の定義を実施します 対象のテーブルを選択して Physical Diagram ボ タン をクリックします 2. Physical Diagram 上にて 結合を定義していきます まず Products 表と Sales 表の外部参照を設定しま す New Foreign Key ボタンを選択し Physical Diagram 上にて Products 表上でクリックしてから Sales 表上で再クリックします ( 補足 ) Physical Diagram 上の ホワイト スペースにて 右クリックするとダイアグラムのズームを変更して 見やするすることができます 9
3. Physical Foreign Key のプロパティ画面が表示されます どこも変更せずに OK をクリックします 4. キーが存在しておらず 作成しますか? と聞かれるので Yes をクリックして作成します 5. 他の結合も同様の手順にて作成していき 下記のように結合を完成させます 10
Ⅳ. ビジネス モデル層の作成 Ⅳ-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 を選択しま す 11
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 を選択します 12
7. AMOUNT_SOLD の属性プロパティの画面が表示されるので Aggregation タブを選択して default aggregation rule を Sum に設定し OK をクリックします 8. Business Model and Mapping 上の AMOUNT_SOLD のアイコンが集計のアイコンに変わります < 変更前 > < 変更後 > 13
Ⅳ-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 上へで再クリックします 14
4. Logical Join のプロパティ画面が表示されます どこも変更せずに OK をクリックします 5. 他の結合も同様の手順にて作成していき 下記のように結合を完成させます ここまでの手順により ファクト テーブル ( ) とディメンション テーブル ( ) が ビジネス モデル層にてア イコンの状態にて変化していることで確認できます 15
Ⅳ-3. ディメンション ( 階層 ) の作成 (1) 1. 次に ディメンション ( 階層 ) を作成します まずは PRODUCTS に対するディメンションを作成します Physical の Products 表から必要な項目を Business Model and Mapping に移動して ディメンションを作成します Physical の Products 表を展開し PROD_CATEGORY PROD_ID PROD_SUBCATEGORY を選択します 2. 選択後 右クリックして Update Row Count を実施します 16
3. Business Model and Mapping の Products を右クリックして Create Dimension を選択します 4. 作成された Products のディメンションを展開し PRODUCTS Detail を右クリックして Properties を選択 します 5. 次にディメンション階層を作成します PRODUCTS Detail を右クリックして New Objects Parent Level を選択します 17
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 を設定します 18
9. 作成したそれぞれの階層に PRODUCTS Detail のメンバから適切なカラムをドラッグ & ドロップします 階層 PRODUCTS Total Category Subcategory カラム PROD_TOTAL PROD_CATEGORY PROD_SUBCATEGORY 10. 次に 作成した階層にドリルダウン キーを設定します ディメンション PRODUCTS Total を右クリックして New Objects Logical Key を選択します 11. Logical Level Key PROD_TOTAL の画面にて Name を入力し Columns をチェックして OK をクリッ クします 19
12. 同様に Category と Subcategory にもドリルダウン キーを設定します 13. 次に PRODUCTS Detail の PROD_NAME を右クリックし New Logical Level Key を選択します 14. Logical Level Key PROD_NAME の画面にて PROD_NAME にチェックがあることを確認して OK を クリック 15. PRODCUST Detail を右クリックし Properties を選択します 20
16. Keys のタブを選択し PRODUCTS Detail_Key を選択して Edit ボタンをクリック 17. Logical Level Key PRODUCTS Detail_Key の画面にて Use for drilldowm のチェックを外して OK をクリック 18. PRODUCTS Detail_Key のアイコンが変更されていることを確認し OK をクリック 21
19. 最終的に以下のようなディメンションが作成されます 20. 残りのテーブル CHANNELS PROMOTIONS TIMES も同様にディメンションを作成しま す CUSTOMERS に関しては 論理列を利用した階層を定義するので この後にその部分を説明します <CHANNELS> 22
<PROMOTIONS> <TIMES> TIMES に関しては カレンダー分と会計年度分を作成します 23
Ⅳ-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 にチェックを入れ を選択します 24
4. Expression Builder が表示されるので 画面下の選択項目より Logical Table CUSTOMERS を順 次選択し CUST_FIRST_NAME と CUST_LAST_MNAME も文字連結して 名前を作成します OK をクリックします 5. 適切な文字列式が作成されているのを確認し Name に Customer Name と入力し OK をクリックしま す 6. 作成された 論理列の Customer Name をディメンションの CUSTOMERS Detail にドラッグ & ドロップしま す 25
7. CUSTOMERS Detail を右クリックし Properties を選択します 8. Key タブを選択し New ボタンをクリックします 9. CUST_ID と Customer Name にチェックを入れ Name を CUST_ID とし OK をクリックします 26
10. Logical Level CUSTOMER Detail 画面にて CUSTOMERS_Key を選択して Edit をクリックしま す 11. Use for drilldown のチェックを外して OK をクリックします 12. CUSTMERS_Key のアイコンが変わっていることを確認し OK をクリックします 27
13. ディメンション Country の Parent Level として Subregion Region Country Total Attribute ディメンシ ョンを追加で作成し カラムを割り当てていないその他の階層にも適切なカラムをドラッグ & ドロップし 各ディ メンションにて Logical Key を割り当てて CUSTOMERS のディメンションを完成します 28
Ⅴ. プレゼンテーション層の作成 Ⅴ-1. プレゼンテーション層 1. 新しいプレゼンテーション カタログを作成します Presentation のホワイト スペースで右クリックし New Presentation Catalog を選択してください 2. Presentation Catalog の画面で Name を入力して OK をクリックします 3. プレゼンテーション層にビジネス モデル層から必要な項目をドラッグ & ドロップにて移動します 29
Ⅴ-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 をクリックしま す 30
4. 以下のメッセージが表示されるので OK をクリックし Physical Diagram を閉じます 5. COSTS の外部キーを設定します Physical の COSTS を右クリックし Properties を選択します 6. Key タブで COSTS_Key を選択し Edit ボタンをクリックします 31
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 の結合を利用できないので 注意が必要です 9. Business Model の UNIT_COST を右クリックして Properties を選択します 32
10. General タブで Name を Unit Cost に変更し Aggregation タブで Default Aggregation rule を Sum に設定し OK をクリックします 33
Ⅴ-3.Presentation 層への展開と名称変更 1. Business Model 層の Unit Cost を Presentation 層の SalesFact にドラッグ & ドロップします 2. Presentation 層のユーザーに表示する名称を変更します 該当の項目 ( ここでは CHANNEL_DESC ) を右クリックして Properties を選択します 3. Use Logical Column Name のチェックを外し Name を チャネル名 に変更し OK をクリックします 34
4. Presentation 層の名前が変わったことが確認できます 35
5. 同様の方法にて必要な項目名を変更し 不必要な項目は削除して 以下のように変更します < 名称変更前 > < 名称変更後 > 36
Ⅴ-4. 論理列よりのメジャーの作成とPresentation 層への展開と名称変更 1. 次に論理列を利用して別のメジャーを作成します Business Model 層の SalesFact を右クリックし New Objects Logical Column を選択します 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 をクリックします 37
4. 作成された論理列の Gross Profit を Presentation 層の 売上 にドラッグ & ドロップし 名称を 利益 に変 更しておきます 38
Ⅴ-5. 物理列よりのメジャーの作成とPresentation 層への展開と名称変更 1. 次に 単価 と 数量 を表示できるように設定します まず Physical 層から SALES の QUANTITY_SOLD を Business Model 層の SalesFact にドラッグ & ドロップします 2. Business Model 層の QUANTITY_SOLD を右クリックし Properties を選択し Aggregation タブの Default aggregation rule を Sum に変更し General タブで Name を Quantity Solid に変更し OK をクリックします 3. Business Model 層の SalesFact を右クリックし New Object Logical Column を選択します 39
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 の をクリックします 6. Expression Builder の画面が表示されるので 金額 数量の計算式を作成します logical Table SalesFact AMOUNT_SOLD を選択し Insert ボタンを押し 演算子 / を押し QUANTITY_SOLD を選択して Insert を押します 式を確認後 OK をクリックします 40
7. 各親画面を OK でクローズすると Solid Unit Price が作成されます 8. 作成した Quantity Solid と Solid Unit Price を Presentation 層の 売上 にドラッグ & ドロップし 名前を 売上数量 と 単価 に変更します 41
Ⅴ-6. ファンクションを利用したメジャーの作成と Presentation 層への展開と名称変更 1. 次にファンクションを利用してランキングを作成します Business Model 層の SalesFact を右クリックし New Object Logical Column を選択します 2. Logical Column の画面が表示されるので Name に Rank Amount Sold と入力し Use existing logical columns as the source をチェックし をクリックします 3. Expression Builder の画面が表示されるので Functions Display Functions Rank を選択して Insert ボタンを押します そして 引数 (NumExpr) に Logical Table SalesFact AMOUNT_SOLD を選択して Insert ボタンを押して式を完成させます OK をクリックします 42
4. 作成された Rank Amount Sold を右クリックし Duplicate を選択します 5. 作成された Rank Amount Sold#1 を右クリックし Properties を選択します 6. Name を Rank Amount Sold Within Category に変更し Level タブをクリックします 43
7. ディメンション PRODUCTSDim の Logical Level で Category を選択し OK ボタンをクリックします 8. 作成した Rank Amount Sold Within Category を PROSUCTSDim ディメンションの Category にドラッ グ & ドロップします 9. Rank Amount Sold Rank Amount Sold Within Category を Presentation 層の 売上 にドラッグ & ドロ ップし 名称をそれぞれ 売上ランク 製品カテゴリ別売上ランク に変更します 44
Ⅴ-7. 新たなメジャーの作成と Presentation 層への展開と名称変更 1. 新たに Sales Category メジャーを Business Model 層に作成します AMOUNT SOLD を右クリックして Duplicate を選択します 2. 作成された AMOUNT SOLD#1 を右クリックし Properties を選択します 3. Name に Sales Category と入力し Level タブをクリックします 45
4. ディメンション PRODUCTSDim の Logical Level で Category を選択し OK ボタンをクリックします 5. 作成された Sales Category を Presentation 層の 売上 にドラッグ& ドロップし 名称を 製品カテゴリ別売 上合計 に変更します 6. 作成した 製品カテゴリ別売上合計 の Amount Sold に対する比率を求めます Business Model 層 の AMOUNT SOLD を右クリックして Calculation Wizard を選択します 46
7. Welcome 画面で 次へ をクリックし Choose Column で Sales Category を選択し 次へ をクリック します 8. Calculation Name に Share of Category と入力 Generate Calculations を Percent のみのチェック にして 次へ をクリックし 次画面で 完了 をクリックします 9. 作成された Share of Category を Presentation 層の 売上 にドラッグ & ドロップし 名称を 製品カテゴリ 別売上シェア に変更します 47
Ⅵ. リポジトリの保存 作成したリポジトリを保存する場合 作成したモデルの一貫性に関するチェックを実行します 一貫性が保てる条 件としては 以下が該当します - 一つ以上のロジカル テーブルがある - ロジカル テーブルが結合されている - ロジカル ディメンション テーブルがキーを保持している - ロジカル カラムがソースにマップされている - 階層はソースと整合性がとれている - ビジネス モデルはプレゼンテーション カタログを保持している - カラム名の前後に空白 ( スペース ) が無い - ディメンションのソースがファクトのソースに結合されている 1. File メニューより Save を選択します 2. 一貫性のチェックの実行を実行するか聞かれますので はい を選択して実行してください 48
3. チェックの実行結果を確認し エラーが無いことを確認してください ( 注 ) ここでは ユーザー Administrator にパスワードを設定していない旨の警告がでていますが 無視しま す 表示された項目をダブルクリックすると 該当項目の設定画面が表示されます 49