8 複合ファイル

Oracle Data Integratorでの複合ファイルの使用方法について理解することが重要です。

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

概要

Oracle Data Integratorでは、複数のファイル・タイプがサポートされています。この章では、複合(またはネイティブ)ファイル形式の使用方法について説明します。ASCIIまたはEBCDICデータを含む単純な固定ファイルまたはデリミタ付きファイルの詳細は、「ファイル」を参照してください。

複合ファイルのために、ファイル構造を記述するネイティブ・スキーマ記述ファイルを作成できます。Oracle Data Integratorでは、このネイティブ・スキーマ(nXSD)記述およびOracle Data Integrator Driver for Complex Filesを使用して、リバース・エンジニアリングおよび複合ファイルからの情報の読取りと書込みを実行できます。

ネイティブ・フォーマット・ビルダー・ウィザードを使用したネイティブ・スキーマ記述ファイルの作成方法の詳細は、「ネイティブ・フォーマット・ビルダーを使用したネイティブ・スキーマ記述ファイルの作成」を参照してください。複合ファイル・ドライバの参照情報は、「Oracle Data Integrator Driver for Complex Filesの参照情報」を参照してください。

概念

Oracle Data Integrator Driver for Complex Files(複合ファイル・ドライバ)によって、ネイティブ・フォーマットがリレーショナル構造に変換され、このリレーショナル構造がデータ・モデルとしてOracle Data Integratorで公開されます。

複合ファイル・ドライバでは、ネイティブ・スキーマ(nXSD)の記述での定義に従い、ネイティブ・ファイルをXML構造に内部的に変換し、このXMLファイルから、Oracle Data Integratorによって消費されるリレーショナル・スキーマを生成します。全体的なメカニズムを図8-1に示します。

図8-1 複合ファイル・ドライバ・プロセス

図8-1の説明が続きます
「図8-1 複合ファイル・ドライバ・プロセス」の説明

複合ファイルに使用されるほとんどの概念とプロセスは、XMLファイルに使用されるものと同等です。主な違いは、ドライバによって内部的に使用されるが保持されないXML構造に、ネイティブ・ファイルを透過的に変換するステップです。

複合ファイル・テクノロジの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つの複合ファイルは、Oracle Data Integratorの1つのデータ・サーバーに対応します。このデータ・サーバー内で、単一のスキーマが複合ファイルの内容にマップされます。

Oracle Data Integrator Driver for Complex File(複合ファイル・ドライバ)によって、ネイティブ・ファイルの複合構造がリレーショナル・スキーマにロードされます。このリレーショナル・スキーマは、SQLを使用した問合せまたは変更が可能なスキーマ内にある一連の表です。複合ファイル・ドライバでは、リレーショナル・スキーマを複合ファイルにアンロードすることもできます。リレーショナル・スキーマは、ODIで、データ・モデルとして、表、列および制約とともに、リバース・エンジニアリングされます。このモデルは、ODI内で通常のリレーショナル・データ・モデルと同様に使用されます。リレーショナル・スキーマ内で変更されたデータを複合ファイルに書き込む必要がある場合、リレーショナル・スキーマをファイルに同期化する、ドライバの機能を使用できます。

単純なフラット・ファイル形式(固定およびデリミタ付き)ではファイル・テクノロジを、XMLファイルではXMLテクノロジを使用することをお薦めします。詳細は、ファイルおよびXMLファイルを参照してください。

複合ファイル・ドライバの事前/事後処理サポート

データを複合ファイル・ドライバに提供する方法をカスタマイズできるようになりました。中間処理ステージを設定して、Oracle Data Integratorを使用して外部エンドポイントから取得されるデータを処理したり、データを外部エンドポイントに書き出すことができます。

複合ファイル・ドライバの事前および事後処理ステージの構成および実装の詳細は、「XMLおよび複合ファイル・ドライバの事前/事後処理サポート」を参照してください。

ナレッジ・モジュール

複合ファイル・データ・サーバーを任意のSQLデータ・サーバーとして使用できます。複合ファイル・データ・サーバーでは、SQLデータ・サーバーをソース指定またはターゲット指定するテクノロジ固有のKMと汎用KMの両方がサポートされています。これらのKMの詳細は、「汎用SQL」またはテクノロジの章を参照してください。

