Oracle Database 2日でデータ・ウェアハウス・ガイド 11g リリース1(11.1) E05764-01 |
|
Oracle Warehouse Builderでデータ・オブジェクトの定義を作成およびインポートした後は、データをソースからターゲットに移動する抽出、変換およびロード(ETL)の各操作を設計できます。Oracle Warehouse Builderでは、マッピングを使用してこれらの操作を設計します。
この項では、マッピングの作成、編集および使用方法に関する次のトピックについて説明します。
マッピングとはデータをソースから抽出し、変換してターゲットにロードする一連の操作を表します。これによりデータ・フローおよびデータで実行される操作がビジュアル表示されます。マッピングをOracle Warehouse Builderで設計する場合は、マッピング・エディタ・インタフェースを使用します。
マッピングの基本となる設計要素は演算子です。演算子を使用して、データ・フローでソースおよびターゲットを表現します。また、演算子を使用して、ソースからターゲットへのデータの変換方法を定義することもできます。ソースとして選択する演算子は、マッピングの設計方法に影響を与えます。Oracle Warehouse Builderでは、選択された演算子に基づいて、次のいずれかのマッピング生成言語にマッピングが割り当てられます。
各コード言語では、マッピングを設計する際、特定のルールに従う必要があります。
このガイドでは、PL/SQLマッピングを定義する方法を説明します。他のタイプのマッピングを定義するには、『Oracle Warehouse Builderユーザーズ・ガイド』を参照してください。PL/SQLマッピングを定義する基本ルールは、PL/SQLマッピングには、フラット・ファイル演算子またはSAP/R3ソース以外のすべてのタイプのソース演算子を含めることができることです。
マッピングを設計してマッピングのコードを生成した後、プロセス・フローを作成するか、直接配布を続行して実行できます。
プロセス・フローを使用して、マッピングを相互に関連付けます。たとえば、あるマッピングが完了すると電子メール通知がトリガーされて別のマッピングが起動するように、プロセス・フローを設計できます。
マッピングおよび作成した関連するプロセス・フローを配布し、マッピングを実行します。
図5-1「プロジェクト・エクスプローラの「マッピング」ノード」に、MAP1
というマップが格納されている「マッピング」ノードを示します。この例では、ウェアハウス・ターゲットの名前はORCL_MOD
です。
「マッピングの作成」ダイアログ・ボックスが表示されます。
マッピング名の指定と説明の記述に関するルールを表示するには、「ヘルプ」を選択します。
マッピングの定義が保存され、その名前がプロジェクト・エクスプローラ内に挿入されます。また、そのマッピングのマッピング・エディタが表示され、タイトル・バーにマッピングの名前が表示されます。
Oracle Warehouse Builderによって、マッピング・エディタが表示されます。
マッピングを設計するときは、マッピング・エディタ・パレットから演算子を選択し、キャンバスにドラッグできます。
演算子をマッピングに追加する手順は、選択する演算子のタイプによって異なります。これは、一部の演算子はワークスペース・オブジェクトにバインドされ、その他の演算子はバインドされないためです。一般的に、データ・ソースまたはターゲット演算子を追加すると、Oracle Warehouse Builderによって、Oracle Warehouse Builderワークスペースのそのオブジェクトのバージョンと、マッピング・エディタ用の個別のバージョンが維持されます。たとえば、表演算子をマッピングに追加した場合は、Oracle Warehouse Builderによってその表のコピーがワークスペースで維持されます。個々のバージョンは、1つにバインドされます。つまり、マッピングのバージョンがワークスペースのバージョンにバインドされます。
2つのバージョンを区別するために、この項では、ワークスペース内のオブジェクトを総称的にワークスペース・オブジェクトと呼び、具体的には、ワークスペース表、ワークスペース・ビューのように表現します。また、マッピングの演算子は表演算子、ビュー演算子のように表現します。したがって、ディメンションをマッピングに追加する場合、マッピングのディメンションはディメンション演算子、ワークスペースのディメンションはワークスペース・ディメンションと表されます。
Oracle Warehouse Builderでは、ユーザーがこれらのオブジェクトの変更定義を同期化できるように、一部の演算子に個別のワークスペース・オブジェクトが保持されます。たとえば、ワークスペース表の新規メタデータ定義を再インポートした場合は、これらの変更内容をマッピングの表演算子に伝播する必要があります。反対に、マッピングの表演算子を変更した場合は、これらの変更内容を関連するワークスペース表に伝播する必要があります。これらのタスクは、同期化と呼ばれるプロセスによって実現します。Oracle Warehouse Builderでは、自動的に同期化またはマッピング・エディタから手動で同期化できます。
ワークスペース・オブジェクトにバインドできる演算子を選択すると、マッピング・エディタに「マッピング<演算子名>の追加」ダイアログ・ボックスが表示されます。このダイアログ・ボックスの使用方法の詳細は、「ヘルプ」を選択してください。
ワークスペース・オブジェクトにバインドできない演算子を選択した場合は、演算子を作成するためのウィザードまたはダイアログ・ボックスが表示されます。
マッピング・エディタでは、キャンバスに最大化された演算子が表示されます。左上の隅に演算子名が表示されます。各属性名およびデータ型を表示できます。
演算子を最小化するには、右上隅の矢印をクリックします。マッピング・エディタのキャンバスに演算子がアイコンとして表示されます。
ワークスペース・オブジェクトにバインドできる演算子を追加すると、マッピング・エディタに「マッピング<演算子名>の追加」ダイアログ・ボックスが表示されます。次のオプションから1つ選択します。
このオプションは、マッピング・エディタを使用して、新規ステージング領域表や新規ターゲット表など、新しいワークスペース・オブジェクトを定義する場合に使用します。
「バインドされていない演算子を属性なしで作成」を選択した後、新しいオブジェクトの名前を入力します。属性のない演算子がキャンバスに表示されます。
これで、演算子の属性を追加および定義できるようになりました(「演算子の編集」を参照)。次に、ターゲット・モジュールに新規ワークスペース・オブジェクトを作成するために、演算子を右クリックして「作成とバインド」を選択します。
このオプションをマッピング設計で使用する方法の例は、「例: マッピング・エディタによるステージング領域表の作成」を参照してください。
このオプションは、ワークスペース内の定義済またはインポート済のオブジェクトに基づいて、演算子を追加する場合に使用します。
接頭辞を入力してオブジェクトを検索するか、選択したモジュール内のオブジェクトの表示リストからオブジェクトを選択します。
複数のアイテムを選択するには、[Ctrl]キーを押しながら各アイテムをクリックします。連続したアイテムのグループを選択するには、選択範囲の最初のオブジェクトをクリックし、[Shift]キーを押しながら最後のオブジェクトをクリックします。
演算子は、マッピングと同じモジュール内のワークスペース・オブジェクトまたは別のモジュールのワークスペース・オブジェクトに基づいて追加できます。別のモジュールのワークスペース・オブジェクトを選択すると、マッピング・エディタによってコネクタが作成されます(コネクタが存在していない場合)。このコネクタによって、マッピングのロケーションとワークスペース・オブジェクトのロケーション間のデータの移動パスが確立されます。
各演算子には、エディタが関連付けられています。その演算子エディタを使用して、演算子、グループおよび属性に関する一般的な情報と構造的な情報を指定します。演算子エディタでは、グループおよび属性を追加または削除したり、名前を変更できます。演算子の名前も変更できます。
演算子の編集は、ロード・プロパティや条件付き動作の割当てとは異なります。ロード・プロパティや条件付き動作を指定するには、プロパティ・ウィンドウ(「演算子、グループおよび属性プロパティの設定」を参照)を使用します。
あるいは、演算子内のグループまたは属性を選択します。
マッピング・エディタに演算子エディタが表示され、「名前」タブ、「グループ」タブ、および各タイプの演算子のグループの「入力/出力」タブが表示されます。
いくつかの演算子には追加のタブが含まれます。たとえば、Match Merge演算子には一致ルールおよびマージ・ルールを定義するタブが含まれます。
タブの実行方法については、「ヘルプ」を参照してください。
マッピング・ソース演算子、データを変換する演算子およびターゲット演算子を選択した後は、これらの演算子を接続できます。データ・フローの接続により、ソースから演算子を通過してターゲットに至るデータ・フローの様子が視覚的に表されます。
演算子は、次のいずれかの方法で接続できます。
一方の演算子の単一の出力属性から、他方の演算子の単一の入力属性に線を引きます。
マウスをドラッグするとき、接続を示す行がマッピング・エディタ・キャンバスに表示されます。
図5-3に、属性が接続されたマッピングを示します。
属性を接続するときは、次のルールに留意します。
グループを接続すると、属性が自動的にコピーされるか、詳細情報を入力するように指示されます。
演算子グループを既存の属性を持たないターゲット・グループに接続すると、属性が自動的にコピーされ、各属性が接続されます。これは、「例: マッピング・エディタによるステージング領域表の作成」に示すようなマッピングを設計する場合に便利です。
マッピング・エディタでバインドされていない表演算子を使用すると、ステージング領域表をすばやく作成できます。
次の手順は、既存のソース表に基づいてステージング表を作成する方法を示しています。この手順は、ビュー、マテリアライズド・ビュー、フラット・ファイルおよび変換の作成にも使用できます。
メニュー・バーから「マッピング」、「追加」、「データ・ソース/ターゲット」の順に選択します。「データ・ソース/ターゲット」メニューで、「表演算子」を選択します。
マッピングは、図5-4と類似していて、1つのソース表と属性のない1つのステージング領域表があります。
Oracle Warehouse Builderによって、ソース属性がステージング領域表にコピーされ、2つの演算子が接続されます。
図5-5に示すダイアログ・ボックスが表示されます。
Oracle Warehouse Builderによって、指定したターゲット・モジュールに新しい表が作成されます。
マッピング・キャンバスで空白を選択すると、エディタの左側にある「プロパティ・インスペクタ」にマッピング・プロパティが表示されます。マッピングについて次のプロパティを設定できます。
マッピングに1つのターゲットのみが含まれている場合、あるいはマッピングがSQL*LoaderまたはABAPマッピングの場合は、ターゲット・ロード順序が適用されません。デフォルトの設定を受け入れてマッピングの設計を続行してください。
複数のターゲットがあるPL/SQLマッピングを設計すると、Oracle Warehouse Builderにより、ターゲットをロードするデフォルトの順序が計算されます。ターゲット間に外部キー関連を定義すると、Oracle Warehouse Builderにより、親の次に子をロードするデフォルトの順序が作成されます。外部キー関係を作成しない場合、またはターゲット表に再帰的な関連がある場合は、Oracle Warehouse Builderにより、無作為な順序がデフォルトとして割り当てられます。
デフォルトのロード順序は、「ターゲット・ロード順序」プロパティを設定することで上書きできます。ターゲットの順序を変更する際に間違った変更を実行した場合は、「デフォルトにリセット」オプションを選択することで、デフォルトの順序に戻ります。
図5-6に示すように、Oracle Warehouse Builderによって、「ターゲット・ロード順序」ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、TARGET2ロードがTARGET1の前に表示されています。
「デフォルトにリセット」ボタンは、ターゲット・ロード順序を再計算する場合に使用します。ターゲットの順序変更を誤った場合、または順序を割り当てた後に当初の順序が無効になるようなマッピングの設計変更があった場合は、再計算が必要になります。
キャンバスでオブジェクトを選択すると、エディタの左側にあるプロパティ・インスペクタに、関連するプロパティが表示されます。
図5-7に、表演算子のプロパティ・インスペクタを示します。
次のタイプのプロパティを表示および設定できます。
マッピングに使用する多くの演算子に対応する定義は、Oracle Warehouse Builderワークスペースにあります。このことは、表演算子やビュー演算子など、ソース演算子とターゲット演算子に当てはまります。また、順序演算子や変換演算子など、定義が複数のマッピングにまたがって使用される他の演算子にも当てはまります。このような演算子を変更するときは、変更内容をワークスペース・オブジェクトに伝播する必要があります。
変更の伝播方向は、次の選択肢から決定できます。
ワークスペース・オブジェクトから演算子への同期化:本番環境でマッピングの使用を開始した後、ソースまたはターゲットに対してETL設計に影響する変更が行われる場合があります。通常、このような変更を管理する最善の方法は、Oracle Warehouse Builderのオンライン・ヘルプで説明されているように、Oracle Warehouse Builderの依存性マネージャを使用することです。依存性マネージャを使用すると、変更による影響が自動的に評価され、影響を受けるすべてのマッピングがまとめて同期化されます。また、「ワークスペース・オブジェクトから演算子への同期化」で説明されているように、マッピング・エディタで、オブジェクトを手動で同期化することもできます。
演算子からワークスペース・オブジェクトへの同期化: マッピングの演算子を変更する場合は、変更内容を対応するワークスペース定義に伝播させます。たとえば、インポートしてマッピングに使用したソースの場合、属性に複合物理名が付いている場合があります。
同期化がリフレッシュとは異なることに注意してください。リフレッシュ・コマンドでは、マルチユーザー環境で他のユーザーが行った変更にあわせて、確実に最新の状態が保たれます。同期化では、対応するワークスペース・オブジェクトと演算子が照合されます。
同期化する場合は、演算子を1つ選択し、指定したワークスペース・オブジェクトの定義とその演算子を同期化します。
図5-8に示す「演算子の同期化」ダイアログ・ボックスが表示されます。
この手順では、「ワークスペース・オブジェクトから演算子に同期」、または「演算子からワークスペース・オブジェクトに同期」のいずれかも選択します。
「一致方針」の使用方法を参照するには、「ヘルプ」を選択します。
マッピング・エディタでは、次のような理由により、ワークスペース・オブジェクトから演算子への同期化を実行できます。
図5-9に、フラット・ファイル演算子と新規ワークスペース・オブジェクトとの同期化の例を示します。
表5-1に、演算子および同期化できるワークスペース・オブジェクトのタイプを示します。
外部表演算子から同期化するとき、Oracle Warehouse Builderは、関連付けられたフラット・ファイルではなく、ワークスペース外部表のみに基づいて演算子を更新することに注意してください。
マッピングの演算子を変更した場合は、それらの変更をワークスペース・オブジェクトに伝播する必要があります。同期化によって、表、ビュー、マテリアライズド・ビュー、変換およびフラット・ファイルの各演算子の変更を伝播できます。
次のような理由により、演算子からワークスペース・オブジェクトへの同期化を実行します。
演算子からの同期化は、他の演算子とワークスペース・オブジェクトとの依存関係には影響を与えません。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|