ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド
11gリリース1(11.1.1)
B62261-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次へ
目次

戻る
戻る
 
次へ
次へ
 

27 Oracle Enterprise Service Bus

この章では、Oracle Data IntegratorでのOracle Enterprise Service Busの使用方法について説明します。

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

27.1 概要

Oracle Data Integratorの機能(複数のソース表から1つのターゲット表へのロードおよび相互参照の処理を行う統合インタフェースなど)は、Enterprise Service Bus(ESB)を使用した場合に最良の動作が得られるように設計されています。

27.1.1 概念

相互参照は、サービス指向アーキテクチャ(SOA)に真に基づいて構築されたOracle Fusion Middlewareの機能で、Enterprise Service Bus(ESB)コンポーネントを介して使用できます。通常疎結合の統合で利用されます。統合に加わる各種アプリケーション間の実行時相関の管理に使用されます。

Oracle SOA Suiteの相互参照機能では、異なるアプリケーションで作成された対応するエンティティの識別子を関連付けることができます。たとえば、相互参照を使用して、あるアプリケーションで作成された顧客エンティティ(ネイティブID: Cust_100)と別のアプリケーションの同じ顧客のエンティティ(ネイティブID: CT_001)を関連付けることができます。

相互参照(XRef)機能を使用すると、エンティティのネイティブ・キーのアプリケーション間でのマッピングが簡単になります。たとえば、異なるERPシステムの同じ注文を相互に関連付けます。

相互参照の実装では、Oracleデータベース・スキーマを使用して、システムとデータストアの間でレコードを参照するための情報を格納する相互参照表(XREF_DATAと呼ばれる)を格納します。

データのターゲット表へのロード後にソース表データを更新または削除するオプション機能も統合に必要です。これによって、ステータス・フィールドなどの一部の属性の更新またはターゲット・システムへ正常に処理された後のソース・レコードのパージがバルク統合でサポートされることが必要になります。

27.1.2 ナレッジ・モジュール

Oracle Data Integratorには、ESB相互参照を処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表27-1に示します。これらのKMではESB固有の機能が使用されます。

表27-1 ESBナレッジ・モジュール

ナレッジ・モジュール 説明

LKM SQL to SQL(ESB XREF)

このKMでは、標準ISOソースからのデータのロード時の相互参照がサポートされます。OracleおよびDB2の両方がサポートされます。LKM SQL to SQL(ESB XREF)は、同じインタフェースのIKM SQL Control Append(ESB XREF)と組み合せて使用する必要があります。

LKM MSSQL to SQL(ESB XREF)

このKMは、Microsoft SQL Server用に最適化されたバージョンのLKM SQL to SQL(ESB XREF)です。

IKM SQL Control Append(ESB XREF)

このKMでは、Oracle、DB2またはMicrosoft SQL Serverターゲットへのデータの統合時の相互参照がサポートされます。切捨て/更新(追加)モードでデータがターゲット表に統合され、データ・チェックがサポートされます。


27.1.3 XREF KMプロセスの概要

全プロセスは次の3つの主なフェーズに分けられます。

ロード・フェーズ(LKM)

ロード・フェーズでは、ソース表からの列を使用してソース主キーが作成されます。このソース主キーは、VARCHAR値を返すユーザー定義のSQL式を使用して導出されます。この式はSRC_PK_EXPRESSION KMオプションで指定されます。

たとえば、ソースの注文明細表(インタフェースではOLINEという別名)に次の式を使用できます。

TO_CHAR(OLINE.ORDER_ID) || '-' || TO_CHAR(OLINE.LINE_ID)

この値を最終的に使用して相互参照表が移入されます。

統合および相互参照フェーズ(IKM)

