ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integratorスタート・ガイド
11g リリース1(11.1.1)
B65041-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 統合インタフェースの使用

この章では、Oracle Data Integratorでの統合インタフェースの使用方法について説明します。デモンストレーション環境には、サンプル・インタフェースがいくつか含まれています。この章では、次のインタフェースの作成方法を示します。

この章の内容は、次のとおりです。

6.1 Pop.TRG_CUSTOMERインタフェースの例

この項の内容は、次のとおりです。

6.1.1 目的と統合の要件

この項では、統合機能と、統合インタフェースPop.TRG_CUSTOMERが満たすべき要件について説明します。

Pop.TRG_CUSTOMERインタフェースの目的は、Orders Application - HSQLモデルのSRC_CUSTOMER表からSales Administration - HSQLモデルのTRG_CUSTOMERターゲット表にデータをロードすることです。

ただし、SRC_CUSTOMER表に、この操作に必要がデータがすべて含まれているわけではありません。次の情報をターゲット表に追加する必要があります。

  • Parameters - FILEモデルのSRC_AGE_GROUPフラット・ファイルに定義されている年齢層(AGE_RANGE)は、ソース表のAGE属性に対応します。

  • 顧客営業担当者の姓と名前(LAST_NAMEとFIRST_NAME)。Parameters - FILEモデルのSRC_SALES_PERSONファイルに定義され、ソース表の営業担当者番号(SALES_PERS_ID)に対応します。

  • ソース表のDEAR列の数値データ(0、1、2)からターゲットの標準の敬称テキスト文字列(Mr、MrsまたはMs)に変換された値。

  • ソース顧客の名前と姓を連結したもの。

ソース・データは、ターゲット環境に実装されている整合性ルールと矛盾する場合があります。このインタフェースの場合、すべての制約が満たされていることを検証し、無効な行をターゲット・データベースではなくエラー表に格納することで、データをクレンジングします。この例では、2つの重要な整合性ルールを満たす必要があります。

  • 顧客は21歳より上である必要があります(条件AGE > 21)

  • 顧客は、TRG_CITY表に存在する市区町村(CITY_ID)に関連付けられている必要があります(参照FK_CUST_CITY)

これらのルールの機能上の詳細と手順は、第6.1.3項「統合インタフェースの作成」に示されています。

6.1.2 インタフェースの定義

この項では、次のものについて説明します: 統合インタフェースPop.TRG_CUSTOMER(この例で作成)。詳細は、第6.1.3項「統合インタフェースの作成」を参照してください。

Pop.TRG_CUSTOMERインタフェースでは、次のデータと変換が使用されます。

  • 1つのターゲット・データストア。表6-1に、ターゲット・データストアの詳細を示します。

    表6-1 次のターゲット・データソースの詳細: Pop.TRG_CUSTOMER

    モデル データストア 説明 タイプ

    Sales Administration - HSQL

    TRG_CUSTOMER


    HSQL表


  • 3つのソース・データストア。表6-2に、ソース・データストアの詳細を示します。

    表6-2 次のソース・データストアの詳細: Pop.TRG_CUSTOMER

    モデル データストア 説明 タイプ

    Orders Application - HSQL

    SRC_CUSTOMER

    ソース・システムの顧客

    HSQL表

    Parameters - FILE

    SRC_AGE_GROUP

    年齢層ファイル

    セミコロンで区切られたファイル

    Parameters - FILE

    SRC_SALES_PERSON

    営業担当者ファイル

    固定サイズ・レコードのファイル


  • 1つの結合。表6-3に、結合の詳細を示します。

    表6-3 次で使用される結合: Pop.TRG_CUSTOMER

    結合 説明 SQLルール 実行位置

    営業担当者と顧客

    SRC_SALES_PERSONとSRC_CUSTOMERの結合

    SRC_CUSTOMER.SALES_PERS_ID = SRC_SALES_PERSON.SALES_PERS_ID

    ステージング領域


  • 1つのルックアップ表。表6-4に、ルックアップ表の詳細を示します。

    表6-4 次で使用されるルックアップ表: Pop.TRG_CUSTOMER

    ルックアップ 説明 SQLルール 実行位置

    顧客と年齢層

    顧客の年齢は、ファイル内の最低年齢と最高年齢の間である必要があります。

    SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX

    ステージング領域


  • 複数の変換ルール。表6-5に、変換ルールの詳細を示します。

    表6-5 次で使用される変換ルール: Pop.TRG_CUSTOMER

    ターゲット列 オリジナル SQLルール 実行位置

    CUST_ID

    SRC_CUSTOMER.CUSTID

    SRC_CUSTOMER.CUSTID

    ソース

    DEAR

    SRC_CUSTOMER.DEAR = 0の場合は'MR'

    SRC_CUSTOMER.DEAR = 1の場合は'MRS'、それ以外は'MS'

    CASEWHEN(SRC_CUSTOMER.DEAR=0, 'MR', CASEWHEN( SRC_CUSTOMER.DEAR=1, 'MRS', 'MS') )

    ソース

    CUST_NAME

    SRC_CUSTOMER.FIRST_NAMEとSRC_CUSTOMER.LAST_NAME (大文字)の連結

    SRC_CUSTOMER.FIRST_NAME || ' ' || UCASE(SRC_CUSTOMER.LAST_NAME)

    ソース

    ADDRESS

    SRC_CUSTOMER.ADDRESS

    SRC_CUSTOMER.ADDRESS

    ソース

    CITY_ID

    SRC_CUSTOMER.CITY_ID

    SRC_CUSTOMER.CITY_ID

    ソース

    PHONE

    SRC_CUSTOMER.PHONE

    SRC_CUSTOMER.PHONE

    ソース

    AGE

    SRC_CUSTOMER.AGE

    SRC_CUSTOMER.AGE

    ソース

    AGE_RANGE

    SRC_AGE_GROUP.AGE_RANGE

    SRC_AGE_GROUP.AGE_RANGE

    ステージング領域

    SALES_PERS

    SRC_SALES_PERSON.FIRST_NAMEとSRC_SALES_PERSON.LAST_NAME (大文字)の連結

    SRC_SALES_PERSON.FIRST_NAME || ' ' || UCASE(SRC_SALES_PERSON.LAST_NAME)

    ステージング領域

    CRE_DATE

    今日の日付

    CURDATE()

    ターゲット

    UPD_DATE

    今日の日付

    CURDATE()

    ターゲット