複合ファイル・データ・サーバーに書き込むとき、IKM XML Control Appendを使用することもできます。このナレッジ・モジュールには、複合ファイル・ドライバでサポートされている、リレーショナル・スキーマからファイルへデータを同期化するための特定のオプションが実装されています。

インストールおよび構成

複合ファイル・テクノロジでの作業を開始する前に、この項の情報を必ず読んでください。

システム要件

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

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

http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html

テクノロジ固有の要件

Oracle Data Integratorで複合ファイルを使用するためのテクノロジ固有の要件はありません。

接続性要件

この項では、複合ファイルに接続するための要件をリストします。

Oracle Data Integrator Driver for Complex Files

複合ファイルへのアクセスは、Oracle Data Integrator Driver for Complex Fileを介して行われます。このJDBCドライバはOracle Data Integratorとともにインストールされるもので、その他のコンポーネントのインストールや構成は不要です。

システム管理者から次の接続情報を入手する必要があります。

  • ネイティブ・ファイルに関連付けられているネイティブ・スキーマ(nXSD)ファイルの場所

  • ネイティブ複合ファイルの場所

ネイティブ・フォーマット・ビルダーを使用したネイティブ・スキーマ記述ファイルの作成

ネイティブ・フォーマット・ビルダー・ウィザードを使用してネイティブ・スキーマ(nXSD)記述ファイルを作成できます。複合ファイル・データ・サーバーを作成する場合、データ・サーバー・エディタからネイティブ・フォーマット・ビルダー・ウィザードを起動できます。

ネイティブ・フォーマット・ビルダーを使用してネイティブ・スキーマ記述ファイルを作成するには、次のようにします。

  1. トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンの「テクノロジ」ノードを開きます。
  2. 複合ファイル・テクノロジを選択します。
  3. 右クリックして「新規データ・サーバー」を選択します。
  4. 「JDBC」タブで、「nXSDを編集します」ボタンをクリックします。ネイティブ・フォーマット・ビルダー・ウィザードが表示されます。
  5. 画面上の指示に従って、ネイティブ・フォーマット・ビルダー・ウィザードを完了してネイティブ・スキーマ記述ファイルを作成します。

ネイティブ・スキーマ形式の詳細は、テクノロジ・アダプタ・ユーザーズ・ガイドネイティブ・フォーマット・ビルダー・ウィザードに関する項を参照してください。

トポロジの設定

トポロジの設定には次が含まれます。

  1. 複合ファイル・データ・サーバーの作成

  2. 複合ファイル物理スキーマの作成

複合ファイル・データ・サーバーの作成

複合ファイル・データ・サーバーは、Oracle Data Integratorにアクセス可能な1つのネイティブ・ファイルに対応します。

注意:

メモリー内エンジンの使用はベスト・プラクティスではなく、複合ファイル・テクノロジを使用したときに問題が発生する場合があります。

エラーの原因: メモリー内HSQLを本番で使用することはお薦めしません。ODIの範囲を超えてメモリー・リークが発生し、最終的にJVMが停止します。開発のみでの使用を対象としています。Oracle、MySQL、MS SQLServerなどの外部DBに切り替えることをお薦めします。

データ・サーバーの作成

