0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; } obj.visibility=v; } } //Define function to show one layer and hide others: function show(whichLayer) { if(layerDisp) { showHide(layerDisp,'','hide'); } showHide(whichLayer,'','show'); layerDisp = whichLayer; } //Define function to keep score and display feedback: function Engine(question, answer, layerSuffix) { if (answer != ans[question]) { show('incorrect'+layerSuffix); } else { if (!done[question]) { score++; } show('correct'+layerSuffix); } done[question] = -1; } //Define function to verify answer for checkbox: function checkAnswer(question, whichform, whichbox) { var checkTotal = 0; with (whichform) { for (i = 0; i < whichbox.length; i++) { if (whichbox[i].checked == true) { checkTotal = checkTotal + eval(whichbox[i].value); } } } Engine(question,checkTotal,question*10); } //Define function to show correct answer for checkbox: function showAnswer(question, whichform, whichbox) { var residue = ans[question]; var currAnswer = 1; if(layerDisp) { showHide(layerDisp,'','hide'); } with (whichform) { for (i = 0; i < whichbox.length; i++) { if ((residue>0) && (residue%(currAnswer*2)==currAnswer)){ whichbox[i].checked = true; residue-=currAnswer; } else { whichbox[i].checked = false; } currAnswer*=2; } } } //Define function to init a form function clearForm(form) { //Set all checkboxes and radio buttons on form to unchecked: for (xx=0; xx < form.elements.length; xx++) { if (form.elements[xx].type == 'checkbox' | form.elements[xx].type == 'radio') { form.elements[xx].checked = false; } } } //Define function to init all forms on reload: function InitForm() { clearForm(document.form1) clearForm(document.form2) clearForm(document.form3) } // End --> function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i
ターゲット・ウェアハウスのオブジェクトの配置
目的
以前のレッスンで、ターゲット・システムの論理定義を設計して構成しました。 これで、ターゲットの物理的なインスタンスを配置して作成できます。
このレッスンでは、以前作成したすべてのリレーショナル・オブジェクトおよびディメンション・オブジェクトの配置、そして設計したETLマッピングの配置も行います。
所要時間
約30分
注:
このチュートリアルとセットアップ・スクリプトは、Oracle Warehouse Builder 11g
Release 1だけに対応しています。
このOracle By Exampleチュートリアルの前のバージョンは、Oracle Warehouse Builder 10g
Release 1および2に対応しています。
トピック
このチュートリアルでは、以下のトピックについて説明します。
スクリーンショットの表示
このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロード、表示されます。 (警告: すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
注: 各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にある各アイコンの上にカーソルを置いてください。
概要
配置は、論理設計または論理モデルからターゲット・システムを作成するプロセスです。 プロセスには、データ・オブジェクト(表、ビュー、ディメンションなど)を作成するDDLなどのスクリプトの生成が含まれます。 また、プロセスには、データをデータ・オブジェクトにロードするSQL、PL/SQL、およびSQL*Loaderスクリプトの生成も含まれます。
配置に関する重要な注意事項があります。
|
リレーショナル・データベースまたは順序、表、ディメンション、またはキューブなどのディメンション・オブジェクトを配置する場合、オブジェクトを物理的に作成するためにDDLスクリプトが
生成されると同時に
実行されます。
| |
ETLマッピングを配置する場合、配置手順によってのみPL/SQLスクリプトが生成されます。 明示的にスクリプトを実行して、ETLを実行する必要があります。
|
Oracle Warehouse Builderは、オブジェクトの配置に2つのオプション(コントロール・センター・マネージャを使用するオプションとデザイン・センターのProject Explorerから直接オブジェクトを配置するオプション)を提供します。
コントロール・センター・マネージャは、構成と検証を含む配置の全側面を表示して管理できる包括的な配置コンソールを提供します。 コントロール・センター・マネージャで、オブジェクトの配置履歴を表示できます。 配置履歴は、デフォルトの配置オプションを自動的に決めるためにも使用されます。 デザイン・センターのProject Explorerツリーからオブジェクトを配置する場合、これらのオプションは使用できません。
このレッスンでは、コントロール・センター・マネージャを使用してオブジェクトを配置します。 EXPENSE_WHモジュールのすべてのオブジェクトを1度に配置できますが、このレッスンでは段階的にオブジェクトを配置します。
トピック・リストに戻る
前提条件
このチュートリアルを始める前に次のことを確認してください。
トピック・リストに戻る
外部表の配置
2つの外部表を配置するには、以下の手順を実行します。
| 1.
|
配置するには、コントロール・センター・マネージャを起動する必要があります。 Toolsメニューから「
Control Center Manager」を選択します。
コントロール・センター・マネージャが起動します。 スクリーンショットに示されているように、コントロール・センター・マネージャ・コンソールが表示されます。
| | 2.
|
ナビゲーション・ツリーが
場所
に基づいて編成されているので、場所に基づいて設計オブジェクトにアクセスできることをコントロール・センター・マネージャ・コンソールで確認します。
注:設計プロセス中に
場所を
作成する場合、場所の名前、タイプ、およびバージョンに制限される
論理定義を作成します。 場所を
登録する場合、さまざまなデータのソースおよびターゲットに接続するために配置中に使用される実際の物理接続情報を指定します。
場所を使用すると、設計を変更することなく同じ論理設計を複数の物理実装に配置できます。 たとえば、ターゲット・システムのQAインスタンスを示す別の場所を作成および登録できます。
コネクタは、特定の場所から別の場所にデータを転送するパスを定義します。
「
EXPENSE_WH_LOCATION」→「
EXPENSE_WH」を開きます。 右側のObject Detailsパネルで、以前のレッスンで設計したすべてのオブジェクトの設計ステータス、配置ステータス、および他の詳細を確認します。
| | 3.
|
左側のナビゲーション・ツリーで、「
External Tables」を開いて選択します。 右側のObject Detailsパネルで、2つの外部表(EXPENSE_CATEGORIESとEXPENSE_DATA)のDesign Statusに
Newが設定されているかどうかを確認します。
スクリーンショットでハイライトされている「
Default Actions」をクリックして、Deploy ActionがNoneからCreateに変更されていることを確認します。
注:
Default Actionsボタンは、選択したオブジェクトのアクションを自動的に更新します。 リポジトリのメタデータの詳細に基づいて、最適なアクションを決定します。 たとえば、設計ステータスがNewに設定されているオブジェクトの場合、アクションが自動的にCreateに設定されます。
| | 4.
|
選択した外部表を配置するには、Fileメニューから「
Deploy」→「
To Control Center」を選択するか、ツールバーの
Deployボタン
をクリックします。
スクリーンショットに示されているように、コンソールの右下のControl Center Jobsパネルで配置の進捗状況を監視できます。
これがこのターゲット・ロケーションへの最初の配置なので、場所を登録する必要があります。 Edit Oracle Database Locationウィンドウで、パスワードに
expense_wh、ホストに
localhost、ポートに1521、サービス名に
orclを入力します(セットアップで異なる値を使用している場合は、適宜置き換えてください)。 「
Test Connection」をクリックして、ターゲット・スキーマへの接続をテストします。
接続が成功している場合、「
OK」をクリックします。
| | 5.
|
Control Center Jobsパネルで、配置ステータスが"生成"
、"実行"
、"正常終了"
に変更されることを確認します。 2つの外部表のDeploy StatusがSuccessに変更されていることを確認します。
配置に成功した外部表に生成したコードを表示できます。 スクリーンショットにハイライトされているControl Center JobsパネルのJob列の「
OWB_DEMO」をダブルクリックします。
Job Details: OWB_DEMO(
数値)ダイアログ・ボックスが表示されます(ダイアログ・ボックスのタイトルの括弧に囲まれた数値は無視してください)。 ダイアログ・ボックスの左上隅のナビゲーション・ツリーで、「
External Tables」を選択します。 ダイアログ・ボックスの右上隅の「
Script」タブをクリックします。 Oracle Warehouse Builderは、外部表ごとにDDLスクリプトを生成します。
Expense_Categories外部表に生成したコードを表示するには、「
Expense_Categories」を選択します。 View Codeボタンを使用できます。
「
View Code」をクリックします。
Expense_Categories.ddlウィンドウをスクロールして、生成したコードを表示します。
Codeメニューから「
Close」を選択して、コード・ウィンドウを閉じます。 Job Details: OWB_DEMOダイアログ・ボックスで、Fileメニューの「
Close」を選択して、ダイアログ・ボックスを閉じます。 コントロール・センター・マネージャは終了しないでください。
|
EXPENSE_WHスキーマに2つの外部表が正しく配置されました。
トピック・リストに戻る
キューブおよび参照ディメンションの配置
次の手順で、REL_CATEGORYとREL_TIMEの2つのディメンションを使用したREL_EXPENSEキューブを配置します。
| 1.
|
ディメンションとキューブを配置する前に、これらのディメンションとキューブの基礎となるリレーショナル表と順序を配置する必要があります。
コントロール・センター・マネージャのEXPENSE_WHの「
Tables」を開きます。 「
Sequences」を開きます。 すべての表と順序を配置するには、「
Tables」を選択し、
[Ctrl]を押しながら「
Sequences」を選択します。
3つの表のDesign Statusと2つの順序を確認します。
| | 2.
|
「
Default Actions」をクリックして、Deploy ActionをCreateに設定します。 Fileメニューから「
Deploy」→「
To Control Center」を選択するか、ツールバーの
Deployボタン
をクリックします。
Control Center Jobsパネルで、配置の進捗状況を監視します。 配置が成功します。
| | 4.
|
キューブを配置する前に、関連するディメンションを配置する必要があります。
ディメンションとキューブを配置する前に、配置オプションが
Deploy to Catalog Onlyに設定されていることを確認します。 配置オプションを設定するには、コントロール・センター・マネージャからデザイン・センターに切り替えます。 デザイン・センターで適切なディメンションまたはキューブを右クリックして、メニューから「
Configure」を選択します。
Configuration Propertiesダイアログ・ボックスで、Deployment Optionsプロパティを「
Deploy to Catalog Only」に設定します。
スクリーンショットは、REL_EXPENSEキューブのConfiguration Propertiesダイアログ・ボックスを示しています。
次のオブジェクトのDeployment Optionsプロパティを「
Deploy to Catalog Only」
に変更します。
- REL_EXPENSEキューブ
- REL_CATEGORYディメンション
- REL_TIMEディメンション
注:Oracle Warehouse Builderは、ディメンション・オブジェクトに4つの配置オプションを提供します。
|
Deploy All: リレーショナル実装またはROLAP実装の場合、ディメンション・オブジェクトはデータベースに配置され、CWM定義がOLAPカタログに配置されます。 MOLAP実装の場合、ディメンション・オブジェクトはアナリティック・ワークスペースに配置されます。
| |
Deploy Data Objects Only: これは、デフォルトの配置オプションです。 このオプションは、データベースにディメンション・オブジェクトだけを配置します。 リレーショナル実装を使用するディメンション・オブジェクトにのみ、このオプションを選択できます。 このオプションは、Oracle Warehouse Builder 10g
R1のコード生成と同じです。
このオプションを使用してオブジェクトを配置すると、データ・ビューアがOLAPカタログ・メタデータを使用してデータを表示するため、データ・ビューアでロードしたデータを表示できません。
| |
Deploy to Catalog Only: このオプションは、CWM定義をOLAPカタログにのみ配置します。 データのみを配置した後にディメンション・オブジェクト・データにアクセスするためにOracle BI BeansやOracle Discoverer for OLAPなどのアプリケーションを使用する場合、このオプションを使用します。
このオプションを使用すると、データ・ビューアでディメンションやキューブにロードしたデータを表示できます。
| | Deploy Aggregation: このオプションは、キューブ・メジャーに定義された集計を配置します。 このオプションは、キューブにのみ使用できます。
|
デザイン・センターからコントロール・センター・マネージャに戻ります。 EXPENSE_WHから「
Dimensions」を開いて選択します。 2つのディメンションのDesign Statusが
Newに設定されていることを確認します。 「
Default Actions」をクリックして、Deploy ActionをCreateに変更します。
配置するには、Fileメニューから「
Deploy」→「
To Control Center」を選択するか、
Deployボタン
をクリックします。
Control Center Jobsパネルで、配置ステータスが"生成"、"実行"、"正常終了"に変更されることを確認します。
| | 5.
|
EXPENSE_WHから「
Cubes」を開いて選択します。REL_EXPENSEキューブのDesign Statusが
Newに設定されていることを確認します。 「
Default Actions」をクリックして、Deploy ActionをCreateに変更します。
配置するには、Fileメニューから「
Deploy」→「
To Control Center」を選択するか、
Deployボタン
をクリックします。
再度Control Center Jobsパネルで、配置ステータスが"生成"、"実行"、"正常終了"に変更されることを確認します。
REL_EXPENSEキューブとREL_TIMEおよびREL_CATEGORYの2つのディメンションが正しく配置されます。
|
トピック・リストに戻る
マッピングの配置
外部表、ディメンション、およびキューブを配置したので、次にETLマッピングを配置します。 マッピングを配置する場合、Oracle Warehouse Builderは、適切なスクリプトを
生成します。 マッピングでは、これらのスクリプトを
実行する追加の手順に従って、ソースからターゲットにETLを実際に実行する必要があります。
次のレッスンでマッピングを実行します。 マッピングを配置する手順は、以前に実行した手順と似ています。
| 1.
|
EXPENSE_WH_LOCATIONの「
Mappings」を選択します。 Object Detailsパネルでは、Design Statusが
Newに設定されている3つのマッピングが選択されています。
| | 2.
|
「
Default Actions」をクリックして、Deploy ActionをNoneからCreateに変更します。 Fileメニューから「
Deploy」→「
To Control Center」を選択するか、ツールバーの
Deployボタン
をクリックします。
これらのマッピングの配置は、以前のオブジェクトの配置と比べて数秒長くかかります。
Control Center Jobsパネルで、配置ステータスが"生成"、"実行"、"正常終了"に段階的に変更されます。 マッピングが正しく配置され、実行する準備ができました。
注: 配置では、警告が発生しても成功のステータスで表示される場合があります。 ターゲット列よりもソース列が長い警告は、この例では無視できます。
マッピング用に生成したコードを表示するには、Control Center Jobsパネルのリストの上部にある「
OWB_DEMO」ジョブをダブルクリックします。
| | 3.
|
Job Details: OWB_DEMOダイアログ・ボックスで、左上のパネルのナビゲーション・ツリーで「
Mappings」をクリックします。 「
Script」タブをクリックします。
Oracle Warehouse Builderは、配置されたマッピングごとに.pls(PL/SQL)コードを生成します。 REL_CATEGORY_MAPに生成したコードを表示するには、「
REL_CATEGORY_MAP」を選択して、「
View Code」をクリックします。
コード・ウィンドウを下方向にスクロールして、生成したコードを確認します。
Codeメニューから「
Close」を選択します。 Job Detailsウィンドウで、Fileメニューの「
Close」をクリックして終了します。 コントロール・センター・マネージャは開いたままにします。
|
トピック・リストに戻る
プロセス・フローの配置
前のレッスンで、ターゲット・ディメンションおよびキューブをロードするためにマッピングの実行を自動化するプロセス・フローを
設計しました。
プロセス・フローを実行して配置されたマッピングの実行が発生する前に、プロセス・フローを
配置する必要があります。 プロセス・フローを配置するには、以下の手順を実行します。
| 1.
|
コントロール・センター・マネージャで、「
WH_OWF_LOCATION」→「
MY_PF_MODULE」→「
PK」を開きます。 「
PK」を選択します。
Object Detailsパネルで、プロセス・フロー・
パッケージの
PKが配置用に選択されています。 Design StatusはNewに設定されています。 「
Default Actions」をクリックして、Deploy ActionをCreateに設定します。
注:内部のプロセス・フローではなくここでプロセス・フロー・パッケージを
配置します。 次のレッスンで、プロセス・フローを
実行します。
Fileメニューから「
Deploy」→「
To Control Center」を選択するか、
Deployボタン
をクリックします。
これがこのWH_OWF_LOCATIONへの最初の配置なので、場所を登録する必要があります。 Edit Oracle Database Locationウィンドウで、パスワードに
owf_mg、ホストに
localhost、ポートに1521、サービス名に
orclを入力します(セットアップで異なる値を使用している場合は、適宜置き換えてください)。 「
Test Connection」をクリックして、ターゲット・スキーマへの接続をテストします。
接続が成功している場合、「
OK」をクリックします。
プロセス・フロー・パッケージのPKが正しく配置されます。
注:プロセス・フロー・パッケージの配置中に"RPE-02072: Oracle Workflow NLS language ...has not been enabled in the Oracle Workflow repository. Please enable using the Oracle Workflow wfnlena.sql server-side script."エラーが表示された場合、NLS言語の有効化およびロードを行うためにワークフロー・リポジトリに必要な2つのスクリプトを実行する必要があります。 以下の手順に従います。
SQL*Plusで
owf_mgrスキーマにログオンします。 (アカウントのロックが解除されていることを確認します。)
SQLプロンプトで、次のコマンドを入力します。
@<ORACLE_HOME>\owb\wf\admin\sql\wfnlena.sql
<ORACLE_HOME>を使用しているOracleホーム・パスに置き換えてください。 このスクリプトには、2つの入力が必要です。それぞれGBとYを入力します。 GBは英語のコードです。 他の言語の場合、適切な言語コードを把握する必要があります(日本語のコードはJAです)。
次のように、SQLプロンプトでwfnladd.sqlを実行します。
@<ORACLE_HOME>\owb\wf\admin\sql\wfnladd.sql
| | 2.
|
プロセス・フローに生成したコードを表示するには、Control Center Jobsパネルの「
OWB_DEMO」ジョブをダブルクリックします。
PKダイアログ・ボックスで、スクリーンショットでハイライトされている「
Script」タブをクリックします。 Oracle Warehouse Builderは、プロセス・フローの.xmlスクリプトを生成します。
生成したコードを表示するには、「
PK」を選択します。 View Codeボタンを使用できます。
「
View Code」をクリックします。
コード・ウィンドウを下方向にスクロールして、生成したコードを確認します。
コード・ウィンドウを終了します。 Fileメニューから「
Close」を選択して、PKダイアログ・ボックスを閉じます。 コントロール・センター・マネージャで、Fileメニューの「
Close」を選択して終了します。
|
トピック・リストに戻る
まとめ
このレッスンでは、ディメンションとキューブの論理設計を物理的に実装する方法を学習しました。 また、ソースから新しいターゲットにデータを抽出、変換、およびロードできるスクリプトを生成するため、マッピングを配置しました。
このレッスンで学習した内容は、以下のとおりです。
|
外部表の配置
| |
キューブおよび参照ディメンションの配置
| |
マッピングの配置
| | プロセス・フローの配置 |
注:4つの個別の手順ですべてのオブジェクトの配置を行いました。 Oracle Warehouse Builderを使用すると、Deployボタンをクリックするだけですべてのオブジェクトを簡単に配置できますが、 このレッスンではより深く理解するために段階的なアプローチを実行しました。
次のレッスンでは、プロセス・フローを実行して変換したデータでターゲット・ディメンションおよびキューブをロードします。
トピック・リストに戻る
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|