6.1.3 統合インタフェースの作成

この項では、次のものの作成方法について説明します: Pop.TRG_CUSTOMER統合インタフェース。Pop.TRG_CUSTOMERインタフェースを作成するには、次の手順に従います。

  1. 新規統合インタフェースの挿入

  2. ターゲット・データストアの定義

  3. ソース・データストアの定義

  4. ルックアップ表の定義

  5. ソース・データストア間の結合の定義

  6. マッピングの定義

  7. データ・ロード・ストラテジ(LKM)の定義

  8. データ統合ストラテジ(IKM)の定義

  9. データ制御ストラテジの定義

6.1.3.1 新規統合インタフェースの挿入

新規統合インタフェースを作成するには:

  1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンの「Demo」プロジェクト・ノードを展開します。

  2. 「Sales Administration」ノードを展開します。

  3. 図6-1に示すように、「Sales Administration」フォルダで「インタフェース」ノードを右クリックし、「新規インタフェース」を選択します。

    図6-1 新規インタフェースの挿入

    図6-1については周囲のテキストで説明しています。

    インタフェース・エディタが表示されます。

  4. インタフェース・エディタの「定義」タブで、インタフェースの名前(Pop.TRG_CUSTOMER)を図6-2に示すように「名前」フィールドに入力します。

    図6-2 インタフェース・エディタ

    図6-2については周囲のテキストで説明しています。

6.1.3.2 ターゲット・データストアの定義

ターゲット・データストアは、インタフェースによってロードされる要素です。

ターゲット・データストアを次のものに挿入する手順: Pop.TRG_CUSTOMERインタフェース:

  1. インタフェース・エディタの「マッピング」タブに移動します。

  2. インタフェース・ダイアグラムの「マッピング」タブの表示は、図6-3のようになります。

    図6-3 インタフェース・エディタの「マッピング」タブ

    図6-3については周囲のテキストで説明しています。
  3. デザイナ・ナビゲータで、「モデル」アコーディオンおよび「Sales Administration - HSQL」モデルを展開します。

  4. 図6-4に示すように、「Sales Administration - HSQL」モデルの「TRG_CUSTOMER」データストアを選択し、「ターゲット・データストア」パネルにドラッグします。

    図6-4 ターゲット・データストア

    図6-4については周囲のテキストで説明しています。

6.1.3.3 ソース・データストアの定義

ソース・データストアには、ターゲット・データストアのロードに使用されるデータが含まれています。インタフェース・ソースとして、モデルのデータストア、およびインタフェースのターゲットである一時データストアの2つのタイプのデータストアを使用できます。この例では、Orders Application - HSQLおよびParameters - FILEモデルのデータストアを使用します。

ソース・データストアを次のものに追加する手順: Pop.TRG_CUSTOMERインタフェース:

  1. 「マッピング」タブで、次のソース・データストアをソース・ダイアグラムにドラッグします。

    • Orders Application - HSQLモデルのSRC_CUSTOMER

    • Parameters - FILEモデルのSRC_SALES_PERSON

  2. インタフェース・エディタの「マッピング」タブの表示は、図6-5のようになります。

    図6-5 ソース・データストア

    図6-5については周囲のテキストで説明しています。
  3. 「自動マップ」ダイアログが、図6-6のように表示されます。

    図6-6 「自動マップ」ダイアログ

    図6-6については周囲のテキストで説明しています。

    「はい」をクリックして、Oracle Data Integratorでマッピングを行う自動化フィールドの使用を確認します。自動マッピングは、ソース・データストアをソース・ダイアグラムにドロップすると行われます。

6.1.3.4 ルックアップ表の定義

この項では、顧客の年齢がファイル内の最低年齢と最高年齢の間である必要があることを定義するルックアップを作成する方法について説明します。

