Oracle® Fusion Middleware Oracle Data Integratorスタート・ガイド 11g リリース1(11.1.1) B65041-02 |
|
前 |
次 |
この章では、Oracle Data Integratorでの統合インタフェースの使用方法について説明します。デモンストレーション環境には、サンプル・インタフェースがいくつか含まれています。この章では、次のインタフェースの作成方法を示します。
Pop.TRG_CUSTOMER統合インタフェース: このインタフェースは、Orders Application - HSQLモデルのSRC_CUSTOMER表からSales Administration - HSQLモデルのTRG_CUSTOMERターゲット表にデータをロードします。
Pop.TRG_SALES統合インタフェース: このインタフェースは、Orders Application - HSQLモデルのSRC_ORDERS表およびSRC_ORDER_LINES表からSales Administration - HSQLモデルのTRG_SALESターゲット表にデータをロードします。
この章の内容は、次のとおりです。
この項の内容は、次のとおりです。
この項では、統合機能と、統合インタフェース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項「統合インタフェースの作成」に示されています。
この項では、次のものについて説明します: 統合インタフェースPop.TRG_CUSTOMER(この例で作成)。詳細は、第6.1.3項「統合インタフェースの作成」を参照してください。
Pop.TRG_CUSTOMERインタフェースでは、次のデータと変換が使用されます。
1つのターゲット・データストア。表6-1に、ターゲット・データストアの詳細を示します。
3つのソース・データストア。表6-2に、ソース・データストアの詳細を示します。
1つの結合。表6-3に、結合の詳細を示します。
1つのルックアップ表。表6-4に、ルックアップ表の詳細を示します。
複数の変換ルール。表6-5に、変換ルールの詳細を示します。
表6-5 次で使用される変換ルール: Pop.TRG_CUSTOMER
ターゲット列 | オリジナル | SQLルール | 実行位置 |
---|---|---|---|
CUST_ID |
SRC_CUSTOMER.CUSTID |
|
ソース |
DEAR |
SRC_CUSTOMER.DEAR = 0の場合は'MR' SRC_CUSTOMER.DEAR = 1の場合は'MRS'、それ以外は'MS' |
|
ソース |
CUST_NAME |
SRC_CUSTOMER.FIRST_NAMEとSRC_CUSTOMER.LAST_NAME (大文字)の連結 |
|
ソース |
ADDRESS |
SRC_CUSTOMER.ADDRESS |
|
ソース |
CITY_ID |
SRC_CUSTOMER.CITY_ID |
|
ソース |
PHONE |
SRC_CUSTOMER.PHONE |
|
ソース |
AGE |
SRC_CUSTOMER.AGE |
|
ソース |
AGE_RANGE |
SRC_AGE_GROUP.AGE_RANGE |
|
ステージング領域 |
SALES_PERS |
SRC_SALES_PERSON.FIRST_NAMEとSRC_SALES_PERSON.LAST_NAME (大文字)の連結 |
|
ステージング領域 |
CRE_DATE |
今日の日付 |
|
ターゲット |
UPD_DATE |
今日の日付 |
|
ターゲット |
この項では、次のものの作成方法について説明します: Pop.TRG_CUSTOMER統合インタフェース。Pop.TRG_CUSTOMERインタフェースを作成するには、次の手順に従います。
新規統合インタフェースを作成するには:
ターゲット・データストアは、インタフェースによってロードされる要素です。
ターゲット・データストアを次のものに挿入する手順: Pop.TRG_CUSTOMERインタフェース:
ソース・データストアには、ターゲット・データストアのロードに使用されるデータが含まれています。インタフェース・ソースとして、モデルのデータストア、およびインタフェースのターゲットである一時データストアの2つのタイプのデータストアを使用できます。この例では、Orders Application - HSQLおよびParameters - FILEモデルのデータストアを使用します。
ソース・データストアを次のものに追加する手順: Pop.TRG_CUSTOMERインタフェース:
「マッピング」タブで、次のソース・データストアをソース・ダイアグラムにドラッグします。
Orders Application - HSQLモデルのSRC_CUSTOMER
Parameters - FILEモデルのSRC_SALES_PERSON
インタフェース・エディタの「マッピング」タブの表示は、図6-5のようになります。
「自動マップ」ダイアログが、図6-6のように表示されます。
「はい」をクリックして、Oracle Data Integratorでマッピングを行う自動化フィールドの使用を確認します。自動マッピングは、ソース・データストアをソース・ダイアグラムにドロップすると行われます。
この項では、顧客の年齢がファイル内の最低年齢と最高年齢の間である必要があることを定義するルックアップを作成する方法について説明します。
ルックアップは、モデルまたはインタフェースのターゲット・データストアからのデータストア(ルックアップ表と呼ばれます)で、結合式を使用してソース・データストア(駆動表)に関連付けられます。データはルックアップからフェッチされてマッピングで使用されます。
ルックアップ表は、ルックアップ・ウィザードを使用して追加されます。
ルックアップを次のものに作成する手順: Pop.TRG_CUSTOMERインタフェース:
ソース・ダイアグラムのツールバー・メニューから、図6-7に示す「新規ルックアップの追加」を選択します。
ルックアップ・ウィザードが開きます。
ルックアップ・ウィザードで、「駆動表」リストから「SRC_CUSTOMER(SRC_CUSTOMER)」を選択します。
ここには現在のダイアグラムのソース・データベースが表示され、ルックアップはリストに表示されないことに注意してください。
「ルックアップ表」ペインの「データストア」タブで、「Parameters - FILE」モデルから「SRC_AGE_GROUP」データストアを選択します。
SRC_AGE_GROUPデータストアはルックアップ表として使用されます。
図6-8に、ルックアップ・ウィザードの最初の画面を示します。
「次へ」をクリックします。
左ペインで、駆動表から「AGE」ソース列を選択します。
右ペインで、ルックアップ表の「AGE_MIN」列を選択します。
「結合」をクリックします。図6-9に示すように、結合条件が「ルックアップ条件」テキスト・フィールドに表示されます。
「オプション」セクションで、実行位置として「ステージング」を選択します。
「式エディタを起動します」をクリックし、ルックアップ条件を次のように変更します。
等号記号(=
)を文字列between
に置き換えます。
次の文字列を式の末尾に追加します。
and SRC_AGE_GROUP.AGE_MAX
これによって、SRC_AGE_GROUPデータストアのAGE_MAX列が追加されます。
結合式は次のようになります。
SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX
これは、SRC_CUSTOMERとSRC_AGE_GROUPデータストアの間の結合に相当し、顧客の年齢がファイル内の最低年齢と最高年齢の間である必要があることを定義します。図6-10に、ルックアップ条件が表示された式エディタを示します。
式エディタで「OK」をクリックします。
図6-11に示すように、変更されたルックアップ条件がルックアップ・ウィザードに表示されます。
「終了」をクリックします。
ソース・ダイアグラムの表示は、図6-12のようになります。
注意: ソース・データストア間をリンクする参照がモデルにすでに定義されていた場合、これらの参照はソース・ダイアグラムに結合として自動的に表示されます。 |
この項では、ソース・データストア間の結合の定義方法について説明します。
表6-3で定義された結合を作成するには:
ソース・ダイアグラムで、SRC_CUSTOMERデータストアのSALES_PERS_ID列を選択します。
SRC_SALES_PERSONデータストアのSALES_PERS_ID列にドラッグ・アンド・ドロップします。2つのデータストアをリンクする結合が、図6-13のように表示されます。これは、営業担当者識別子に基づいた結合です。
インタフェースの「ターゲット・データストア」パネルで、ソースと一致する名前の列は自動的にマップされます。自動マッピングは、列名の対照によって行われます。表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ターゲット列のマッピングを定義するには:
ソース・ダイアグラムで、SRC_CUSTOMERデータストアのCUSTID列を選択します。
図6-14に示すように、「ターゲット・データストア」パネルの「マッピング」フィールドにドラッグします。
「ターゲット・データストア」で「マッピング」フィールドを選択し、プロパティ・インスペクタにプロパティを表示します。
図6-15に示すように、実行位置が「ソース」に設定されていることを確認します。
DEARのマッピング
この変換ルールでは、ソース・データストアのDEAR列(数値)を文字列式としてマップします(0 -->'MR'、1 -->'MRS'、2 -->'MS')。
DEARターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、DEARターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
ヒント: プロパティ・インスペクタのツールバーで「ビューの固定」をクリックすると、通常はプロパティ・インスペクタの内容が変更される別のコンポーネントを選択した場合でも、プロパティ・インスペクタの現在の内容が引き続き表示されます。ビューの固定ボタンは次のとおりです。 プロパティ・インスペクタのインスタンスの固定を解除し、アクティブな選択内容を追跡できるようにするには、ビューの固定ボタンを再度クリックします。 |
「実装」フィールドに、次のマッピング式を入力します。
CASEWHEN(SRC_CUSTOMER.DEAR=0, 'MR', CASEWHEN( SRC_CUSTOMER.DEAR=1, 'MRS', 'MS') )
ヒント: ソース列(SRC_CUSTOMER.DEAR列など)を「実装」フィールドにドラッグします。 |
実行位置が「ソース」に設定されていることを確認します。
CUST_NAMEのマッピング
この変換ルールでは、各顧客の名前と大文字の姓を連結した値がマップされます。
CUST_NAMEターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、CUST_NAMEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
「実装」フィールドに、次のマッピング式を入力します。
SRC_CUSTOMER.FIRST_NAME || ' ' || UCASE(SRC_CUSTOMER.LAST_NAME)
ヒント: 式エディタを使用してこのルールを作成します。式エディタを使用すると、一般的な構文エラーを回避できます。 |
実行位置が「ソース」に設定されていることを確認します。
AGE_RANGEのマッピング
このマッピングでは、SRC_AGE_GROUP.AGE_RANGEがTRG_CUSTOMER.AGE_RANGEにマップされます。
AGE_RANGEターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、AGE_RANGEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
「実装」フィールドに、次のマッピング式を入力します。
SRC_AGE_GROUP.AGE_RANGE
実行位置が「ステージング領域」に設定されていることを確認します。
注意: このルールは、ステージング領域で実行される必要があります。この例のソースはフラット・ファイルで、連結がサポートされるエンジンに関連付けられていません。 |
SALES_PERSのマッピング
これによって、各営業担当者の名前と大文字の姓を連結した値がマップされます。
SALES_PERSターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、SALES_PERSターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
「実装」フィールドに、次のマッピング式を入力します。
SRC_SALES_PERSON.FIRST_NAME || ' ' || UCASE(SRC_SALES_PERSON.LAST_NAME)
実行位置が「ステージング領域」に設定されていることを確認します。
注意: このルールは、ステージング領域で実行される必要があります。この例のソースはフラット・ファイルで、連結がサポートされるエンジンに関連付けられていません。 |
CRE_DATEのマッピング
CRE_DATEターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、CRE_DATEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
「実装」フィールドに、次のマッピング式を入力します。
CURDATE()
「アクティブ・マッピング」が選択されていることを確認します。
実行位置が「ターゲット」に設定されていることを確認します。
「更新」を選択解除します。マッピングは、挿入でのみ行われます。
CRE_DATEのマッピングのプロパティ・インスペクタの表示は、図6-16のようになります。
UPD_DATEのマッピング
UPD_DATEターゲット列のマッピングを定義するには:
「ターゲット・データストア」パネルで、UPD_DATEターゲット列の「マッピング」フィールドを選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
「実装」フィールドに、次のマッピング式を入力します。
CURDATE()
「アクティブ・マッピング」が選択されていることを確認します。
実行位置が「ターゲット」に設定されていることを確認します。
「挿入」を選択解除します。マッピングは、更新でのみ行われます。
UPD_DATEのマッピングのプロパティ・インスペクタの表示は、図6-17のようになります。
式エディタに関する注意
式の構築に使用される式エディタには、テクノロジに固有の関数が含まれていない場合があります。多くのテクノロジに共通する関数のみが含まれています。式エディタに表示されない関数でも、手動で入力し、式に使用できます。
このマッピングをターゲットで実行すると、式エディタによってターゲット・システムの構文(この場合はHypersonic SQLも)が指定されます。
「DBMSで式を確認してください」をクリックすると、ソース・サーバーが呼び出され、入力したSQLコードの構文がチェックされます。このチェックは、ルールがソース・サーバーで完全に実行される場合にのみ実行されます。
「ターゲット・データストア」パネル
図6-18に示すように、変換規則が「ターゲット・データストア」パネルに表示されます。
2種類のアイコンが、「ターゲット・データストア」パネルの「インジケータ」列で使用されます。
ターゲット列のデータ型の最初の文字(n: numeric、v: varchar, d: date)
式の実行位置。
統合インタフェースの作成および表示には、クイック編集エディタも使用できることに注意してください。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のクイック編集エディタの使用に関する項を参照してください。
データ・ロード・ストラテジは、インタフェース・エディタの「フロー」タブで定義されます。Oracle Data Integratorでは、インタフェースのダイアグラムの構成に応じてフローが自動的に計算されます。また、データ・フローのデフォルトのKMが提示されます。「フロー」タブでは、データ・フローを確認して、データのロードと統合に使用するKMを選択できます。
ロード・ナレッジ・モジュール(LKM)はロード・ストラテジに使用され、統合ナレッジ・モジュール(IKM)は統合ストラテジに使用されます。
ソース環境のSRC_AGE_GROUPファイル、SRC_SALES_PERSONファイルおよびSRC_CUSTOMER表からデータを取得する方法を定義する必要があります。
ロード・ストラテジを定義するには:
インタフェース・エディタの「フロー」タブで、SRC_AGE_GROUPファイルのロードに対応するソース・セットを選択します。この例では、これはSrcSet0 (FILE_GENERIC)です。プロパティ・インスペクタに、このソース・セットのプロパティが表示されます。
図6-19に示すように、プロパティ・インスペクタのLKMセレクタ・リストで、「LKM File to SQL」が選択されていることを確認します。
SRC_CUSTOMER表のロードに対応するソース・セットを選択します。
プロパティ・インスペクタのLKMセレクタ・リストで、「LKM SQL to SQL」が選択されていることを確認します。
ロード・フェーズを定義したら、データのターゲット表への統合に使用するストラテジを定義する必要があります。
統合ストラテジを定義するには:
インタフェース・エディタの「フロー」タブのフロー・ダイアグラムでターゲット・オブジェクトを選択します。プロパティ・インスペクタに、ターゲットのプロパティが表示されます。
プロパティ・インスペクタのIKMセレクタ・リストで、「IKM SQL Incremental Update」が選択されていることを確認します。
ナレッジ・モジュールのオプションはデフォルトのままにします。プロパティ・インスペクタの表示は、図6-20のようになります。
KMオプションによって、統合ストラテジの特定の側面を制御できます。たとえば、FLOW_CONTROLオプションでは、ターゲット表に挿入する前にデータのフロー制御操作がトリガーされます。
注意: プロジェクトにインポートされたナレッジ・モジュールのみがKMセレクタ・リストに表示されます。デモンストレーション環境には、スタート・ガイドの例に必要なナレッジ・モジュールがすでに含まれています。デモンストレーション・プロジェクトにKMをインポートする必要がありません。 KMのプロジェクトへのインポートの詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のKMのインポートに関する項を参照してください。 |
第6.1.3.7項「データ・ロード・ストラテジ(LKM)の定義」および第6.1.3.8項「データ統合ストラテジ(IKM)の定義」で、ソースからターゲットへのデータ・フローを指定しました。ここで、データのチェック方法(CKM)およびデータの統合前に満たす必要のある制約とルールを定義する必要があります。
データ制御ストラテジを定義するには:
インタフェース・エディタの「制御」タブで、「CKM SQL」が選択されていることを確認します。
「制約」セクションで、確認する制約をtrue
に設定します。
PK_TRG_CUSTOMER
AGE >21
FK_CUST_CITY
「制御」タブの表示は、図6-21のようになります。
「ファイル」メイン・メニューから「保存」を選択します。
Pop.TRG_CUSTOMERインタフェースの実行の準備ができました。
この項の内容は、次のとおりです。
この項では、統合機能と、統合インタフェース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項「統合インタフェースの作成」に示されています。
この項では、次のものについて説明します: 統合インタフェースPop.TRG_SALES (この例で作成)。詳細は、第6.2.3項「統合インタフェースの作成」を参照してください。
Pop.TRG_SALESインタフェースでは、次のデータと変換が使用されます。
1つのターゲット・データストア。表6-7に、ターゲット・データストアの詳細を示します。
2つのソース・データストア。表6-8に、ソース・データストアの詳細を示します。
1つの結合。表6-9に、結合の詳細を示します。
1つのフィルタ。表6-10に、フィルタの詳細を示します。
複数の変換ルール。表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) |
ソース |
この項では、次のものの作成方法について説明します: Pop.TRG_SALES統合インタフェース。Pop.TRG_SALESインタフェースを作成するには、次の手順に従います。
統合インタフェースの作成には、クイック編集エディタも使用できることに注意してください。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のクイック編集エディタの使用に関する項を参照してください。
新規統合インタフェースを作成するには:
デザイナ・ナビゲータで、「プロジェクト」アコーディオンの「Demo」プロジェクト・ノードを展開します。
「Sales Administration」ノードを展開します。
「Sales Administration」フォルダで「インタフェース」ノードを右クリックし、「新規インタフェース」を選択します。
インタフェース・エディタが表示されます。
インタフェース・エディタの「定義」タブで、インタフェースの名前(Pop.TRG_SALES)を「名前」フィールドに入力します。
ターゲット・データストアを次のものに挿入する手順: Pop.TRG_SALESインタフェース:
インタフェース・エディタの「マッピング」タブに移動します。
デザイナ・ナビゲータで、「モデル」アコーディオンおよび「Sales Administration - HSQL」モデルを展開します。
「Sales Administration - HSQL」モデルの「TRG_SALES」データストアを選択し、「ターゲット・データストア」パネルにドラッグします。
Pop.TRG_SALESインタフェースの例では、Orders Application - HSQLモデルのデータストアを使用します。
ソース・データストアを次のものに追加する手順: Pop.TRG_SALESインタフェース:
「マッピング」タブで、次のソース・データストアをソース・ダイアグラムにドラッグします。
Orders Application - HSQLモデルのSRC_ORDERS
Orders Application - HSQLモデルのSRC_ORDER_LINES
「自動マップ」ダイアログで、「はい」をクリックします。
この項では、ソース・データストア間の結合の定義方法について説明します。
表6-9で定義された結合を作成するには:
ソース・ダイアグラムで、SRC_ORDERSデータストアのORDER_ID列を選択します。
SRC_ORDER_LINESデータストアのORDER_ID列にドラッグ・アンド・ドロップします。
2つのデータストアをリンクする結合が表示されます。これは、注文番号に基づいた結合です。
結合の式は次のとおりです。
SRC_ORDERS.ORDER_ID=SRC_ORDER_LINES.ORDER_ID
この例では、完了した注文のみが取得されます。フィルタは、SRC_ORDERSデータストアに定義される必要があります。
フィルタを定義するには:
ソース・ダイアグラムでSRC_ORDERSデータストアのSTATUS列を選択し、ソース・ダイアグラムにドラッグします。
フィルタが、図6-22のように表示されます。
ソース・ダイアグラムでフィルタを選択し、プロパティ・インスペクタにフィルタのプロパティを表示します。
プロパティ・インスペクタの「実装」タブで次のように入力し、フィルタ・ルールを変更します。
SRC_ORDERS.STATUS = 'CLO'
インタフェースの「ターゲット・データストア」パネルで、ソースと一致する名前の列は自動的にマップされます。自動マッピングは、列名の対照によって行われます。表6-11に示された変換ルールの大半が、自動マッピングによって定義されています。この自動マッピング以外に、フィールドFIRST_ORD_ID、FIRST_ORD_DATE、LAST_ORD_ID、LAST_ORD_DATE、QTY、AMOUNTおよびPROD_AVG_PRICEに対する変換ルールを定義する必要があります。
ターゲット列のマッピングを手動で定義するには:
「ターゲット・データストア」パネルでターゲット列を選択し、プロパティ・インスペクタにマッピング・プロパティを表示します。
プロパティ・インスペクタで「ビューの固定」をクリックし、ターゲット列のマッピングが表示されるようにします。
次のいずれかの方法で変換ルールを作成します。
ソース列を「ターゲット・データストア」パネルの「マッピング」フィールドにドラッグ
ソース・データストアの必要な列をプロパティ・インスペクタの「実装」フィールドにドラッグ
式エディタでマップ式を編集
ソース、ターゲット、ステージング領域のいずれかの実行位置を選択します。表6-11で指定されたとおりに変換が実行される環境を必ず選択してください。
「DBMSで式を確認してください」をクリックして構文を検証します。
「式を保存します」をクリックして、式を保存します。
マッピングで次のルールを実装します。
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の標準コーディング・プラクティスが適用されます。
「フロー」タブには、インタフェースの実行時に行われる様々なステップがOracle Data Integratorによって示されます。
「フロー」タブで注文の結果のロード方法を定義し、ロード・ナレッジ・モジュール(LKM)を使用して注文明細がターゲット環境に集計されます。
ロード・ストラテジを定義するには:
インタフェース・エディタの「フロー」タブで、注文明細のフィルタされた集計結果のロードに対応するソース・セットを選択します。この例では、これはSrcSet0 (HSQL_LOCALHOST_2000)です。
図6-24に示すように、プロパティ・インスペクタのLKMセレクタで、「LKM SQL to SQL」が選択されていることを確認します。
ロード・フェーズを定義したら、データのターゲット表への統合に使用するストラテジを定義する必要があります。
統合ストラテジを定義するには:
インタフェース・エディタの「フロー」タブのフロー・ダイアグラムでターゲット・オブジェクトを選択します。プロパティ・インスペクタに、ターゲットのプロパティが表示されます。
プロパティ・インスペクタのIKMセレクタ・リストで、「IKM SQL Incremental Update」が選択されていることを確認します。
ナレッジ・モジュールのオプションはデフォルトのままにします。
第6.2.3.7項「データ・ロード・ストラテジ(LKM)の定義」および第6.2.3.8項「データ統合ストラテジ(IKM)の定義」で、ソースからターゲットへのデータ・フローを指定しました。ここで、データのチェック方法(CKM)およびデータの統合前に満たす必要のある制約とルールを定義する必要があります。
データ制御ストラテジを定義するには:
インタフェース・エディタの「制御」タブで、「CKM SQL」が選択されていることを確認します。
「制約」セクションで、確認する制約をtrue
に設定します。
PK_TRG_SALES
FK_SALES_CUST
FK_SALES_PROD
「制御」タブの表示は、図6-25のようになります。
「ファイル」メイン・メニューから「保存」を選択します。
Pop.TRG_SALESインタフェースの実行の準備ができました。