この章では、Oracle Warehouse Builder(OWB)を使用してデータ・マートの論理設計および物理設計を作成します。
前提条件: この章には前提条件はありません。
この章は次のトピックで構成されています。
データ・マートを設定するには、OWBコンポーネントを使用して次の作業を実行します。
データ・マート・スター・スキーマの論理設計を作成します。
論理設計を物理設計にマップします。
データ・マートのオブジェクトを作成するためのコードを生成します。
データ・マートを移入するためのプロセス・フローを作成します。
プロセス・フローを実行してデータ・マートを移入します。
強力なグラフィカル・インタフェースに加えて、OWBではデータベースに関する詳細な設計情報を保持するメタデータ・リポジトリが提供されます。このリポジトリは、Oracle Databaseの表のセットとして実装されます。リポジトリに入力されたデータは、少なくともリポジトリ・アプリケーション・システムに対して読取りアクセス権を持つユーザーであれば使用できます。
OWBリポジトリにアクセスするには、デザイン・センターと呼ばれるOWBコンポーネントを使用します。これは、ソース、ターゲット、ETLマッピングおよび変換を設計するための主要なOWBクライアントです。OWBデザイン・センターを使用して、データソースの定義のインポート、ターゲット構造の定義、構造の検証、構造を実装するためのコードの生成と配布、およびETLマッピングを行うプロセス・フローを実行したターゲット構造へのデータのロードを行います。配置されたWarehouse Builderは、日常の保守作業や配備されているシステムの監視を支援します。
GEC_DW(Global Electronics Corporation Data Warehouse)という完了したデータ・ウェアハウス・プロジェクトのツアーから始めましょう。これはスター・スキーマを使用したデータ・ウェアハウスで、1つのキューブ(SALES)と5つのディメンション(CHANNELS、GEOGRAPHY、PRODUCTS、PROMOTIONS、TIME)を持ちます。
この項は次のトピックで構成されています。
OWBデザイン・センターを使用してOWBリポジトリにアクセスする手順は次のとおりです。
Windowsの「スタート」メニューから、「すべてのプログラム」→「Oracle - BISE1Home1_WarehouseBuilder」→「Warehouse Builder」→「Design Center」を選択して、Warehouse Builderを起動します。「デザイン・センター・ログオン」ウィンドウが表示されるまで数秒かかります。
ユーザー名とパスワードを使用してログオンする前に、接続情報を確立する必要があります。「詳細の表示」をクリックします。
「デザイン・センター・ログオン」ウィンドウが拡張されます。インストール時に定義したホスト名、ポート番号、およびサービス名を入力します。
ホスト: localhost
ポート: 1521
サービス名: bise1db
「デザイン・センター・ログオン」ウィンドウの上部に、OWBリポジトリのユーザー名とパスワードを入力します。
ユーザー名: owbrepos_user
パスワード: welcome1(または、BISE1インストール時に指定した任意のパスワード)
「デザイン・センター・ログオン」ウィンドウで「OK」をクリックします。デザイン・センターが表示されます。
デザイン・センターは、「プロジェクト・エクスプローラ」、「接続エクスプローラ」および「グローバル・エクスプローラ」の3つのウィンドウに分割されています。「プロジェクト・エクスプローラ」には、参照用に使用する完了したプロジェクトであるGEC_DW(Global Electronics Corporation Data Warehouse)と、このチュートリアルの手順に従って修正するGEC_DW_TUTORIALという2つのプロジェクトが表示されています。
完了したOWBプロジェクトを表示する手順は次のとおりです。
「GEC_DW」プロジェクトを選択して開きます。
プロジェクトは、設計作業を管理するためのコンテナです。Warehouse Builderには、ビジネス・インテリジェンス・システムの設計に役立つ、ウィザード、オブジェクト・エディタ、プロパティ・シート、およびオブジェクト検索ツールが含まれています。GEC_DWプロジェクトの下には、データベース、ファイル、アプリケーション、データ・プロファイルなどの様々なオブジェクト・タイプがツリーで表示されます。
このチュートリアルでは、データベース、ファイルおよびプロセス・フローのオブジェクト・タイプを使用します。
「データベース」ノードを開きます。設計に組み込むことができる、Oracle、Oracle以外、トランスポータブル・モジュールなどの様々なオブジェクト・タイプが表示されます。
「Oracle」ノードを開きます。GEC_DWプロジェクトに定義されている、BISE1_SALESWHおよびBISE1_SALESという2つのモジュールが表示されます。モジュールは、ソースまたはターゲットの定義を論理的にグループ分けしたものです。ソース・モジュールは、データの抽出元であるソース・システムを記述するメタデータを保持します。ターゲット・モジュールは、ターゲットのデータ・ウェアハウスまたはデータ・マートを記述するメタデータを保持します。各ターゲット・モジュールは、ターゲット・ユーザー・スキーマにマップされている必要があります。適切なロケーションを割り当てて、ターゲット・モジュールがこのターゲット・スキーマを参照するようにします。
BISE1_SALESモジュールはソース・モジュールです。「BISE1_SALES」モジュールを開いて、「表」ノードを開きます。これらは、BISE1_SALESWHモジュールに格納されるターゲット・データ・ウェアハウス・オブジェクトの定義を構築するために使用される、業務系データ表の定義です。
BISE1_SALESWHモジュールはターゲット・モジュールです。「BISE1_SALESWH」モジュールを開いて、「マッピング」、「ディメンション」、「キューブ」、「表」および「順序」ノードを開きます。これらは、データ・ウェアハウスを作成および移入するために使用されるオブジェクトの定義です。
「BISE1_SALESWH」モジュールを右クリックし、ポップアップ・メニューから「プロパティ」を選択して、このモジュールのプロパティ設定を表示します。オブジェクトには「ビジネス名」と「物理名」があり、それぞれに異なる名前を指定できます。通常は、同じ名前を使用してください。「プロパティ」ウィンドウを閉じます。
「BISE1_SALESWH」モジュールをダブルクリックして、エディタ・ウィンドウを起動します。ほとんどすべてのオブジェクトは、プロパティ・ウィンドウとエディタ・ウィンドウの両方を持ちます。エディタ・ウィンドウを使用して、オブジェクトの定義と構成を設定できます。エディタ・ウィンドウを閉じます。
これで完了したデータ・ウェアハウス・プロジェクトの検証が済み、GEC_DW_TUTORIALという独自のデータ・ウェアハウス・プロジェクトを完成させる準備が整いました。GEC_DW_TUTORIALプロジェクトでは、GEC_DWプロジェクトと同じデータ・ウェアハウスを構築します。この2つのプロジェクトの唯一の相違点は、データ・ウェアハウスのターゲットです。GEC_DWプロジェクトがBISE1_SALESWHターゲットに配布されるのに対して、GEC_DW_TUTORIALプロジェクトはBISE1_TUTORIALWHターゲットに配布します。
Warehouse Builderでは、ウィザードやエディタを使用してディメンションおよびキューブを定義できます。ウィザードを使用すると、ディメンションおよびキューブ・オブジェクトを簡単に作成できます。ウィザードによって、ディメンションまたはキューブ・オブジェクト・データを格納する実装オブジェクトを含む、完全に機能するディメンションまたはキューブ・オブジェクトが作成されます。この場合、特定の機能には事前定義されたデフォルト設定が使用されます。あるいは、エディタを使用してディメンションまたはキューブ・オブジェクトを作成または編集することもできます。ウィザードのデフォルト設定と異なる設定を指定する場合や、ウィザードでは提供されていない特別な設定にアクセスする場合は、ウィザードのかわりにエディタを使用します。
この項は次のトピックで構成されています。
ウィザードを使用してCHANNELSディメンションを作成する手順は次のとおりです。
デザイン・センターの「プロジェクト・エクスプローラ」で、「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」の順に開きます。
「ディメンション」を右クリックして、「新規」→「ウィザードを使用」を選択します。ディメンションの作成ウィザードが起動します。「ようこそ」ページで、「次へ」をクリックします。
「名前と説明」ページに、次の内容を入力します。
名前: CHANNELS
説明: Channels Dimension
「次へ」をクリックします。
「記憶域タイプ」ページで、「ROLAP: リレーショナル記憶域」を選択して「次へ」をクリックします。
注意: 更新頻度の高いデータや詳細データが大量にある場合は、ROLAP記憶域タイプが最適です。データをリレーショナル・フォームに保存する場合、OWBではデフォルトでスター・スキーマ実装方法が使用されます。 |
「ディメンション属性」ページには、ID、NAMEおよびDESCRIPTIONという事前定義された3つの列があります。
DESCRIPTION列を削除します。削除するには、DESCRIPTIONの左側にある列番号3を右クリックし、図3-9に示すように「削除」を選択します。
NAME属性の「識別子」ドロップダウン・リストで空の値を選択し、「長さ」を60に変更します。
図3-11に示すように、新しい属性SOURCE_ID(ビジネス、Varchar2、40)を追加して、「次へ」をクリックします。
図3-12に示すように、「レベル」ページで3つのレベルを作成します。
「次へ」をクリックします。
「レベル属性」ページで、次のように各レベルの属性を指定します。
「次へ」をクリックします。
「データ・ポリシー」ページで、デフォルトの選択「タイプ1: 履歴を保存しない」を維持して、「次へ」をクリックします。
注意: 緩やかに変化するディメンション(SCD)とは、データ・ウェアハウスで長期的に現行データと履歴データを保存および管理するディメンションです。SCDには、製品のパッケージ・サイズ、パッケージ・タイプ、価格および国名などが含まれます。データ値の更新履歴を追跡する必要がある場合は、「タイプ2」または「タイプ3」を選択します。これには、Oracle Warehouse Builder Enterprise ETLオプションの個別のライセンスが必要です。 |
「作成前の設定」ページを確認して、「次へ」をクリックします。
「ディメンション作成の進行状況」でディメンションが実装され、正しく作成されます。「次へ」をクリックします。
「サマリー」ページに、ディメンション定義のリストが表示されます。データベース表と順序も同様に作成されます。「終了」をクリックします。
デザイン・センターのツールバーで「すべて保存」アイコンをクリックして作業内容を保存します。
「Warehouse Builder警告」ダイアログ・ボックスで、「はい」をクリックします。
注意: 警告ダイアログ・ボックスは、「すべて保存」をクリックするたびに表示されます。 |
エディタを使用してPRODUCTSディメンションを作成する手順は次のとおりです。
デザイン・センターの「プロジェクト・エクスプローラ」で、開かれていない場合は、「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」の順に開きます。
「ディメンション」を右クリックして、「新規」→「エディタを使用」を選択します。データ・オブジェクト・エディタが起動します。
「ディメンションの詳細」ウィンドウで、「名前」タブが選択されていることを確認します。「名前」フィールドで、「DIMENSION_1」を「PRODUCTS」に変更します。「説明」フィールドに、「Product dimension」と入力します。
「記憶域」タブをクリックします。デフォルト・オプションの「ROLAP: リレーショナル記憶域」を維持します。「実装」で、「スター」を選択します。
「属性」タブをクリックします。「選択」をクリックします。「利用可能な順序」ダイアログ・ボックスで、「BISE1_TUTORIALWH」を開き、「PROD_DIM_SEQ」を選択します。「OK」をクリックします。
この順序はディメンション・キーに移入されます。図3-23に示すように属性情報を入力します。
「レベル」タブをクリックします。このタブには、「レベル」と、「<レベル名>のレベル属性」という2つのセクションがあります。
「階層」タブをクリックします。図3-29に示すように、ドロップダウン・リストから「レベル」の値を選択します。
「SCD」タブをクリックします。デフォルトの選択は「タイプ1: 履歴を保存しない」であることに注意してください。
ディメンション表を作成してリポジトリにバインドします。キャンバスで「PRODUCTS」ディメンションを右クリックし、「自動バインド」を選択します。自動バインドを実行すると、キューブのメジャーとディメンション参照が、それらのデータを格納するデータベース列に自動的にマップされます。
これで、PRODUCTSディメンションが作成されました。図3-31に、バインド処理が完了したときの表示を示します。
データ・オブジェクト・エディタのツールバーで「すべて保存」アイコンをクリックして作業内容を保存します。
データ・オブジェクト・エディタを閉じます。
タイム・ウィザードを使用してTIMESディメンションを作成する手順は次のとおりです。
デザイン・センターの「プロジェクト・エクスプローラ」で、「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」の順に開きます。「ディメンション」を右クリックして、「新規」→「タイム・ウィザードを使用」を選択します。時間ディメンションの作成ウィザードが起動します。「ようこそ」ページで、「次へ」をクリックします。
「名前と説明」ページに、次の内容を入力します。
名前: TIMES
説明: Times Dimension
「次へ」をクリックします。
「記憶域タイプ」ページで、デフォルトの「ROLAP: リレーショナル記憶域」を維持して「次へ」をクリックします。「データ生成」ページが表示されます。
次の情報を入力します。
開始年: 2003
年数: 4
「カレンダ」オプションが選択されていることを確認します。
注意: 「データ生成」ページでは、ウェアハウスに必要な時間データの範囲を指定します。この情報は、時間ディメンションを移入するマッピングの生成に使用されます。このマッピングでは入力した日付がパラメータとして追加されるため、後から日付を指定してマッピングを再実行できます。 |
「次へ」をクリックします。
「レベル」ページで、「通常階層」を選択し、図3-33に示すように「カレンダ年」、「カレンダ四半期」、「カレンダ月」を選択して、「次へ」をクリックします。
「作成前の設定」ページで詳細を確認して、「次へ」をクリックします。プログレス・バーによって、オブジェクト作成の進捗状況が示されます。
正常に完了したら、「次へ」をクリックします。「サマリー」ページで再度詳細を確認して、「終了」をクリックします。
「プロジェクト・エクスプローラ」で、完全に機能するTIMESディメンションに必要な4つのオブジェクトが生成されていることを確認します。
「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」→「ディメンション」の順に開きます。TIMESディメンションが表示されます。
「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」→「順序」の順に開きます。時間ディメンション・レベルのサロゲート識別子を移入するTIMES_SEQ順序が表示されます。
「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」→「表」の順に開きます。TIMES表が表示されます。これは、時間データを物理的に保存する時間ディメンションのリレーショナル実装をサポートします。
「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」→「マッピング」の順に開きます。TIMES_MAPマッピングが表示されます。これにより、時間ディメンションが移入されます。
「すべて保存」をクリックして、作業内容を保存します。
エディタを使用してSALESキューブを作成する手順は次のとおりです。
デザイン・センターの「プロジェクト・エクスプローラ」で、「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」の順に開きます。「キューブ」を右クリックして、「新規」→「エディタを使用」を選択します。データ・オブジェクト・エディタ・ウィンドウが表示されます。
「キューブの詳細」ウィンドウで、「名前」タブが選択されていることを確認します。「名前」フィールドで、「CUBE_1」を「SALES」に変更します。「説明」フィールドに、「Sales cube」と入力します。
「記憶域」タブをクリックします。次のように設定を選択します。
デフォルトの選択「ROLAP: 関係データ構造」を維持します。このオプションを使用して、キューブの定義とそのデータをデータベースのリレーショナル・フォームに保存します。
「ビットマップ索引の作成」を選択解除します。
注意: ビットマップ索引により、パフォーマンスを向上させることができます。ビットマップ索引を使用するには、Oracle Database Enterprise Editionの個別のライセンスが必要です。 |
「ディメンション」タブをクリックします。図3-37に示すように、「ディメンション」列のドロップダウン・リストでディメンションを選択して、「レベル」列で対応するレベルを選択します。
図3-38に示すように、「メジャー」タブをクリックして情報を入力します。
「集計」タブをクリックします。デフォルトの集計関数「SUM」がすべてのディメンションで選択されています。これはキューブ・データの集計に使用されます。このデフォルト設定を使用してかまいません。図3-39の例では、GEOGRAPHYディメンションの「キューブ集計方法」に「SUM」が選択されています。
キューブ構造を定義したら、キューブ・データを格納するデータベース表やビューの詳細を指定します。
キャンバスのデータ・オブジェクト・エディタで、「SALES」キューブを右クリックして「自動バインド」を選択します。自動バインドを実行すると、キューブのメジャーとディメンション参照が、それらのデータを格納するデータベース列に自動的にマップされます
図3-40に、「自動バインド」を選択した後のキャンバスを示します。
作業内容を保存してデータ・オブジェクト・エディタを閉じます。
この項では、次の作業を実行します。
PRODUCTSディメンションをロードするためのマッピングを設計します。GEOGRAPHYおよびPROMOTIONSマッピングは事前に作成されています。
CHANNELSディメンションとSALESキューブをロードするためのマッピングを作成するtclスクリプトを実行します。
TIMESマッピングは、時間ディメンション・ウィザードを使用してTIMESディメンションを作成した際に自動的に作成されています。
この項は次のトピックで構成されています。
PRODUCTSディメンションをロードするためのマッピングを設計する手順は次のとおりです。
デザイン・センターの「プロジェクト・エクスプローラ」で、「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」の順に開きます。「マッピング」ノードを右クリックし、「新規」を選択します。「マッピングの作成」ウィンドウが表示されます。
「マッピングの作成」ウィンドウで、マッピングの名前に「LOAD_PRODUCTS」と入力します。「OK」をクリックします。マッピング・エディタが表示されます。
「エクスプローラ」パネルで、「使用可能なオブジェクト」タブが選択されていることを確認します。「データベース」→「Oracle」→「BISE1_SALES」→「表」の順に開きます。「CATEGORIES」表および「PRODUCTS」表をキャンバスにドラッグします。
注意: 2つの表を同時にキャンバスへドラッグすると、最初は「マッピング」キャンバスに表が1つしか表示されない場合があります。多くの場合、2番目の表は、表示されている表の後ろに隠れています。2番目の表を表示するには、表示されている表をクリックして少し上にドラッグします。 |
キャンバスで、「PRODUCTS」表のヘッダー領域をダブルクリックします。
表エディタで「名前」タブが選択されていることを確認します。「名前」フィールドで、「PRODUCTS」を「PRODUCTS_IN」に変更します。「OK」をクリックします。
「エクスプローラ」パネルで「BISE1_SALES」モジュールを閉じ、「BISE1_TUTORIALWH」→「ディメンション」の順に開きます。
「PRODUCTS」ディメンションをキャンバスにドラッグします。
「PRODUCTS」ディメンションのヘッダー領域をダブルクリックします。表エディタの「名前」フィールドで、「PRODUCTS」を「PRODUCTS_OUT」に変更して「OK」をクリックします。
CONSTANTおよびFILTER演算子をキャンバスに追加します。「パレット」から「定数」演算子をキャンバスにドラッグします。フィルタは2つ必要なので、「フィルタ」演算子を2回キャンバスにドラッグします。
マッピング・エディタのツールバーで「自動レイアウト」アイコンをクリックして、キャンバスのオブジェクトを配置します。
キャンバスが図3-45に示すように表示されます。
「CONSTANT」演算子のヘッダーをダブルクリックして、その名前を「TOTALS」に変更します。定数エディタで「出力属性」タブを選択します。
「追加」ボタンをクリックして、次の2つの属性を追加します。
TOT: VARCHAR2(20)
SRC_ID: VARCHAR2(20)
「OK」をクリックして定数エディタ・ウィンドウを閉じます。
キャンバスで、「TOTALS」定数演算子をクリックして「TOT」属性を選択します。左側にあるプロパティ・インスペクタ・ウィンドウで、「式」の横にあるフィールドをクリックして「'Product Total'」と入力します。
キャンバスで、「TOTALS」定数演算子が選択された状態で「SRC_ID」属性をクリックします。プロパティ・インスペクタ・ウィンドウで、「式」の横にあるフィールドをクリックして「'99999'」と入力します。
キャンバスで、「FILTER」演算子のヘッダーをダブルクリックします。名前を「FILTER」から「CATS」に変更します。「OK」をクリックしてフィルタ・エディタを閉じます。
すべての属性が明確に表示されるように、「CATEGORIES」演算子を最大化します。
表3-1に示すように、演算子CATEGORIES.INOUTGRP1の属性から演算子CATSのINOUTGRP1に接続線を追加します。
表3-1 CATEGORIES.INOUTGRP1からCATSへのマッピング
CATEGORIES.INOUTGRP1 | CATS |
---|---|
ID |
INOUTGRP1 |
NAME |
INOUTGRP1 |
DESCRIPTION |
INOUTGRP1 |
CATEGORY_ID |
INOUTGRP1 |
接続線を描画するには、各CATEGORIES属性の右側の矢印をクリックして、マウス・ボタンを押しながらCATS.INOUTGRP1の左側の矢印まで線をドラッグします。
図3-51は、接続を追加した後の表示を示します。
CATSフィルタ演算子のフィルタ条件を「INOUTGRP1.CATEGORY_ID IS NULL」と指定します。
そのためには、キャンバスで「CATS」フィルタ演算子のヘッダー領域をクリックします。左側の「フィルタ・プロパティ: CATS」ウィンドウで、「フィルタ条件」の横にあるフィールドをクリックします。省略記号(…)をクリックします。フィルタ条件の式ビルダーが起動します。OWBでは、条件を構築したり、フィルタ条件を入力したりすることができます。
「式ビルダー」の左側で、「INOUTGRP1」を開きます。「CATEGORY_ID」をダブルクリックします。INOUTGRP1.CATEGORY_IDが右側のフィルタ条件フィールドに表示されます。
右下の領域で、「その他」ドロップダウン・リストから「IS NULL」を選択して「貼付け」をクリックします。「CATSのフィルタ条件」フィールドに式「INOUTGRP1.CATEGORY_ID IS NULL」が表示されます。
「検証」をクリックします。結果が「検証結果」フィールドに表示されます。検証に成功したら、「OK」をクリックします。
もう一方のFILTER演算子をSUBCATSに変更します。キャンバスで、「FILTER」演算子のヘッダーをダブルクリックします。名前を「FILTER0」から「SUBCATS」に変更します。「OK」をクリックしてフィルタ・エディタを閉じます。
すべての属性が明確に表示されるように、「CATEGORIES」演算子を最大化します。
表3-2に示すように、演算子CATEGORIES.INOUTGRP1の属性から演算子SUBCATSのINOUTGRP1に接続線を追加します。
表3-2 CATEGORIES.INOUTGRP1からSUBCATSへのマッピング
CATEGORIES.INOUTGRP1 | SUBCATS |
---|---|
ID |
INOUTGRP1 |
NAME |
INOUTGRP1 |
DESCRIPTION |
INOUTGRP1 |
CATEGORY_ID |
INOUTGRP1 |
図3-55は、接続を追加した後の表示を示します。
SUBCATSフィルタ演算子のフィルタ条件を「INOUTGRP1.CATEGORY_ID IS NOT NULL」と指定します。
そのためには、キャンバスで「SUBCATS」フィルタ演算子のヘッダー領域をクリックします。左側の「フィルタ・プロパティ: SUBCATS」ウィンドウで、「フィルタ条件」の横にあるフィールドをクリックします。省略記号(…)をクリックします。フィルタ条件の式ビルダーが起動します。
「式ビルダー」の左側で、「INOUTGRP1」を開きます。「CATEGORY_ID」をダブルクリックします。INOUTGRP1.CATEGORY_IDが右側のフィルタ条件フィールドに表示されます。
右下の領域で、「その他」ドロップダウン・リストから「IS NOT NULL」を選択して「貼付け」をクリックします。「SUBCATSのフィルタ条件」フィールドに式INOUTGRP1.CATEGORY_ID IS NOT NULLが表示されます。
「検証」をクリックします。結果が「検証結果」フィールドに表示されます。検証に成功したら、「OK」をクリックします。
表3-3に示すように、TOTALSのOUTGRP1定数演算子の属性からPRODUCTS_OUTディメンション演算子のグループの属性へ接続線を描画します。
表3-3 TOTALS.OUTGRP1からPRODUCTS_OUTへのマッピング
TOTALS.OUTGRP1 | PRODUCTS_OUT |
---|---|
TOT |
TOTAL.NAME |
TOT |
TOTAL.DESCRIPTION |
SRC_ID |
TOTAL.SOURCE_ID |
SRC_ID |
CATEGORY.TOTAL_SOURCE_ID |
図3-57は、接続を追加した後の表示を示します。
表3-4に示すように、CATSフィルタ演算子のINOUTGRP1の属性からディメンション演算子PRODUCTS_OUTのCATEGORYグループの属性へ接続線を描画します。
表3-4 CATS.INOUTGRP1からPRODUCTS_OUTへのマッピング
CATS.INOUTGRP1 | PRODUCTS_OUT |
---|---|
ID |
CATEGORY.SOURCE_ID |
NAME |
CATEGORY.NAME |
DESCRIPTION |
CATEGORY.DESCRIPTION |
図3-58は、接続を追加した後の表示を示します。
表3-5に示すように、SUBCATSフィルタ演算子のINOUTGRP1の属性からディメンション演算子PRODUCTS_OUTのSUBCATEGORYグループの属性へ接続線を描画します。
表3-5 SUBCATS.INOUTGRP1からPRODUCTS_OUTへのマッピング
SUBCATS.INOUTGRP1 | PRODUCTS_OUT |
---|---|
CATEGORY_ID |
SUBCATEGORY.CATEGORY_SOURCE_ID |
ID |
SUBCATEGORY.SOURCE_ID |
NAME |
SUBCATEGORY.NAME |
DESCRIPTION |
SUBCATEGORY.DESCRIPTION |
図3-59は、接続を追加した後の表示を示します。
表3-6に示すように、表演算子PRODUCTS_INのINOUTGRP1の属性からディメンション演算子PRODUCTS_OUTのPRODUCTグループの属性へ接続線を描画します。
表3-6 PRODUCTS_IN.OUTGRP1からPRODUCTS_OUTへのマッピング
PRODUCTS_IN.OUTGRP1 | PRODUCTS_OUT |
---|---|
SUBCATEGORY_REFERENCE |
PRODUCT.SUBCATEGORY_SOURCE_ID |
IDENTIFIER |
PRODUCT.SOURCE_ID |
NAME |
PRODUCT.NAME |
DESCRIPTION |
PRODUCT.DESCRIPTION |
PACK_SIZE |
PRODUCT.PACK_SIZE |
LIST_PRICE |
PRODUCT.LIST_PRICE |
図3-60は、接続を追加した後の表示を示します。
注意: 「最小化」アイコンをクリックするとキャンバス上のオブジェクトを縮小できます。 |
メニューから「マッピング」→「検証」を選択して、LOAD_PRODUCTSマッピングを検証します。
「生成結果」パネルが表示されます。暗黙的なデータ型変換の警告は無視してかまいません。Oracle Databaseでは、自動データ型変換が実行されます。
「マッピング」メニューから「生成」を選択します。これにより、設計の実装に必要なコードが生成されます。警告は無視します(7つの警告)。「生成結果」ウィンドウを閉じます。
作業内容を保存して、マッピング・エディタを閉じます。
Tcl(Tool Command Language)は、タスクを自動化および単純化できるスクリプト言語です。Oracle Warehouse Builderには、OMB*Plusという高度なTclインタフェースが含まれています。OMB*Plusは、コマンドラインから起動することも、OWBデザイン・センター内から起動することもできます。
ChannelsディメンションとSalesキューブのマッピングを作成する手順は次のとおりです。
OWBデザイン・センターで、メニューから「ウィンドウ」→「OMB*Plus」を選択します。
「OMB*Plus」パネルの「OMB+>」プロンプトで、次のように入力します。
OMB+> cd BISE1_installation_location/tutorial/owb/tcl
OMB+> source allinit.tcl
注意: スラッシュ(/)文字はOMB*Plus TCLインタプリタに固有であり、指定したとおりに入力する必要があります。 |
OWBREPOS_OWNERおよびSYSデータベース・アカウントのパスワードを入力します。tclファイルの場所を入力します(<BISE1のインストール場所>
/tutorial/owb/tcl
)。「OK」をクリックします。
「OMB+>
」プロンプトで、次のように入力します。
OMB+> source loadmaps.tcl
「プロジェクト・エクスプローラ」を使用して、LOAD_SALESおよびLOAD_CHANNELSオブジェクトが作成されていることを確認します。
作業内容を保存します。これで、ウェアハウスの設計の完成に必要なすべてのマッピングが揃いました。次の項では、「生成」オプションを使用して、設計を実装するコードを生成します。
LOAD_PRODUCTSマッピングの設計および生成は終了しました。ここで、その他のディメンションとSALESキューブのマッピングを生成する必要があります。
その他のディメンションおよびSALESキューブのマッピングを生成する手順は次のとおりです。
ビジネス・インテリジェンスのニーズに応じて、設計の配布方法を指定できます。個々のマッピングを実行すれば、ターゲット表の移入を実行できます。しかし、プロセス・フロー内に相互に依存するマッピングを複数編成して、複数のマッピング間の依存性および順序を制御したい場合もあります。プロセス・フローを操作する場合は、Oracle Workflowのロケーションを使用します。Oracle Workflowのロケーションは、このチュートリアル用に事前に定義されています。
この項は次のトピックで構成されています。
新しいプロセス・フローを作成する手順は次のとおりです。
デザイン・センターで、「接続エクスプローラ」パネルから「ロケーション」→「プロセス・フローとスケジュール」→「Oracle Workflow」の順に開きます。
「OWF_MGR_LOCATION」をダブルクリックします。OWF_MGRのパスワードを入力します(インストール時に指定)。「接続テスト」をクリックします。成功したら、「OK」をクリックします。
デザイン・センターの「プロジェクト・エクスプローラ」で、「GEC_DW_TUTORIAL」→「プロセス・フロー」の順に開きます。「プロセス・フロー・モジュール」を右クリックして、「新規」を選択します。モジュールの作成ウィザードが起動します。「ようこそ」ページで、「次へ」をクリックします。
「名前と説明」ページに、次の情報を入力します。
名前: PF_BISE1_TUTORIALWH
説明: Process Flow module for BISE1_TUTORIALWH
「次へ」をクリックします。
「接続情報」ページで、「ロケーション」ドロップダウン・リストから「OWF_MGR_LOCATION」を選択します。「次へ」をクリックします。
「サマリー」ページでサマリーの詳細を確認し、「終了」をクリックします。「プロセス・フロー・パッケージの作成」ダイアログ・ボックスが表示されます。
「プロセス・フロー・パッケージの作成」ダイアログ・ボックスで、プロセス・フロー・パッケージの名前に「PK_SALES」と入力して、「OK」をクリックします。「プロセス・フローの作成」ダイアログ・ボックスが表示されます。
「プロセス・フローの作成」ダイアログ・ボックスで、プロセス・フローの名前に「LOAD_BISE1_TUTORIALWH」と入力して、「OK」をクリックします。プロセス・フローが作成され、プロセス・エディタが起動します。
FORKアクティビティを追加するには、プロセス・エディタの「パレット」から「FORK」アクティビティをキャンバスにドラッグします。FORKアクティビティは、STARTアクティビティの後、ENDアクティビティの前に配置します。
マッピングを追加する手順は次のとおりです。
プロセス・エディタの「ウィンドウ」メニューで「エクスプローラ」を選択します(まだ選択されていない場合)。「エクスプローラ」パネルが表示されます。
「エクスプローラ」パネルで、「使用可能なオブジェクト」タブをクリックします。「マッピング」→「BISE1_TUTORIALWH」の順に開きます。次のマッピングをキャンバスにドラッグします。
LOAD_CHANNELS
LOAD_PROMOTIONS
LOAD_GEOGRAPHY
LOAD_PRODUCTS
TIMES_MAP
LOAD_SALES
次のマッピング・アクティビティが、FORKアクティビティの後、ENDアクティビティの前に、上から下へ次の順番で並ぶようにプロセス・フロー・キャンバスのアクティビティを配置します。
LOAD_GEOGRAPHY、LOAD_CHANNELS、LOAD_PRODUCTS、LOAD_PROMOTIONS、TIMES_MAP
キャンバス内でアクティビティを移動させるには、アクティビティを選択します。カーソルをアクティビティのヘッダー領域に置きます。これにより、矢先が1つの矢印にカーソルが変化します。ヘッダー領域をクリックして、左マウス・ボタンを押さえたまま目的の位置にドラッグします。
図3-73は、アクティビティの順序を示しています。
ANDおよびコントロール・アクティビティを追加する手順は次のとおりです。
「パレット」から「AND」アクティビティをキャンバスにドラッグします。「パレット」が表示されていない場合は、「ウィンドウ」メニューから「パレット」を選択します。
プロセス・エディタの「パレット」パネルから「エラー終了」および「警告終了」アクティビティをキャンバスにドラッグして、図3-74に示す位置に配置します。
アクティビティ間の推移を追加する手順は次のとおりです。
ソースとして機能するアクティビティ(たとえば、START)内にカーソルを置きます(矢先が1つの矢印に変化します)。左マウス・ボタンを押しながらターゲット・アクティビティの中央までドラッグし、ボタンを放します。表3-7に示すように推移を作成します。
表3-7 アクティビティの推移
ソース | ターゲット |
---|---|
START |
FORK |
FORK |
LOAD_CHANNELS |
FORK |
LOAD_PROMOTIONS |
FORK |
LOAD_GEOGRAPHY |
FORK |
LOAD_PRODUCTS |
FORK |
TIMES_MAP |
LOAD_CHANNELS |
AND |
LOAD_PROMOTIONS |
AND |
LOAD_CUSTOMERS |
AND |
LOAD_PRODUCTS |
AND |
TIMES_MAP |
AND |
AND |
LOAD_SALES |
LOAD_SALES |
END_SUCCESS |
LOAD_SALES |
END_ERROR |
LOAD_SALES |
END_WARNING |
推移の追加が完了すると、プロセス・フローは図3-75のようになります。
LOAD_SALESアクティビティからEND_SUCCESSアクティビティへの推移線をクリックします。「オブジェクトの詳細」パネルで、「条件」をクリックします。コロン(:)ボタンをクリックします。
推移条件エディタで、「列挙された条件」ドロップダウン・リストから「SUCCESS」を選択します。「OK」をクリックします。
LOAD_SALESアクティビティからEND_ERRORアクティビティへの推移線をクリックします。「オブジェクトの詳細」パネルで、「条件」をクリックします。コロン(:)ボタンをクリックします。推移条件エディタで「列挙された条件」ドロップダウン・リストから「ERROR」を選択します。「OK」をクリックします。
LOAD_SALESアクティビティからEND_WARNINGアクティビティへの推移線をクリックします。「オブジェクトの詳細」パネルで、「条件」をクリックします。コロン(:)ボタンをクリックします。推移条件エディタで「列挙された条件」ドロップダウン・リストから「WARNING」を選択します。「OK」をクリックします。
エラー処理プロセス・フローは、図3-78のように表示されるはずです。
作業内容を保存します。
プロセス・フローを検証および生成する手順は次のとおりです。
プロセス・エディタで、「プロセス・フロー」メニューから「検証」を選択します。「コンパイル結果」パネルに検証結果が表示されます。
プロセス・エディタで、「プロセス・フロー」メニューから「生成」を選択します。スクリプトが生成され、「コンパイル結果」ウィンドウに表示されます。
作業内容を保存して、プロセス・エディタを閉じます。
ここまで、ターゲット・システムの論理定義を設計および構成してきました。この項では、ターゲットの物理インスタンスを配布および作成する方法について学習します。まずリレーショナル・オブジェクトとディメンション・オブジェクトを配布します。次にETLマッピングを配布します。最後にプロセス・フローを配布および実行します。
オブジェクト、マッピングおよびプロセス・フローを個別に配布するかわりに、すべてを一度に配布することもできます。このチュートリアルでは、それぞれの配布後に結果を確認できるよう、個別に配布します。
この項は次のトピックで構成されています。
ロケーションは、Oracle Database、SAPアプリケーション、フラット・ファイルなど、モジュールのタイプによって異なります。フラット・ファイル・モジュールでは、ロケーションはフラット・ファイルが存在するファイル・システム内のパスまたはドライブとディレクトリになります。Oracle Databaseモジュールでは、ロケーションにデータベース接続情報が含まれます。
ロケーションを登録する手順は次のとおりです。
順序を配布する手順は次のとおりです。
コントロール・センターの左側にあるナビゲーション・ツリーで、「BISE1_TUTORIALWH_LOCATION」→「BISE1_TUTORIALWH」の順に開きます。「順序」を選択します。右側にある「オブジェクトの詳細」パネルに順序がリストされます。「デフォルト・アクション」ボタンをクリックします。
ツールバーの「配布」ボタンをクリックします。
進捗状況を「コントロール・センター・ジョブ」パネルで監視します。「配布」タブが選択されています。「コントロール・センター・ジョブ」パネルで、配布の進捗状況を監視します。配布の進捗状況は、「生成」から「実行中」、「成功」へと変わります。
「配布ステータス」列の値に注目してください。配布に成功した各オブジェクトには「正常終了」と表示されています。
BISE1_SALESWHターゲット・モジュールに表を配布します。これを行う手順は次のとおりです。
コントロール・センターのナビゲーション・ツリーで、「BISE1_TUTORIALWH_LOCATION」→「BISE1_TUTORIALWH」の順に開きます。「表」を選択します。「オブジェクトの詳細」パネルに表がリストされます。「設計ステータス」列、「配布アクション」列および「配布ステータス」列の値に注目してください。
「デフォルト・アクション」ボタンをクリックします。
注意: 「デフォルト・アクション」をクリックすると、「配布アクション」列の値が「なし」から「作成」に変わります。 |
ツールバーの「配布」ボタンをクリックします。「コントロール・センター・ジョブ」パネルで、配布の進捗状況を監視します。配布の進捗状況は、「生成」から「実行」、「成功」へと変わります。「配布ステータス」列に「正常終了」が表示されるまで待ちます。
マッピングを配布する手順は次のとおりです。
コントロール・センターのナビゲーション・ツリーで、「BISE1_TUTORIALWH_LOCATION」→「BISE1_TUTORIALWH」の順に開きます。「マッピング」を選択します。「オブジェクトの詳細」パネルにマッピングがリストされます。「設計ステータス」列、「配布アクション」列および「配布ステータス」列の値に注目してください。
「デフォルト・アクション」ボタンをクリックします。
注意: 「デフォルト・アクション」をクリックすると、「配布アクション」列の値が「なし」から「作成」に変わります。 |
ツールバーの「配布」ボタンをクリックします。「コントロール・センター・ジョブ」パネルで、配布の進捗状況を監視します。配布の進捗状況は、「生成」から「実行」、「成功」へと変わります。「配布ステータス」列に「正常終了」が表示されるまで待ちます。
LOAD_BISE1_TUTORIALWHプロセス・フローを配布します。次のように、OWF_MGR_LOCATIONを開いてLOAD_BISE1_TUTORIALWHプロセス・フローを探します。
コントロール・センターのナビゲーション・ツリーで、「OWF_MGR_LOCATION」→「PF_BISE1_TUTORIALWH」の順に開きます。「PK_SALES」を選択します。「オブジェクトの詳細」パネルにプロセス・フロー・パッケージがリストされます。
注意: プロセス・フローを配布する場合、パッケージにリストされているすべてのプロセス・フローが配布されます。 |
「デフォルト・アクション」ボタンをクリックします。
ツールバーの「配布」ボタンをクリックします。「コントロール・センター・ジョブ」パネルで、配布の進捗状況を監視します。配布の進捗状況は、「生成」から「実行」、「成功」へと変わります。「配布ステータス」列に「正常終了」が表示されるまで待ちます。
プロセス・フローを実行する手順は次のとおりです。
「LOAD_BISE1_TUTORIALWH」プロセス・フローを選択します。
プロセス・フローを実行するには、ツールバーの「開始」ボタンをクリックします。
「開始」ボタンをクリックすると、下部セクションの「コントロール・センター・ジョブ」パネルが「実行」タブに切り替わります。
「コントロール・センター・ジョブ」パネルで、「実行」タブが選択されます。正常に終了するまで実行を監視します。
注意: 実行は非同期的に行われます。つまり、プロセス・フローやマッピングの実行中にコントロール・センターおよびOWBクライアントを閉じてもかまいません。 |
「コントロール・センター・ジョブ」パネルで、「実行」タブが選択されていることを確認します。「ジョブ」列で「LOAD_BISE1_TUTORIALWH」をダブルクリックします。「ジョブの詳細」ウィンドウが表示されます。
「実行結果」タブをクリックして、「行アクティビティ」を監視します。
注意: 個々のディメンションおよびキューブに挿入された行数が表示されます。 |
コントロール・センター・マネージャを閉じます。
SALESキューブが移入されたことを確認するには、OWBデザイン・センターのリレーショナル・データ・ビューアを使用して、次のようにデータを表示します。
デザイン・センターのメニューから、「ビュー」→「リフレッシュ」を選択します。
「GEC_DW_TUTORIAL」→「データベース」→「Oracle」→「BISE1_TUTORIALWH」→「表」の順に開きます。
「SALES」を右クリックして、「データ」を選択します。「リレーショナル・データ・ビューア」ウィンドウが開き、SALESキューブのデータが表示されます。データを確認したら、「データ・ビューア」ウィンドウを閉じてデザイン・センターを終了します。
データ・マートの設定はこれで終了です。