ルックアップは、モデルまたはインタフェースのターゲット・データストアからのデータストア(ルックアップ表と呼ばれます)で、結合式を使用してソース・データストア(駆動表)に関連付けられます。データはルックアップからフェッチされてマッピングで使用されます。

ルックアップ表は、ルックアップ・ウィザードを使用して追加されます。

ルックアップを次のものに作成する手順: Pop.TRG_CUSTOMERインタフェース:

  1. ソース・ダイアグラムのツールバー・メニューから、図6-7に示す「新規ルックアップの追加」を選択します。

    図6-7 ソース・ダイアグラムでのルックアップ表ウィザードの起動

    図6-7については周囲のテキストで説明しています。

    ルックアップ・ウィザードが開きます。

  2. ルックアップ・ウィザードで、「駆動表」リストから「SRC_CUSTOMER(SRC_CUSTOMER)」を選択します。

    ここには現在のダイアグラムのソース・データベースが表示され、ルックアップはリストに表示されないことに注意してください。

  3. 「ルックアップ表」ペインの「データストア」タブで、「Parameters - FILE」モデルから「SRC_AGE_GROUP」データストアを選択します。

    SRC_AGE_GROUPデータストアはルックアップ表として使用されます。

    図6-8に、ルックアップ・ウィザードの最初の画面を示します。

    図6-8 ルックアップ・ウィザードの最初の画面

    図6-8については周囲のテキストで説明しています。
  4. 「次へ」をクリックします。

  5. 左ペインで、駆動表から「AGE」ソース列を選択します。

  6. 右ペインで、ルックアップ表の「AGE_MIN」列を選択します。

  7. 「結合」をクリックします。図6-9に示すように、結合条件が「ルックアップ条件」テキスト・フィールドに表示されます。

    図6-9 ルックアップ・ウィザードの2番目の画面

    図6-9については周囲のテキストで説明しています。
  8. 「オプション」セクションで、実行位置として「ステージング」を選択します。

  9. 「式エディタを起動します」をクリックし、ルックアップ条件を次のように変更します。

    • 等号記号(=)を文字列betweenに置き換えます。

    • 次の文字列を式の末尾に追加します。

      and SRC_AGE_GROUP.AGE_MAX

      これによって、SRC_AGE_GROUPデータストアのAGE_MAX列が追加されます。

  10. 結合式は次のようになります。

    SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX

    これは、SRC_CUSTOMERとSRC_AGE_GROUPデータストアの間の結合に相当し、顧客の年齢がファイル内の最低年齢と最高年齢の間である必要があることを定義します。図6-10に、ルックアップ条件が表示された式エディタを示します。

    図6-10 変更されたルックアップ条件が表示された式エディタ

    図6-10については周囲のテキストで説明しています。
  11. 式エディタで「OK」をクリックします。

  12. 図6-11に示すように、変更されたルックアップ条件がルックアップ・ウィザードに表示されます。

    図6-11 変更されたルックアップ条件が表示されたルックアップ・ウィザードの2番目の画面

    図6-11については周囲のテキストで説明しています。
  13. 「終了」をクリックします。

ソース・ダイアグラムの表示は、図6-12のようになります。

図6-12 次のもののソース・ダイアグラム: Pop.TRG_CUSTOMERインタフェース

図6-12については周囲のテキストで説明しています。

注意:

ソース・データストア間をリンクする参照がモデルにすでに定義されていた場合、これらの参照はソース・ダイアグラムに結合として自動的に表示されます。


6.1.3.5 ソース・データストア間の結合の定義

この項では、ソース・データストア間の結合の定義方法について説明します。

表6-3で定義された結合を作成するには:

  1. ソース・ダイアグラムで、SRC_CUSTOMERデータストアのSALES_PERS_ID列を選択します。

  2. SRC_SALES_PERSONデータストアのSALES_PERS_ID列にドラッグ・アンド・ドロップします。2つのデータストアをリンクする結合が、図6-13のように表示されます。これは、営業担当者識別子に基づいた結合です。

    図6-13 ルックアップと結合を持つPop.TRG_CUSTOMERインタフェースのソース・ダイアグラム

    図6-13については周囲のテキストで説明しています。

6.1.3.6 マッピングの定義

インタフェースの「ターゲット・データストア」パネルで、ソースと一致する名前の列は自動的にマップされます。自動マッピングは、列名の対照によって行われます。表6-5に示された変換ルールの大半が、自動マッピングによって定義されています。この自動マッピング以外に、フィールドCUST_ID、DEAR、CUST_NAME、AGE_RANGE、SALES_PERS、CRE_DATEおよびUPD_DATEに対する変換ルールを定義する必要があります。

変換ルール(マッピングとも呼ばれる)はターゲット列に定義されます。

CUST_IDのマッピング

CUST_IDのマッピングでは、SRC_CUSTOMER.CUSTIDソース列がTRG_CUSTOMER.CUST_IDターゲット列にマップされます。これらの2つの列は、名前が若干異なるため、自動的にマップされていないことに注意してください。