『Oracle Data Integratorの管理』データ・サーバーの作成に関する項に記載されている標準の手順で、複合ファイル・テクノロジ用データ・サーバーを作成します。この項では、複合ファイル・データ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

  1. 「定義」タブ:
    • 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。

    • ユーザー/パスワード: これらのフィールドは、複合ファイル・データ・サーバーでは使用しません。

  2. 「JDBC」タブで次の値を入力します。
    • JDBCドライバ: oracle.odi.jdbc.driver.file.complex.ComplexFileDriver

    • JDBC URL: jdbc:snps:complexfile

    • nXSDを編集します: ネイティブ・スキーマ記述ファイルを作成する場合にネイティブ・フォーマット・ビルダー・ウィザードを起動します。

      ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、「ネイティブ・フォーマット・ビルダーを使用したネイティブ・スキーマ記述ファイルの作成」を参照してください。

    • プロパティ: Oracle Data Integrator Driver for Complex Filesのネイティブ・ファイルの場所、ネイティブ・スキーマ、ルート要素およびスキーマ名などのプロパティを構成します。

      表8-1に、Oracle Data Integrator Driver for Complex Filesの主なプロパティをリストします。これらのプロパティは、JDBC URL内で指定できます。

      これらのプロパティの詳細、およびすべてのプロパティの包括的なリストは、「Oracle Data Integrator Driver for Complex Filesの参照情報」を参照してください。

    表8-1 複合ファイル・ドライバのプロパティ

    プロパティ 説明

    f

    <ネイティブ・ファイルの名前>

    ネイティブ・ファイルの場所。パス名には、バックスラッシュ"\"ではなくスラッシュ"/"を使用します。HTTP、FTPまたはファイルのURLを使用してファイルの場所を示すことができます。URLによって示されたファイルは読取り専用です。このパラメータは必須です。

    d

    <ネイティブ・スキーマ>

    ネイティブ・スキーマ(nXSD)ファイルの場所。このパラメータは必須です。

    re

    <ルート要素>

    スキーマのルート表として選択する要素の名前。この値では大/小文字が区別されます。このプロパティは、ネイティブ・スキーマの特定のセクションなどのリバース・エンジニアリングに使用できます。このパラメータは必須です。

    s

    <schema name>

    複合ファイルのロード先となるリレーショナル・スキーマの名前。このパラメータはオプションです。

    このスキーマは、複合ファイル・データ・サーバーの下に物理スキーマを作成する際に選択されます。

複合ファイル物理スキーマの作成

『Oracle Data Integratorの管理』物理スキーマの作成に関する項の説明に従って、標準の手順を使用して複合ファイル物理スキーマを作成します。

URLで設定したスキーマ名が表示されます。「データ・スキーマ」および「作業スキーマ」の両方について、このスキーマを選択します。

『Oracle Data Integratorの管理』論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

統合プロジェクトの設定

複合ファイル・テクノロジを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Data Integratorでの統合プロジェクトの開発』統合プロジェクトの作成に関する項を参照してください。

最初は、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。

  • LKM SQL to SQL

  • IKM XML Control Append

これらのナレッジ・モジュール以外に、使用する製品に関連する他のテクノロジ固有のファイル・ナレッジ・モジュールもインポートできます。

複合ファイル・モデルの作成およびリバース・エンジニアリング

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

複合ファイル・モデルの作成

複合ファイル・モデルによって、一連のデータストアがグループ化されます。各データストアは通常、ネイティブ・スキーマを使用してネイティブ・ファイルから生成される中間XMLファイル内の要素を表します。

『Oracle Data Integratorでの統合プロジェクトの開発』モデルの作成に関する項の説明に従って、標準の手順を使用して複合ファイル・モデルを作成します。

複合ファイル・モデルのリバース・エンジニアリング

複合ファイル・テクノロジでは、複合ファイル・ドライバの機能のみを使用する標準のリバース・エンジニアリングがサポートされます。

標準のリバース・エンジニアリング

複合ファイル・モデルで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』モデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。

このリバース・エンジニアリングでは、XMLファイルのリバース・エンジニアリングと同じプロセスが使用されます。データ・サーバーURLで提供されるネイティブ・スキーマ(nXSD)は、XML構造を記述するためのXSDファイルとして使用されます。詳細は、「XMLモデルのリバース・エンジニアリング」および「XMLからSQLへのマッピング」を参照してください。

マッピングの設計

複合ファイルをマッピングのソースまたはターゲットとして使用できます。

マッピングまたはチェック用に選択したKMによって、このマッピングまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、複合ファイル・データ・サーバーに関連する様々な状況でのKMの選択に役立ちます。

複合ファイル・データ・モデルは、XML構造と類似のマッピングで処理されます。たとえば、複合ファイルとXMLファイルでは同期モデルが同じであり、両方のテクノロジに同じナレッジ・モジュールを使用できます。

詳細は、XMLファイルマッピングの設計を参照してください。