統合フェーズでは、ターゲット表に対して共通IDが作成されます。共通IDの値は、XREF_SYS_GUID KMオプションの式から導出されます。この式の例は次のとおりです。

  • データベース順序(<SEQUENCE_NAME>. NEXTVAL

  • グローバル一意IDを戻す関数(Oracleの場合はSYS_GUID()、SQL Serverの場合はNewID()

この共通IDは、UD1フラグでマークされたターゲット表のターゲット列にプッシュされます。

共通IDソース主キーも相互参照表(XREF_DATA)にプッシュされます。さらに、IKMによって、ソース主キーおよび共通IDの間の相互参照を作成する一意の行番号値が相互参照表にプッシュされます。この行番号値は、XREF_ROWNUMBER_EXPRESSION KMオプションから導出されます。このオプションでは通常、共通IDと同様の式を使用して一意の識別子が生成されます。

相互参照KMの複数インタフェースで同一ソース行が複数ターゲット表のロードに使用される場合、同じ共通IDが再利用されます(再導出されません)。これによって、一意のソース行と異なるターゲット行との間の相互参照を作成できます。

処理済レコードの更新/削除(LKM)

オプションのこのフェーズ(SRC_UPDATE_DELETE_ACTION KMオプションでパラメータ化)では、正常に処理されたソース・レコードを基にソース・レコードの削除または更新を行います。

  • SRC_UPDATE_DELETE_ACTIONがDELETE値をとる場合、インタフェースで処理されたソース・レコードは削除されます。

  • SRC_UPDATE_DELETE_ACTIONがUPDATE値をとる場合、インタフェースで処理されたソース・レコードのソース列が、SRC_UPD_EXPRESSION KMオプションで指定されたSQL式で更新されます。ソース列の名前はSRC_UPD_COL KMオプションで指定する必要があります。

27.2 インストールおよび構成

ESBナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。

27.2.1 システム要件および動作要件

インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。

サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network(OTN)からアクセスできます。

http://www.oracle.com/technology/products/oracle-data-integrator/index.html

27.2.2 テクノロジ固有の要件

Oracle Data IntegratorでESBを使用するための接続性要件はありません。Oracle Databaseの要件はESBにも適用されます。詳細は、第2章「Oracle Database」を参照してください。

27.2.3 接続性要件

Oracle Data IntegratorでESBを使用するための接続性要件はありません。Oracle Databaseの要件はESBにも適用されます。詳細は、第2章「Oracle Database」を参照してください。

27.3 ESB相互参照KMを使用したXREFの利用

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

27.3.1 トポロジの定義

ESB相互参照KMを使用したプロジェクトに固有のOracle Data Integratorでのトポロジの作成手順は次のとおりです。

  1. ソースおよびターゲットに対応するデータ・サーバー、物理スキーマおよび論理スキーマを作成します。

  2. 2.3.1項「Oracleデータ・サーバーの作成」の説明に従って、Oracleテクノロジ用データ・サーバーを作成します。

  3. このOracleデータ・サーバーの下に、XREF_DATAという名前の相互参照表に含まれるスキーマに対応する、ESB_XREFという物理スキーマおよび論理スキーマを作成します。すでに宣言されているデータ・サーバーにこの表が格納されている場合、スキーマの作成のみが必要です。

    詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の物理スキーマの作成および論理スキーマの作成関する項を参照してください。

27.3.2 プロジェクトの設定

使用するプロジェクトに次のKMがまだインポートされていない場合は、これらをインポートします。

  • IKM SQL Control Append(ESB XREF)

  • LKM SQL to SQL(ESB XREF)。Microsoft SQL Serverを使用している場合はLKM MSSQL to SQL(ESB XREF)

27.3.3 ESB相互参照KMを使用したインタフェースの設計

複数のソース表からターゲット表へのロードとソースの1つとターゲットとの間の相互参照の処理の両方を行う統合インタフェースを作成するには、次のようにします。

  1. 相互参照を持つソースとターゲット・データストアとのインタフェースを作成します。

  2. 通常どおり結合、フィルタおよびマッピングを作成します。共通IDのプレースホルダになる、ターゲット・データストアの列のUD1フラグを必ず選択してください。この列をマップする必要はありません。

  3. インタフェースの「フロー」タブで、相互参照のソース表を含むソース・セットを選択し、「LKM SQL to SQL(ESB XREF)」(ソース・データストアがMicrosoft SQL Serverにある場合は「LKM MSSQL to SQL(ESB XREF)」)を選択します。

  4. 次のようにKMのオプションを指定します。

    • SRC_PK_EXPRESSION

      XREF表に格納するソース主キー値を表す式を指定します。キーとして定義された1列のみがソース表に含まれる場合、列名(SEQ_NOなど)を入力します。ソース・キーに複数の列が含まれる場合、キー値の導出に使用する式を指定します。たとえば、表に2つのキー列があり、これらの列を連結した値をソース値としてXREF表に格納する場合、SEQ_NO|DOC_DATEと入力します。このオプションは必須です。

    • SRC_UPDATE_DELETE_ACTION

      データのターゲットへの統合後ソース・レコードに対して行うアクションを示します。使用できる値のリストは、表27-2を参照してください。

      表27-2 SRC_UPDATE_DELETE_ACTIONの値

      説明

      NONE

      ソース・レコードに何もしない場合はNONEと指定します。

      UPDATE

      SRC_UPD_COLおよびSRC_UPD_EXPRESSIONに従ってソース・レコード・フラグを更新する場合、UPDATEと入力します。

      UPDATEオプションを選択する場合、次のオプションも指定する必要があります。SRC_PK_LOGICAL_SCHEMA、SRC_PK_TABLE_NAME、SRC_PK_TABLE_ALIAS、SRC_UPD_COLおよびSRC_UPD_EXPRESSION。

      DELETE

      統合後ソース・レコードを削除する場合、DELETEと入力します。

      DELETEオプションを選択する場合、次のオプションも指定する必要があります。SRC_PK_LOGICAL_SCHEMA、SRC_PK_TABLE_NAMEおよびSRC_PK_TABLE_ALIAS。


  5. インタフェースの「フロー」タブでステージング領域を選択し、IKM SQL Control Append(ESB XREF)を選択します。

  6. 次のようにKMのオプションを指定します。

    • XREF_TABLE_NAME: 参照表に格納されるソース表の名前を入力します。

    • XREF_COLUMN_NAME: これは、XREF表に格納されるソース主キーの名前です。

    • XREF_SYS_GUID_EXPRESSION: 共通IDの導出に使用される式。この式の例は次のとおりです。

    • データベース順序(<SEQUENCE_NAME>.NEXTVAL

    • グローバル一意IDを戻す関数(Oracleの場合はSYS_GUID()、SQL Serverの場合はNewID()

    • XREF_ROWNUMBER_EXPRESSION: これは、XREF_DATA表の行番号列にプッシュされる値です。順序に変更する必要がない場合、デフォルト値GUIDを使用します。

    • FLOW_CONTROL: CKM Oracleを使用できるようにする場合、YESに設定します。


    注意:

    ターゲット表に共通IDのプレースホルダがなく、たとえば、ターゲット列の1つにソース識別子を移入する場合、どのソース識別子をどの列に移入するかを示すには、ODIの標準マッピング・ルールを使用する必要があります。

    共通IDをロードするターゲット列がターゲット表の一意キーの場合、マップされる必要があります。その列にダミーのマッピングを設定する必要があります。実行時、このダミー・マッピングは、統合ナレッジ・モジュールで生成された共通識別子で上書きされます。このターゲット列にUD1フラグを必ず設定します。


27.4 ナレッジ・モジュール・オプションの参照情報

この項では、次のナレッジ・モジュールに関するKMオプションをリストします。

表27-3 LKM SQL to SQL(ESB XREF)

オプション 必須 説明

SRC_UPDATE_DELETE_ACTION

NONE|UPDATE|DELETE

はい

データのターゲットへの統合後ソース・レコードに対して行うアクションを示します。このオプションの有効値のリストは、表27-2を参照してください。

SRC_PK_EXPRESSION

連結式

はい

1つの大きなvarchar列に合うようPKからの値を連結する式。例: ソースの注文明細表(インタフェースではOLINEという別名)に次の式を使用できます。

TO_CHAR(OLINE.ORDER_ID) || '-' || TO_CHAR(OLINE.LINE_ID)

SRC_PK_LOGICAL_SCHEMA

ソース表の論理スキーマの名前

いいえ

ソース表の論理スキーマの名前を示します。ソース表は、処理後レコードを削除または更新する表です。論理スキーマは、実行時にコンテキストに従って実際の物理スキーマを解決するために使用されます。例: ORDER_BOOKING。このオプションは、SRC_UPDATE_DELETE_ACTIONがUPDATEまたはDELETEに設定されている場合にのみ必要です。

SRC_PK_TABLE_NAME

ソース表名。デフォルトはMY_TABLE。

いいえ

処理後にレコードを削除するソース表の名前を示します。例: ORDERS。このオプションは、SRC_UPDATE_DELETE_ACTIONがUPDATEまたはDELETEに設定されている場合にのみ必要です。

SRC_PK_TABLE_ALIAS

ソース表の別名。デフォルトは

MY_ALIAS

いいえ

このインタフェース内でのソース表の別名を示します。ソース表は、処理後レコードを削除または更新する表です。例: ORD。このオプションは、SRC_UPDATE_DELETE_ACTIONがUPDATEまたはDELETEに設定されている場合にのみ必要です。

SRC_UPD_COL

別名が付けられたソース列名

いいえ

更新フラグ・インジケータを保持し、別名が付けられたソース列名。SRC_UPDATE_DELETE_ACTIONが式リテラルSRC_UPD_EXPRESSIONでUPDATEに設定されている場合、この列の値は、統合後更新されます。列に使用される別名は、ソース表に対して定義されているものと一致する必要があります。例: ORD.LOADED_FLAG。このオプションは、SRC_UPDATE_DELETE_ACTIONがUPDATEに設定されている場合にのみ必要です。

SRC_UPD_EXPRESSION

リテラルまたは式

いいえ

SRC_UPD_COLの更新に使用されるリテラルまたは式。この値は、SRC_UPDATE_DELETE_ACTIONがUPDATEに設定されている場合、統合後のこの列の更新に使用されます。例: RECORDS PROCESSED。このオプションは、SRC_UPDATE_DELETE_ACTIONがUPDATEに設定されている場合にのみ必要です。

DELETE_TEMPORARY_OBJECTS

Yes|No

はい

一時オブジェクト(ファイルおよびスクリプト)を統合後保持する場合、このオプションをNOに設定します。デバッグに便利です。


LKM MSSQL to SQL(ESB XREF)

LKM MSSQL to SQL(ESB XREF)のオプションの詳細は、表27-3を参照してください。

表27-4 IKM SQL Control Append(ESB XREF)

オプション 必須 説明

INSERT

Yes|No

はい

インタフェースのターゲット・データストアへのデータの挿入を自動的に試行します。

COMMIT

Yes|No

はい

ターゲット・データストアに挿入されたすべてのデータをコミットします。

FLOW_CONTROL

Yes|No

はい

フロー制御を行う場合、このオプションを選択します。

RECYCLE_ERRORS

Yes|No

はい

以前の制御から拒否されたデータをリサイクルする場合、このオプションを選択します。

STATIC_CONTROL

Yes|No

はい

ターゲット・データの挿入または更新後にターゲット表を制御する場合、このオプションを選択します。

TRUNCATE

Yes|No

はい

ターゲット・データストアを切り捨てる場合、このオプションを選択します。

DELETE_ALL

Yes|No

はい

ターゲット・データストアのすべての行を削除する場合、このオプションを選択します。

CREATE_TARG_TABLE

Yes|No

はい

ターゲット表を作成する場合、このオプションを選択します。

DELETE_TEMPORARY_OBJECTS

Yes|No

はい

一時オブジェクト(表、ファイルおよびスクリプト)を統合後保持する場合、このオプションをNOに設定します。デバッグに便利です。

XREF_TABLE_NAME

XREF表名

はい

XREF表で使用する表名。例: ORDERS

XREF_COLUMN_NAME

列名

はい

XREF表でリテラルとして使用する主キー列名

XREF_SYS_GUID_EXPRESSION

SYS_GUID()

はい

XREF表(列名"VALUE")の共通IDの移入に使用される式を入力します。有効な例: SYS_GUID()MY_SEQUENCE.NEXTVALなど。

XREF_ROWNUMBER_EXPRESSION

SYS_GUID()

はい

XREF表の行番号の移入に使用される式を入力します。Oracleの例: SYS_GUID()MY_SEQUENCE.NEXTVALなど。