CUST_IDターゲット列のマッピングを定義するには:

  1. ソース・ダイアグラムで、SRC_CUSTOMERデータストアのCUSTID列を選択します。

  2. 図6-14に示すように、「ターゲット・データストア」パネルの「マッピング」フィールドにドラッグします。

    図6-14 CUST_IDのマッピング

    図6-14については周囲のテキストで説明しています。
  3. 「ターゲット・データストア」で「マッピング」フィールドを選択し、プロパティ・インスペクタにプロパティを表示します。

  4. 図6-15に示すように、実行位置が「ソース」に設定されていることを確認します。

    図6-15 実行位置

    図6-15については周囲のテキストで説明しています。

    注意:

    使用可能な実行位置は、ソースターゲットおよびステージング領域です。表6-5で指定されたとおりに変換が実行される環境を必ず選択してください。図6-15に示すラジオ・ボタンのいずれかをクリックして、この環境を選択します。


DEARのマッピング

この変換ルールでは、ソース・データストアのDEAR列(数値)を文字列式としてマップします(0 -->'MR'、1 -->'MRS'、2 -->'MS')。

DEARターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、DEARターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。


    ヒント:

    プロパティ・インスペクタのツールバーで「ビューの固定」をクリックすると、通常はプロパティ・インスペクタの内容が変更される別のコンポーネントを選択した場合でも、プロパティ・インスペクタの現在の内容が引き続き表示されます。ビューの固定ボタンは次のとおりです。

    PIのビューの固定ボタン

    プロパティ・インスペクタのインスタンスの固定を解除し、アクティブな選択内容を追跡できるようにするには、ビューの固定ボタンを再度クリックします。


  2. 「実装」フィールドに、次のマッピング式を入力します。

    CASEWHEN(SRC_CUSTOMER.DEAR=0, 'MR', CASEWHEN( SRC_CUSTOMER.DEAR=1, 'MRS', 'MS') )


    ヒント:

    ソース列(SRC_CUSTOMER.DEAR列など)を「実装」フィールドにドラッグします。


  3. 実行位置が「ソース」に設定されていることを確認します。

CUST_NAMEのマッピング

この変換ルールでは、各顧客の名前と大文字の姓を連結した値がマップされます。

CUST_NAMEターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、CUST_NAMEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. 「実装」フィールドに、次のマッピング式を入力します。

    SRC_CUSTOMER.FIRST_NAME || ' ' || UCASE(SRC_CUSTOMER.LAST_NAME)


    ヒント:

    式エディタを使用してこのルールを作成します。式エディタを使用すると、一般的な構文エラーを回避できます。


  3. 実行位置が「ソース」に設定されていることを確認します。

AGE_RANGEのマッピング

このマッピングでは、SRC_AGE_GROUP.AGE_RANGEがTRG_CUSTOMER.AGE_RANGEにマップされます。

AGE_RANGEターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、AGE_RANGEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. 「実装」フィールドに、次のマッピング式を入力します。

    SRC_AGE_GROUP.AGE_RANGE

  3. 実行位置が「ステージング領域」に設定されていることを確認します。


    注意:

    このルールは、ステージング領域で実行される必要があります。この例のソースはフラット・ファイルで、連結がサポートされるエンジンに関連付けられていません。


SALES_PERSのマッピング

これによって、各営業担当者の名前と大文字の姓を連結した値がマップされます。

SALES_PERSターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、SALES_PERSターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. 「実装」フィールドに、次のマッピング式を入力します。

    SRC_SALES_PERSON.FIRST_NAME || ' ' || UCASE(SRC_SALES_PERSON.LAST_NAME)

  3. 実行位置が「ステージング領域」に設定されていることを確認します。


    注意:

    このルールは、ステージング領域で実行される必要があります。この例のソースはフラット・ファイルで、連結がサポートされるエンジンに関連付けられていません。


CRE_DATEのマッピング

CRE_DATEターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、CRE_DATEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. 「実装」フィールドに、次のマッピング式を入力します。

    CURDATE()

  3. 「アクティブ・マッピング」が選択されていることを確認します。

  4. 実行位置が「ターゲット」に設定されていることを確認します。

  5. 「更新」を選択解除します。マッピングは、挿入でのみ行われます。

  6. CRE_DATEのマッピングのプロパティ・インスペクタの表示は、図6-16のようになります。

    図6-16 CRE_DATEのマッピングのプロパティ・インスペクタ

    図6-16については周囲のテキストで説明しています。

UPD_DATEのマッピング

UPD_DATEターゲット列のマッピングを定義するには:

  1. 「ターゲット・データストア」パネルで、UPD_DATEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. 「実装」フィールドに、次のマッピング式を入力します。

    CURDATE()

  3. 「アクティブ・マッピング」が選択されていることを確認します。

  4. 実行位置が「ターゲット」に設定されていることを確認します。

  5. 「挿入」を選択解除します。マッピングは、更新でのみ行われます。

  6. UPD_DATEのマッピングのプロパティ・インスペクタの表示は、図6-17のようになります。

    図6-17 UPD_DATEのマッピングのプロパティ・インスペクタ

    図6-17については周囲のテキストで説明しています。

