Oracle® Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド 11gリリース1(11.1.1) B62261-01 |
|
戻る |
次へ |
この章では、Oracle Data IntegratorでのOracle Enterprise Service Busの使用方法について説明します。
この章の内容は次のとおりです。
Oracle Data Integratorの機能(複数のソース表から1つのターゲット表へのロードおよび相互参照の処理を行う統合インタフェースなど)は、Enterprise Service Bus(ESB)を使用した場合に最良の動作が得られるように設計されています。
相互参照は、サービス指向アーキテクチャ(SOA)に真に基づいて構築されたOracle Fusion Middlewareの機能で、Enterprise Service Bus(ESB)コンポーネントを介して使用できます。通常疎結合の統合で利用されます。統合に加わる各種アプリケーション間の実行時相関の管理に使用されます。
Oracle SOA Suiteの相互参照機能では、異なるアプリケーションで作成された対応するエンティティの識別子を関連付けることができます。たとえば、相互参照を使用して、あるアプリケーションで作成された顧客エンティティ(ネイティブID: Cust_100)と別のアプリケーションの同じ顧客のエンティティ(ネイティブID: CT_001)を関連付けることができます。
相互参照(XRef)機能を使用すると、エンティティのネイティブ・キーのアプリケーション間でのマッピングが簡単になります。たとえば、異なるERPシステムの同じ注文を相互に関連付けます。
相互参照の実装では、Oracleデータベース・スキーマを使用して、システムとデータストアの間でレコードを参照するための情報を格納する相互参照表(XREF_DATAと呼ばれる)を格納します。
データのターゲット表へのロード後にソース表データを更新または削除するオプション機能も統合に必要です。これによって、ステータス・フィールドなどの一部の属性の更新またはターゲット・システムへ正常に処理された後のソース・レコードのパージがバルク統合でサポートされることが必要になります。
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ターゲットへのデータの統合時の相互参照がサポートされます。切捨て/更新(追加)モードでデータがターゲット表に統合され、データ・チェックがサポートされます。 |
全プロセスは次の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オプションで指定する必要があります。
ESBナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network(OTN)からアクセスできます。
http://www.oracle.com/technology/products/oracle-data-integrator/index.html
Oracle Data IntegratorでESBを使用するための接続性要件はありません。Oracle Databaseの要件はESBにも適用されます。詳細は、第2章「Oracle Database」を参照してください。
Oracle Data IntegratorでESBを使用するための接続性要件はありません。Oracle Databaseの要件はESBにも適用されます。詳細は、第2章「Oracle Database」を参照してください。
この項の内容は次のとおりです。
ESB相互参照KMを使用したプロジェクトに固有のOracle Data Integratorでのトポロジの作成手順は次のとおりです。
ソースおよびターゲットに対応するデータ・サーバー、物理スキーマおよび論理スキーマを作成します。
2.3.1項「Oracleデータ・サーバーの作成」の説明に従って、Oracleテクノロジ用データ・サーバーを作成します。
このOracleデータ・サーバーの下に、XREF_DATAという名前の相互参照表に含まれるスキーマに対応する、ESB_XREFという物理スキーマおよび論理スキーマを作成します。すでに宣言されているデータ・サーバーにこの表が格納されている場合、スキーマの作成のみが必要です。
詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の物理スキーマの作成および論理スキーマの作成関する項を参照してください。
使用するプロジェクトに次のKMがまだインポートされていない場合は、これらをインポートします。
IKM SQL Control Append(ESB XREF)
LKM SQL to SQL(ESB XREF)。Microsoft SQL Serverを使用している場合はLKM MSSQL to SQL(ESB XREF)
複数のソース表からターゲット表へのロードとソースの1つとターゲットとの間の相互参照の処理の両方を行う統合インタフェースを作成するには、次のようにします。
相互参照を持つソースとターゲット・データストアとのインタフェースを作成します。
通常どおり結合、フィルタおよびマッピングを作成します。共通IDのプレースホルダになる、ターゲット・データストアの列のUD1フラグを必ず選択してください。この列をマップする必要はありません。
インタフェースの「フロー」タブで、相互参照のソース表を含むソース・セットを選択し、「LKM SQL to SQL(ESB XREF)」(ソース・データストアがMicrosoft SQL Serverにある場合は「LKM MSSQL to SQL(ESB XREF)」)を選択します。
次のように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 |
ソース・レコードに何もしない場合は |
UPDATE |
SRC_UPD_COLおよびSRC_UPD_EXPRESSIONに従ってソース・レコード・フラグを更新する場合、
|
DELETE |
統合後ソース・レコードを削除する場合、 DELETEオプションを選択する場合、次のオプションも指定する必要があります。SRC_PK_LOGICAL_SCHEMA、SRC_PK_TABLE_NAMEおよびSRC_PK_TABLE_ALIAS。 |
インタフェースの「フロー」タブでステージング領域を選択し、IKM SQL Control Append(ESB XREF)を選択します。
次のように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フラグを必ず設定します。 |
この項では、次のナレッジ・モジュールに関する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という別名)に次の式を使用できます。
|
SRC_PK_LOGICAL_SCHEMA |
ソース表の論理スキーマの名前 |
いいえ |
ソース表の論理スキーマの名前を示します。ソース表は、処理後レコードを削除または更新する表です。論理スキーマは、実行時にコンテキストに従って実際の物理スキーマを解決するために使用されます。例: |
SRC_PK_TABLE_NAME |
ソース表名。デフォルトはMY_TABLE。 |
いいえ |
処理後にレコードを削除するソース表の名前を示します。例: |
SRC_PK_TABLE_ALIAS |
ソース表の別名。デフォルトは MY_ALIAS |
いいえ |
このインタフェース内でのソース表の別名を示します。ソース表は、処理後レコードを削除または更新する表です。例: |
SRC_UPD_COL |
別名が付けられたソース列名 |
いいえ |
更新フラグ・インジケータを保持し、別名が付けられたソース列名。SRC_UPDATE_DELETE_ACTIONが式リテラルSRC_UPD_EXPRESSIONで |
SRC_UPD_EXPRESSION |
リテラルまたは式 |
いいえ |
SRC_UPD_COLの更新に使用されるリテラルまたは式。この値は、SRC_UPDATE_DELETE_ACTIONが |
DELETE_TEMPORARY_OBJECTS |
Yes|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 |
はい |
一時オブジェクト(表、ファイルおよびスクリプト)を統合後保持する場合、このオプションを |
XREF_TABLE_NAME |
XREF表名 |
はい |
XREF表で使用する表名。例: |
XREF_COLUMN_NAME |
列名 |
はい |
XREF表でリテラルとして使用する主キー列名 |
XREF_SYS_GUID_EXPRESSION |
SYS_GUID() |
はい |
XREF表(列名"VALUE")の共通IDの移入に使用される式を入力します。有効な例: |
XREF_ROWNUMBER_EXPRESSION |
SYS_GUID() |
はい |
XREF表の行番号の移入に使用される式を入力します。Oracleの例: |