ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integratorナレッジ・モジュール開発者ガイド
11g リリース1(11.1.1)
B62262-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

1 ナレッジ・モジュールの概要

この章では、ナレッジ・モジュール(KM)の概要を示します。ナレッジ・モジュールの内容を説明し、そして様々なタイプのKMについて記載します。

この章では、次の項目について説明します。

1.1 ナレッジ・モジュールとは

ナレッジ・モジュール(KM)はコード・テンプレートです。それぞれのKMは、データ統合プロセス全体の中の、独立した1つのタスクに対応しています。KMのコードの表示は、実行される形式とほとんど同じですが、Oracle Data Integrator (ODI)の置換メソッドが含まれている点で異なるため、一般的に多様な統合ジョブで使用できます。。生成および実行されるコードは、ODIのデザイナ・モジュールで定義された宣言規則およびメタデータから導出されます。

KMは、6つの異なるカテゴリに分類されます。その要約を次の表に示します。

ナレッジ・モジュール 説明 使用方法

リバースエンジニアリングKM

Oracle Data Integrator の作業リポジトリに格納するメタデータを取得します

カスタマイズされたリバースエンジニアリングを実行するモデル

チェックKM

制約と照合してデータの一貫性をチェックします

  • モデル、サブモデルおよびデータストア(データ整合性監査の場合)

  • インタフェース(フロー制御または静的制御の場合)

ロードKM

異機種間データをステージング領域にロードします

異機種間ソースを使用するインタフェース

統合KM

ステージング領域からターゲットにデータを統合します

インタフェース

ジャーナル化KM

ソース・ステージング領域に、チェンジ・データ・キャプチャ・フレームワーク・オブジェクトを作成します

モデル、サブモデルおよびデータストア(ジャーナルの作成、開始、停止、およびサブスクライバの登録のため)

サービスKM

データ操作Web サービスを生成します

モデルおよびデータストア


次の各項では、それぞれのタイプのナレッジ・モジュールについて説明します。

1.2 リバースエンジニアリング・ナレッジ・モジュール(RKM)

RKMの役割は、モデルのカスタマイズ済リバースエンジニアリングを実行することです。RKMは、アプリケーションまたはメタデータ・プロバイダに接続し、作成されたメタデータを変換してOracle Data Integratorのリポジトリに書き込みます。メタデータは、一時的にSNP_REV_xx表に書き込まれます。その後、RKMによってOracle Data Integrator APIがコールされ、これらの表からデータが読み取られ、Oracle Data Integratorの作業リポジトリのメタデータ表に、増分更新モードで書き込まれます。図に示すと次のようになります。

図1-1 リバースエンジニアリング・ナレッジ・モジュール

図1-1の説明が続きます
「図1-1 リバースエンジニアリング・ナレッジ・モジュール」の説明

通常のRKMは、次の手順に従います。

  1. 前の実行で取得されたSNP_REV_xx表を、OdiReverseResetTableツールを使用してクリーンアップします。

  2. メタデータ・プロバイダからサブモデル、データストア、列、一意キー、外部キー、条件を取得し、SNP_REV_SUB_MODEL、SNP_REV_TABLE、SNP_REV_COL、SNP_REV_KEY、SNP_REV_KEY_COL、SNP_REV_JOIN、SNP_REV_JOIN_COL、SNP_REV_CONDの各表に書き込みます。

  3. OdiReverseSetMetaDataツールをコールして、作業リポジトリ内のモデルを更新します。

1.3 チェック・ナレッジ・モジュール(CKM)

CKMは、データセットのレコードが定義済の制約と一致することをチェックします。CKMは、データの整合性を保持するために使用され、全体的なデータ品質の決定に関与します。CKMは、次の2つの方法で使用できます。

要約: CKMは、既存の表またはIKMによって作成された一時表「I$」をチェックできます。

CKMは、一連の制約とチェック対象の表名を受け入れます。また、拒否されたすべてのレコードを書き込むエラー表「E$」を作成します。さらに、チェックした結果セットからエラーのあるレコードを削除することもできます。