式エディタに関する注意

  • 式の構築に使用される式エディタには、テクノロジに固有の関数が含まれていない場合があります。多くのテクノロジに共通する関数のみが含まれています。式エディタに表示されない関数でも、手動で入力し、式に使用できます。

  • このマッピングをターゲットで実行すると、式エディタによってターゲット・システムの構文(この場合はHypersonic SQLも)が指定されます。

  • 「DBMSで式を確認してください」をクリックすると、ソース・サーバーが呼び出され、入力したSQLコードの構文がチェックされます。このチェックは、ルールがソース・サーバーで完全に実行される場合にのみ実行されます。

「ターゲット・データストア」パネル

図6-18に示すように、変換規則が「ターゲット・データストア」パネルに表示されます。

図6-18 ターゲット・データストア・マッピング

図6-18については周囲のテキストで説明しています。

2種類のアイコンが、「ターゲット・データストア」パネルの「インジケータ」列で使用されます。

  • ターゲット列のデータ型の最初の文字(n: numeric、v: varchar, d: date)

  • 式の実行位置。

    表6-6 実行位置アイコン

    アイコン 説明
    「ソースで実行」アイコン

    ソース

    「ステージング領域で実行」アイコン

    ステージング領域

    「ターゲットで実行」アイコン

    ターゲット

    「マッピングでのエラー」アイコン

    マッピングでのエラー。このアイコンが表示されたら、エラーのターゲット列を選択し、プロパティ・インスペクタで入力を確認します。


統合インタフェースの作成および表示には、クイック編集エディタも使用できることに注意してください。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のクイック編集エディタの使用に関する項を参照してください。

6.1.3.7 データ・ロード・ストラテジ(LKM)の定義

データ・ロード・ストラテジは、インタフェース・エディタの「フロー」タブで定義されます。Oracle Data Integratorでは、インタフェースのダイアグラムの構成に応じてフローが自動的に計算されます。また、データ・フローのデフォルトのKMが提示されます。「フロー」タブでは、データ・フローを確認して、データのロードと統合に使用するKMを選択できます。

ロード・ナレッジ・モジュール(LKM)はロード・ストラテジに使用され、統合ナレッジ・モジュール(IKM)は統合ストラテジに使用されます。

ソース環境のSRC_AGE_GROUPファイル、SRC_SALES_PERSONファイルおよびSRC_CUSTOMER表からデータを取得する方法を定義する必要があります。

ロード・ストラテジを定義するには:

  1. インタフェース・エディタの「フロー」タブで、SRC_AGE_GROUPファイルのロードに対応するソース・セットを選択します。この例では、これはSrcSet0 (FILE_GENERIC)です。プロパティ・インスペクタに、このソース・セットのプロパティが表示されます。

  2. 図6-19に示すように、プロパティ・インスペクタのLKMセレクタ・リストで、「LKM File to SQL」が選択されていることを確認します。

    図6-19 「フロー」タブ: Pop.TRG_CUSTOMERインタフェース・エディタ

    図6-19については周囲のテキストで説明しています。
  3. SRC_CUSTOMER表のロードに対応するソース・セットを選択します。

  4. プロパティ・インスペクタのLKMセレクタ・リストで、「LKM SQL to SQL」が選択されていることを確認します。

6.1.3.8 データ統合ストラテジ(IKM)の定義

ロード・フェーズを定義したら、データのターゲット表への統合に使用するストラテジを定義する必要があります。

統合ストラテジを定義するには:

  1. インタフェース・エディタの「フロー」タブのフロー・ダイアグラムでターゲット・オブジェクトを選択します。プロパティ・インスペクタに、ターゲットのプロパティが表示されます。

  2. プロパティ・インスペクタのIKMセレクタ・リストで、「IKM SQL Incremental Update」が選択されていることを確認します。

  3. ナレッジ・モジュールのオプションはデフォルトのままにします。プロパティ・インスペクタの表示は、図6-20のようになります。

    図6-20 Pop.TRG_CUSTOMERのターゲット領域のプロパティ・インスペクタ

    図6-20については周囲のテキストで説明しています。

KMオプションによって、統合ストラテジの特定の側面を制御できます。たとえば、FLOW_CONTROLオプションでは、ターゲット表に挿入する前にデータのフロー制御操作がトリガーされます。


注意:

プロジェクトにインポートされたナレッジ・モジュールのみがKMセレクタ・リストに表示されます。デモンストレーション環境には、スタート・ガイドの例に必要なナレッジ・モジュールがすでに含まれています。デモンストレーション・プロジェクトにKMをインポートする必要がありません。

KMのプロジェクトへのインポートの詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のKMのインポートに関する項を参照してください。


6.1.3.9 データ制御ストラテジの定義

第6.1.3.7項「データ・ロード・ストラテジ(LKM)の定義」および第6.1.3.8項「データ統合ストラテジ(IKM)の定義」で、ソースからターゲットへのデータ・フローを指定しました。ここで、データのチェック方法(CKM)およびデータの統合前に満たす必要のある制約とルールを定義する必要があります。

