プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Data Integratorでのナレッジ・モジュールの開発
12c (12.2.1.1)
E77238-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

3 リバースエンジニアリング戦略

この章では、カスタマイズされたリバースエンジニアリングのプロセスと、高度なメタデータを取得するためにリバースエンジニアリング・ナレッジ・モジュールで使用される戦略について説明します。

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

3.1 カスタマイズ・リバースエンジニアリング・プロセス

Oracle Data Integratorの標準リバースエンジニアリングでは、指定されたデータ・サーバーへの接続に使用されるドライバの機能に依存して、データ構造を記述したリッチ・メタデータを返します。

このメタデータが正確でないか、データ・サーバーから特定のメタデータを取得してリッチ化する必要がある場合は、カスタマイズ・リバースエンジニアリングを使用します。

3.1.1 SNP_REV表

Oracle Data Integratorリポジトリには、SNP_REV表と呼ばれるメタデータ・ステージング表のセットが含まれています。

これらのSNP_REV表の内容は、次のツールを使用して管理されます。

  • OdiReverseResetTableは、指定されたモデルに対してこれらの表の内容をリセットします。

  • OdiReverseGetMetadataは、標準のJDBCリバースエンジニアリングと同じプロセスを使用してこれらの表をロードします。

  • OdiReverseSetMetadataは、これらのステージング表の内容を、データストア、列、制約などを記述するリポジトリ表に適用します。このアクションによってOracle Data Integratorモデルが変更されます。

SNP_REV表の詳細は付録B「SNP_REV表のリファレンス」を、リバースエンジニアリング・ツールの詳細は『Oracle Data Integrator開発者ガイド』を参照してください。

3.1.2 カスタマイズ・リバースエンジニアリング戦略

カスタマイズ・リバースエンジニアリング戦略は、すべてのRKMで共通のパターンに従います。

このパターンには次の手順が含まれます。

  1. OdiReverseResetTableツールをコールし、SNP_REV表の前の実行結果をリセットします。

  2. SNP_REV表をロードします。これは次の3つの主要パターンを使用して実行されます。

    • メタデータ・プロバイダからメタデータを取得し、それらをSNP_REV表にロードします。これはRKM Oracleの例に使用されるパターンです。

    • サードパーティ・プロバイダからメタデータを取得します。これはRKM File (FROM EXCEL)の例に使用されるパターンです。メタデータは、モデルに記述されたファイルからではなく、これらのファイルの記述を含むMicrosoft Excelスプレッドシートから抽出されます。

    • OdiReverseGetMetadataを使用してSNP_REV表を事前にロードし、これらの表をターゲットとする問合せを使用してメタデータを修正/リッチ化します。

  3. OdiReverseSetMetaDataツールをコールして、現在のOracle Data Integratorモデルに変更を適用します。

RKMでは、ソース・コマンドとターゲット・コマンドは次のように機能します。

  • 「自動コミット」トランザクションで「未定義」テクノロジにより指定された「ターゲットに対するコマンド」は、リポジトリのSNP_REV表をターゲットとします。

  • 「自動コミット」トランザクションで「未定義」スキーマにより指定された「ソースに対するコマンド」は、リバースエンジニアリングのデータ構造を含むデータサーバーからデータを取得します。メタデータ・プロバイダ(たとえば、Excelスプレッドシート)を使用する場合は、特定のテクノロジと論理スキーマを指定する必要があります。

  • ツール(OdiReverseSetMetadataなど)のコールは、ODIツール・テクノロジにより、「ターゲットに対するコマンド」で指定されます。

3.2 ケース・スタディ

この項では、リバースエンジニアリング戦略の例を示します。

3.2.1 RKM Oracle

RKM Oracleは、データベース・ディクショナリをメタデータ・プロバイダとして使用するリバースエンジニアリング・プロセスの一般的な例です。

次のコマンドは、OracleのRKMから抽出したもので、ここに例として示します。このナレッジ・モジュールのコードはOracle Data Intagrator Studioで編集して確認できます。

3.2.1.1 SNP_REV表のリセット

このタスクは、現在のモデルに対してSNP_REV表の内容をリセットします。

ターゲットに対するコマンド(ODIツール)

OdiReverseResetTable -MODEL=<%=odiRef.getModel("ID")%>

3.2.1.2 表の取得

このタスクは、Oracleシステム表から表のリストを取得し、その内容をSNP_REV表にロードします。

ソースに対するコマンド

Select  t.TABLE_NAME                     TABLE_NAME,      t.TABLE_NAME                     RES_NAME,        replace(t.TABLE_NAME,'<%=odiRef.getModel("REV_ALIAS_LTRIM")%>','')         TABLE_ALIAS,     substr(tc.COMMENTS,1,250)               TABLE_DESC,      'T' TABLE_TYPE,  t.NUM_ROWS                       R_COUNT, SUBSTR(PARTITIONING_TYPE ,1,1) PARTITIONING_TYPE, SUBSTR(SUBPARTITIONING_TYPE,1,1) SUBPARTITIONING_TYPEFrom ALL_TABLES       t,      ALL_TAB_COMMENTS  tc,     ALL_PART_TABLES tp
Where ... ...

ターゲットに対するコマンド

insert into SNP_REV_TABLE(        I_MOD,   TABLE_NAME,      RES_NAME,        TABLE_ALIAS,     TABLE_TYPE,      TABLE_DESC,      IND_SHOW,        R_COUNT, PARTITION_METH,  SUB_PARTITION_METH)values(        <%=odiRef.getModel("ID")%>,     :TABLE_NAME,     :RES_NAME,       :TABLE_ALIAS,    'T',    :TABLE_DESC,     '1',    :R_COUNT,        :PARTITIONING_TYPE,      :SUBPARTITIONING_TYPE)

3.2.1.3 ビュー、パーティション、列、FK、キーおよびその他のOracleメタデータの取得

後続のコマンドでは、同じパターンを使用してOracleシステム表の内容からSNP_REV表をロードします。

3.2.1.4 メタデータの設定

このタスクは、現在のモデルに対してSNP_REV表の内容をリセットします。

ターゲットに対するコマンド(ODIツール)

OdiReverseSetMetaData -MODEL=<%=odiRef.getModel("ID")%>