次の図は、STATIC_CONTROLモードおよびFLOW_CONTROLモードの両方で、CKMがどのように動作するかを示しています。

図1-2 チェック・ナレッジ・モジュール(STATIC_CONTROL)

図1-2の説明が続きます
「図1-2 チェック・ナレッジ・モジュール(STATIC_CONTROL)」の説明

STATIC_CONTROLモードの場合、CKMは表の制約を読取り、表のデータと照合してチェックします。制約と一致しないレコードは、ステージング領域の「E$」エラー表に書き込まれます。

図1-3 チェック・ナレッジ・モジュール(FLOW_CONTROL)

図1-3の説明が続きます
「図1-3 チェック・ナレッジ・モジュール(FLOW_CONTROL)」の説明

FLOW_CONTROLモードの場合、CKMは、インタフェースのターゲット表の制約を読み取ります。これらの制約を、ステージング領域の「I$」フロー表に含まれるデータと照合してチェックします。これらの制約に違反するレコードは、ステージング領域の「E$」表に書き込まれます。

いずれの場合も、通常、CKMは次のタスクを実行します。

  1. ステージング領域に「E$」エラー表を作成します。エラー表には、データストアと同じ列に加えて、エラー・メッセージのトレース、エラー元のチェックおよび日付のチェックを行うための追加の列が必要です。

  2. チェックする必要がある主キー、代替キー、外部キー、条件、必須列ごとに、エラーのあるレコードを「E$」表に隔離します。

  3. 必要に応じて、チェックした表からエラーのあるレコードを削除します。

1.4 ロード・ナレッジ・モジュール(LKM)

LKMは、ソース・データをリモート・サーバーからステージング領域へロードします。ソース・データストアがステージング領域と同じデータ・サーバー上にない場合に、インタフェースによって使用されます。次の図に示すように、LKMは、ソース・サーバーで実行する必要がある宣言規則を実装し、単一の結果セットを取得して、ステージング領域の「C$」表に格納します。

図1-4 ロード・ナレッジ・モジュール

図1-4の説明が続きます
「図1-4 ロード・ナレッジ・モジュール」の説明

  1. LKMは、ステージング領域に一時表「C$」を作成します。この表には、ソース・サーバーからロードされたレコードが保持されます。

  2. LKMは、ソース上で適切な変換を実行することで、ソース・サーバーから一連の事前変換済レコードを取得します。ソース・サーバーがRDBMSの場合は通常、単一のSQL SELECT問合せを使用して実行されます。ソースにSQLの機能がない場合(フラット・ファイルまたはアプリケーションなど)、LKMは、単純に適切な方法(ファイルの読取りまたはAPIの実行)でソース・データを読み取ります。

  3. LKMは、ステージング領域の「C$」表にレコードをロードします。

インタフェースでは、異なるソースからデータストアを使用する際にいくつかのLKMが必要になる場合があります。すべてのソース・データストアがステージング領域と同じデータ・サーバー上にある場合は、LKMは不要です。

1.5 統合ナレッジ・モジュール(IKM)

IKMは、変換された最終データをターゲット表に書き込みます。それぞれのインタフェースでは、単一のIKMが使用されます。IKMの起動時には、リモート・サーバーの全ロード・フェーズのタスクは完了済であるとみなされます。つまり、すべてのリモート・ソース・データセットがLKMによってステージング領域の一時表「C$」にロードされている、もしくはソース・データストアがステージング領域と同じデータ・サーバー上にあるとみなされます。そのため、IKMによって実行されるのは、「C$」表およびステージング領域と同じデータ・サーバー上にある表に対するステージングおよびターゲットの変換、結合およびフィルタ処理のみです。通常、作成されるセットはIKMによって処理され、ターゲットにロードされる前に一時表「I$」に書き込まれます。これらの変換済最終レコードは、インタフェースで選択されたIKMに応じて複数の方法で書き込むことができます。ターゲットに単純に追加するか、増分更新または緩やかに変化するディメンションのために比較することが可能です。IKMには、ステージング領域がターゲット・データストアと同じサーバー上にあることを前提条件とするIKM、およびこの条件に当てはまらない場合に使用できるIKMの2種類があります。これらを次の図に示します。