データ制御ストラテジを定義するには:

  1. インタフェース・エディタの「制御」タブで、「CKM SQL」が選択されていることを確認します。

  2. 「制約」セクションで、確認する制約をtrueに設定します。

    • PK_TRG_CUSTOMER

    • AGE >21

    • FK_CUST_CITY

    「制御」タブの表示は、図6-21のようになります。

    図6-21 「制御」タブ: Pop.TRG_CUSTOMERインタフェース

    図6-21については周囲のテキストで説明しています。
  3. 「ファイル」メイン・メニューから「保存」を選択します。

Pop.TRG_CUSTOMERインタフェースの実行の準備ができました。

6.2 Pop.TRG_SALESインタフェースの例

この項の内容は、次のとおりです。

6.2.1 目的と統合の要件

この項では、統合機能と、統合インタフェースPop.TRG_SALESが満たすべき要件について説明します。

このインタフェースの目的は、注文のSRC_ORDERS表および注文明細のSRC_ORDER_LINES表をOrders Application - HSQLモデルからSales Administration - HSQLモデルのTRG_SALESターゲット表にロードすることです。データは、ターゲット表に統合する前に集計する必要があります。ステータスがCLOの注文のみを使用します。

ただし、ソース・データは、ターゲット環境に実装されている整合性ルールと矛盾する場合があります。この変換では、すべての制約が満たされていることを検証することで、データをクレンジングします。無効な行を、ターゲット・データベースではなくエラー表に格納します。この場合、2つの重要な整合性ルールを満たす必要があります。

  • 売上は、TRG_CUSTOMER表に存在する顧客(CUST_ID)に関連付けられている必要があります(参照FK_SALES_CUST)

  • 売上は、TRG_PRODUCT表に存在する製品(PRODUCT_ID)に関連付けられている必要があります(参照FK_SALES_PROD)

これらのルールの機能上の詳細と手順は、第6.2.3項「統合インタフェースの作成」に示されています。

6.2.2 インタフェースの定義

この項では、次のものについて説明します: 統合インタフェースPop.TRG_SALES (この例で作成)。詳細は、第6.2.3項「統合インタフェースの作成」を参照してください。

Pop.TRG_SALESインタフェースでは、次のデータと変換が使用されます。

  • 1つのターゲット・データストア。表6-7に、ターゲット・データストアの詳細を示します。

    表6-7 次のターゲット・データソースの詳細: Pop.TRG_SALES

    モデル データストア 説明 タイプ

    Sales Administration - HSQL

    TRG_SALES


    HSQL表


  • 2つのソース・データストア。表6-8に、ソース・データストアの詳細を示します。

    表6-8 次のソース・データストアの詳細: Pop.TRG_SALES

    モデル データストア 説明 タイプ

    Orders Application - HSQL

    SRC_ORDERS

    ソース・システムの注文表

    HSQL表

    Orders Application - HSQL

    SRC_ORDER_LINES

    ソース・システムの注文明細表

    HSQL表


  • 1つの結合。表6-9に、結合の詳細を示します。

    表6-9 次で使用される結合: Pop.TRG_SALES

    結合 説明 SQLルール 実行位置

    コマンドと注文明細

    SRC_ORDERSとSRC_ORDER_LINESの結合

    SRC_ORDERS.ORDER_ID = SRC_ORDER_LINES.ORDER_ID

    ソース


  • 1つのフィルタ。表6-10に、フィルタの詳細を示します。

    表6-10 次で使用されるフィルタ: Pop.TRG_SALES

    説明 SQLルール 実行位置

    完了済の注文(CLOSED)のみを取得

    SRC_ORDERS.STATUS = 'CLO'

    ソース


  • 複数の変換ルール。表6-11に、変換ルールの詳細を示します。

    表6-11 次で使用される変換ルール: Pop.TRG_CUSTOMER

    ターゲット列 オリジナル SQLルール 実行位置

    CUST_ID

    SRC_ORDERSのCUST_ID

    SRC_ORDERS.CUST_ID

    ソース

    PRODUCT_ID

    SRC_ORDER_LINESのPRODUCT_ID

    SRC_ORDER_LINES.PRODUCT_ID

    ソース

    FIRST_ORD_ID

    ORDER_IDの最小値

    MIN(SRC_ORDERS.ORDER_ID)

    ソース

    FIRST_ORD_DATE

    SRC_ORDERSのORDER_DATEの最小値

    MIN(SRC_ORDERS.ORDER_DATE)

    ソース

    LAST_ORD_ID

    ORDER_IDの最大値

    MAX(SRC_ORDERS.ORDER_ID)

    ソース

    LAST_ORD_DATE

    SRC_ORDERSのORDER_DATEの最大値

    MAX(SRC_ORDERS.ORDER_DATE)

    ソース

    QTY

    注文明細のQTY数量の合計

    SUM(SRC_ORDER_LINES.QTY)

    ソース

    AMOUNT

    注文明細の金額の合計

    SUM(SRC_ORDER_LINES.AMOUNT)

    ソース

    PROD_AVG_PRICE

    注文明細の平均金額

    AVG(SRC_ORDER_LINES.AMOUNT)

    ソース


6.2.3 統合インタフェースの作成

この項では、次のものの作成方法について説明します: Pop.TRG_SALES統合インタフェース。Pop.TRG_SALESインタフェースを作成するには、次の手順に従います。

  1. 新規統合インタフェースの挿入

  2. ターゲット・データストアの定義

  3. ソース・データストアの定義

  4. ソース・データストア間の結合の定義

  5. 注文フィルタの定義

  6. 変換ルールの定義

  7. データ・ロード・ストラテジ(LKM)の定義

  8. データ統合ストラテジ(IKM)の定義

  9. データ制御ストラテジの定義

統合インタフェースの作成には、クイック編集エディタも使用できることに注意してください。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のクイック編集エディタの使用に関する項を参照してください。

6.2.3.1 新規統合インタフェースの挿入

新規統合インタフェースを作成するには:

  1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンの「Demo」プロジェクト・ノードを展開します。

  2. 「Sales Administration」ノードを展開します。

  3. 「Sales Administration」フォルダで「インタフェース」ノードを右クリックし、「新規インタフェース」を選択します。

    インタフェース・エディタが表示されます。

  4. インタフェース・エディタの「定義」タブで、インタフェースの名前(Pop.TRG_SALES)を「名前」フィールドに入力します。

6.2.3.2 ターゲット・データストアの定義

ターゲット・データストアを次のものに挿入する手順: Pop.TRG_SALESインタフェース:

  1. インタフェース・エディタの「マッピング」タブに移動します。

  2. デザイナ・ナビゲータで、「モデル」アコーディオンおよび「Sales Administration - HSQL」モデルを展開します。

  3. 「Sales Administration - HSQL」モデルの「TRG_SALES」データストアを選択し、「ターゲット・データストア」パネルにドラッグします。

6.2.3.3 ソース・データストアの定義

Pop.TRG_SALESインタフェースの例では、Orders Application - HSQLモデルのデータストアを使用します。

ソース・データストアを次のものに追加する手順: Pop.TRG_SALESインタフェース:

  1. 「マッピング」タブで、次のソース・データストアをソース・ダイアグラムにドラッグします。

    • Orders Application - HSQLモデルのSRC_ORDERS

    • Orders Application - HSQLモデルのSRC_ORDER_LINES

  2. 「自動マップ」ダイアログで、「はい」をクリックします。

6.2.3.4 ソース・データストア間の結合の定義

この項では、ソース・データストア間の結合の定義方法について説明します。

表6-9で定義された結合を作成するには:

  1. ソース・ダイアグラムで、SRC_ORDERSデータストアのORDER_ID列を選択します。

  2. SRC_ORDER_LINESデータストアのORDER_ID列にドラッグ・アンド・ドロップします。

    2つのデータストアをリンクする結合が表示されます。これは、注文番号に基づいた結合です。

    結合の式は次のとおりです。

    SRC_ORDERS.ORDER_ID=SRC_ORDER_LINES.ORDER_ID

6.2.3.5 注文フィルタの定義

この例では、完了した注文のみが取得されます。フィルタは、SRC_ORDERSデータストアに定義される必要があります。

フィルタを定義するには:

  1. ソース・ダイアグラムでSRC_ORDERSデータストアのSTATUS列を選択し、ソース・ダイアグラムにドラッグします。

  2. フィルタが、図6-22のように表示されます。

    図6-22 SRC_ORDERSのフィルタ

    図6-22については周囲のテキストで説明しています。
  3. ソース・ダイアグラムでフィルタを選択し、プロパティ・インスペクタにフィルタのプロパティを表示します。

  4. プロパティ・インスペクタの「実装」タブで次のように入力し、フィルタ・ルールを変更します。

    SRC_ORDERS.STATUS = 'CLO'

6.2.3.6 変換ルールの定義

インタフェースの「ターゲット・データストア」パネルで、ソースと一致する名前の列は自動的にマップされます。自動マッピングは、列名の対照によって行われます。表6-11に示された変換ルールの大半が、自動マッピングによって定義されています。この自動マッピング以外に、フィールドFIRST_ORD_ID、FIRST_ORD_DATE、LAST_ORD_ID、LAST_ORD_DATE、QTY、AMOUNTおよびPROD_AVG_PRICEに対する変換ルールを定義する必要があります。

ターゲット列のマッピングを手動で定義するには:

  1. 「ターゲット・データストア」パネルでターゲット列を選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。

  2. プロパティ・インスペクタで「ビューの固定」をクリックし、ターゲット列のマッピングが表示されるようにします。

  3. 次のいずれかの方法で変換ルールを作成します。

    • ソース列を「ターゲット・データストア」パネルの「マッピング」フィールドにドラッグ

    • ソース・データストアの必要な列をプロパティ・インスペクタの「実装」フィールドにドラッグ

    • 式エディタでマップ式を編集

  4. ソースターゲットステージング領域のいずれかの実行位置を選択します。表6-11で指定されたとおりに変換が実行される環境を必ず選択してください。

  5. 「DBMSで式を確認してください」をクリックして構文を検証します。

  6. 「式を保存します」をクリックして、式を保存します。

マッピングで次のルールを実装します。

  • FIRST_ORD_ID: SRC_ORDERS.ORDER_ID列を「実装」フィールドにドラッグします。次のテキストを「実装」フィールドに入力します。

    MIN(SRC_ORDERS.ORDER_ID)

    この変換ルールでは、SRC_ORDERS表のORDER_ID列の最小値をターゲット表のFIRST_ORD_ID列にマップします。

  • FIRST_ORD_DATE: SRC_ORDERS.ORDER_DATE列を「実装」フィールドにドラッグします。次のテキストを「実装」フィールドに入力します。

    MIN(SRC_ORDERS.ORDER_DATE)

    この変換ルールでは、SRC_ORDERS表のORDER_DATE列の最小値をターゲット表のFIRST_ORD_DATE列にマップします。

  • LAST_ORD_ID: SRC_ORDERS.ORDER_ID列を「実装」フィールドにドラッグ・アンド・ドロップします。次のテキストを「実装」フィールドに入力します。

    MAX(SRC_ORDERS.ORDER_ID)

    この変換ルールでは、SRC_ORDERS表のORDER_ID列の最大値をターゲット表のLAST_ORD_ID列にマップします。

  • LAST_ORD_DATE: SRC_ORDERS.ORDER_DATE列を「実装」フィールドにドラッグします。次のテキストを「実装」フィールドに入力します。

    MAX(SRC_ORDERS.ORDER_DATE)

    この変換ルールでは、SRC_ORDERS表のORDER_DATE列の最大値をターゲット表のLAST_ORD_DATE列にマップします。

  • QTY: 次のテキストを「実装」フィールドに入力します。

    SUM(SRC_ORDER_LINES.QTY)

    この変換ルールでは、製品の数量の合計をターゲット表のQTY列にマップします。

  • AMOUNT: 次のテキストを「実装」フィールドに入力します。

    SUM(SRC_ORDER_LINES.AMOUNT)

    この変換ルールでは、製品価格の合計をターゲット表のAMOUNT列にマップします。

  • PROD_AVG_PRICE: SRC_ORDERLINES.AMOUNT列を「実装」フィールドにドラッグします。次のテキストを「実装」フィールドに入力します。

    AVG(SRC_ORDER_LINES.AMOUNT)

    この変換ルールでは、製品価格の平均をターゲット表のPROD_AVG_PRICE列にマップします。

マッピング・ルールを詳細に確認し、図6-23に示すようにルールを定義したことを確認します。

この例で集計関数が使用されている場合でも、ルールによるグループの指定を行う必要はないことに注意してください。Oracle Data Integratorでマッピングから推定され、SQLの標準コーディング・プラクティスが適用されます。

図6-23 ターゲット・データストア・マッピング

図6-23については周囲のテキストで説明しています。

6.2.3.7 データ・ロード・ストラテジ(LKM)の定義

「フロー」タブには、インタフェースの実行時に行われる様々なステップがOracle Data Integratorによって示されます。

「フロー」タブで注文の結果のロード方法を定義し、ロード・ナレッジ・モジュール(LKM)を使用して注文明細がターゲット環境に集計されます。

ロード・ストラテジを定義するには:

  1. インタフェース・エディタの「フロー」タブで、注文明細のフィルタされた集計結果のロードに対応するソース・セットを選択します。この例では、これはSrcSet0 (HSQL_LOCALHOST_2000)です。

  2. 図6-24に示すように、プロパティ・インスペクタのLKMセレクタで、「LKM SQL to SQL」が選択されていることを確認します。

    図6-24 Pop.TRG_SALESインタフェースの「フロー」タブ

    図6-24については周囲のテキストで説明しています。

6.2.3.8 データ統合ストラテジ(IKM)の定義

ロード・フェーズを定義したら、データのターゲット表への統合に使用するストラテジを定義する必要があります。

統合ストラテジを定義するには:

  1. インタフェース・エディタの「フロー」タブのフロー・ダイアグラムでターゲット・オブジェクトを選択します。プロパティ・インスペクタに、ターゲットのプロパティが表示されます。

  2. プロパティ・インスペクタのIKMセレクタ・リストで、「IKM SQL Incremental Update」が選択されていることを確認します。

  3. ナレッジ・モジュールのオプションはデフォルトのままにします。

6.2.3.9 データ制御ストラテジの定義

第6.2.3.7項「データ・ロード・ストラテジ(LKM)の定義」および第6.2.3.8項「データ統合ストラテジ(IKM)の定義」で、ソースからターゲットへのデータ・フローを指定しました。ここで、データのチェック方法(CKM)およびデータの統合前に満たす必要のある制約とルールを定義する必要があります。

データ制御ストラテジを定義するには:

  1. インタフェース・エディタの「制御」タブで、「CKM SQL」が選択されていることを確認します。

  2. 「制約」セクションで、確認する制約をtrueに設定します。

    • PK_TRG_SALES

    • FK_SALES_CUST

    • FK_SALES_PROD

    「制御」タブの表示は、図6-25のようになります。

    図6-25 Pop.TRG_SALESインタフェースの「制御」タブ

    図6-25については周囲のテキストで説明しています。
  3. 「ファイル」メイン・メニューから「保存」を選択します。

Pop.TRG_SALESインタフェースの実行の準備ができました。