図1-5 統合ナレッジ・モジュール(ステージング領域がターゲット上にある場合)

図1-5の説明が続きます
「図1-5 統合ナレッジ・モジュール(ステージング領域がターゲット上にある場合)」の説明

ステージング領域がターゲット・サーバー上にある場合は、通常、IKMは次の手順で行われます。

  1. セット指向の単一のSELECT文を実行し、すべての「C$」表およびローカル表(図のDのような)のステージング領域およびターゲットの宣言規則を実行します。これにより、結果セットが生成されます。

  2. 単純な追加IKMでは、この結果セットがターゲット表に直接書き込まれます。より複雑なIKMでは、この結果セットを格納する「I$」表が作成されます

  3. ターゲットの制約と照合してデータ・フローをチェックする必要がある場合は、CKMをコールしてエラーのあるレコードを隔離し、「I$」表をクレンジングします。

  4. 定義された戦略(増分更新、緩やかに変化するディメンションなど)に従って、「I$」表からターゲットにレコードを書き込みます。

  5. 一時表「I$」を削除します。

  6. 必要に応じて、CKM を再びコールしてターゲット・データストアの一貫性をチェックします。

この種類のKMは、ターゲット・サーバー外部のデータを操作しません。大量のジョブを実行する場合は、最大限の効率を得るために、データ処理はセット指向で行われます。

図1-6 統合ナレッジ・モジュール(ステージング領域がターゲットと異なる場合)

図1-6の説明が続きます
「図1-6 統合ナレッジ・モジュール(ステージング領域がターゲットと異なる場合)」の説明

図1-6に示すように、ステージング領域がターゲット・サーバーと異なる場合は、通常、IKMは次の手順で行われます。

  1. セット指向の単一のSELECT文を実行し、すべての「C$」表およびステージング領域の表(図のDのような)に対して宣言規則を実行します。これにより、結果セットが生成されます。

  2. 定義された戦略(追加または増分更新)に従って、この結果セットをターゲット・データストアにロードします。

このアーキテクチャには、次のような一定の制限があります。

1.6 ジャーナル化ナレッジ・モジュール(JKM)

JKMは、モデル、サブモデルまたはデータストア上に、チェンジ・データ・キャプチャのインフラストラクチャを作成します。JKMは、CDCインフラストラクチャの初期化方法を定義するために、インタフェースではなくモデル内で使用されます。次の図に示すように、このインフラストラクチャは、サブスクライバ表、変更の表、この表のビューおよび1つ以上のトリガーまたはログ取得プログラムで構成されます。

図1-7 ジャーナル化ナレッジ・モジュール

図1-7の説明が続きます
「図1-7 ジャーナル化ナレッジ・モジュール」の説明

1.7 サービス・ナレッジ・モジュール(SKM)

SKMは、データ操作Webサービスを作成して、サービス指向アーキテクチャ(SOA)インフラストラクチャにデプロイします。SKMはモデル上で設定されます。それらは、各データストアのWebサービスに対して生成される、様々な操作を定義します。他のKMとは異なり、実行可能コードを生成しません。かわりにWebサービス・デプロイメントのアーカイブ・ファイルを生成します。SKMは、Oracle Data IntegratorのWebサービス用フレームワークを使用して、Javaコードを生成するように設計されています。生成されたコードは後でコンパイルされ、最終的にアプリケーション・サーバーのコンテナにデプロイされます。

1.8 ナレッジ・モジュール開発者のためのガイドライン

独自のKMを開発する場合の第一のガイドラインは、決してゼロから始めないことです。

Oracle Data Integratorには、すぐに使用できる多数のナレッジ・モジュールが用意されています。まずは既存のKMを確認することから開始し、自分のユースケースに近い既存のKMを出発点とすることをお薦めします。そのKMを複製し、コードを編集してカスタマイズします。

独自のKMを開発する際には、そのKMが統合プロセスの特定の段階を対象とすることに留意してください。その他の留意事項は次のとおりです。

次に示す一般的な過ちに注意してください。

KMに適用されるその他の一般的なコード記述の推奨事項: