ヘッダーをスキップ
Oracle® Warehouse Builderソースおよびターゲット・ガイド
11gリリース2 (11.2)
B61349-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 コード・テンプレートを使用したデータのロードおよび転送

Oracle Warehouse Builderは、多くの異なるデータベース・プラットフォームおよびシステムからデータをロードおよび変換するため、これらの異なるデータ・ソースのアクセスおよびロードに使用される技術に柔軟性、拡張性および効率性が要求されます。Oracle Warehouse Builderは、コード・テンプレート(CT)を使用してこの問題を解決します。

CTは、特定のデータ・ソースまたはターゲットのデータの効率的なロード、変換または統合を可能にする拡張可能なコンポーネントです。マッピングに使用して、特定のタスクを実行できます。たとえば、ソースからデータを抽出してターゲット表にロードするタスクを実行できます。

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

コード・テンプレートについて

CTは、Oracle Warehouse Builderのオープンなコネクタ技術のコンポーネントです。CTには、特定のシステムまたは一連のシステムに対して特定の一連のタスクを実行するOracle Warehouse Builderに必要な情報が含まれます。CTは、JDBCなどの接続性レイヤーと結合して、システムの接続、システムからのデータの抽出、データの変換またはデータの確認および統合など、システムに対する定義されたタスクを実行するオープンなコネクタを定義します。

オープンなコネクタには、次の組合せがあります。

  • JDBCなどの接続オプション

  • 特定のプラットフォームのSQLなどの正しい構文

  • 一時表および作業表、ビュー、トリガーなどのオブジェクトの作成および削除の制御

  • データ処理および変換方針

  • データ移動オプション(ターゲット表の作成、挿入、削除、更新)

異なるタスクの実行に使用できる様々なタイプのCTがあります。Oracle Warehouse Builderには、次のタイプのCTがあります。

CTを使用すると、効率的な方法で特定のタスクを実行するテンプレートを取得できます。たとえば、次に示すように、CTを使用してDB2データベースからデータをロードし、SQL Serverデータベースにデータを移動できます。

  1. ソース表およびターゲット表でマッピングを作成します。

  2. ロードCT(LCT)を使用して、DB2ソース表からデータをロードします。

  3. 統合CT(ICT)を使用して、データをSQL Serverターゲット表に移動します。

このマッピングを実行すると、DB2からSQL Serverへのデータのロードおよび転送がLCTおよびICTによって管理されます。

カスタム・マッピングでは、CTを使用できません。コード・テンプレート・マッピングという特殊なタイプのマッピングにのみ、CTを使用できます。プロジェクト・ナビゲータの「テンプレート・マッピング」ノードで、コード・テンプレート・マッピングを作成できます。

マッピングでCTを使用するには、コード・テンプレート・マッピングのオブジェクトを実行ユニットという単位にカプセル化する必要があります。詳細は、「コード・テンプレートの使用」を参照してください。

Oracle Data Integrator 10gの事前定義済のCT(ナレッジ・モジュール)をインポートするか、特定の要件に基づく新しいCTを作成できます。

ロード・コード・テンプレート

LCTを使用すると、リモート・データ・ソースからステージング領域にデータをロードできます。様々なデータ・ソースがサポートされています。これには、次のものが含まれます。

  • Oracle

  • DB2

  • SQL Server

  • ファイル

また、新しいデータ・ソースも追加できます。デフォルトで、LCTをソース表オブジェクトを含む実行ユニットに関連付ける必要があります。

統合コード・テンプレート

ICTを使用して、ステージング表からターゲット・データベースにデータを統合します。ロード方法およびターゲット・データベースのタイプに基づいて、既存の一連のICTのいずれかを使用できます。ICTを使用する場合、次のルールが適用されます。

  • ICTの入力は、LCTから行う必要があります。

  • ICTは、ターゲット・データベースに関連付ける必要があります(実行ユニットを使用)。

コントロール・コード・テンプレート

コントロールCTを使用してデータ品質チェックを実行し、データ整合性を確保します。キー制約および他のユーザー定義データのロード・ルールのチェックが実行されます。CCTを使用して、既存の表内のデータ制約をチェックしたり、表への新規データのロード時にデータ制約をチェックします。CCTは、マップの実行ユニットと関連付けられます。ETLのデータ品質ルールの実装の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。

チェンジ・データ・キャプチャ・コード・テンプレート

CDC CTを使用すると、最後のインポートからのデータ・オブジェクトの変更のみを取得できます。CDC CTは、チェンジ・データ・キャプチャ処理を制御し、表およびモジュールに関連付けられます。

Oracleターゲット・コード・テンプレート

OracleターゲットCTには、Match-Merge、Name and Address、ディメンションなどのすべての通常のマッピング演算子を含めることができます。

ファンクション・コード・テンプレート

ファンクションCTを使用して、ファンクション、パッケージおよびプロシージャをデプロイします。ファンクションCTは、ファンクション、パッケージおよびプロシージャに関連付けられます。

事前定義済コード・テンプレート

Oracle Warehouse Builderには、Oracle Warehouse Builderで直接使用できる特定の事前定義済CTが含まれます。

また、これらの事前定義済CTがOracle Warehouse Builderリポジトリにインストールされ、グローバル・ナビゲータにリストされます。グローバル・ナビゲータから事前定義済CTを表示するには、「パブリック・コード・テンプレート」ノード、「BUILT_IN_CT」ノードの順に開きます。インポートすることなく直接これらの事前定義済コード・テンプレートを使用できます。

Oracle Warehouse Builderで用意されているすべての事前定義済コード・テンプレートのリストは、『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』を参照してください。


注意:

Oracle Warehouse Builderで使用できる事前定義済コード・テンプレートは、Oracle Data Integrator 10gで使用できるナレッジ・モジュールからインポートされました。これらのコード・テンプレート・ファイルは、OWB_HOME/owb/misc/CodeTemplatesから取得できます。

コード・テンプレートの使用

Oracle Warehouse BuilderでCTを使用するには、次の手順を実行します。

コード・テンプレート・フォルダの作成

Oracle Warehouse Builder内にCTを格納するためのコンテナが必要です。これはCTフォルダと呼ばれます。

CTフォルダを作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「コード・テンプレート」を右クリックし、「新規コード・テンプレート・フォルダ」をクリックして「コード・テンプレート・フォルダの作成」ダイアログ・ボックスを開きます。

  2. 新しいフォルダ名を指定して「OK」をクリックします。

新しく作成したCTフォルダをプロジェクト・ナビゲータで使用できます。また、新しく作成したフォルダの下にすべての使用可能なタイプのCTを表示できます。

コード・テンプレートの作成

CTフォルダの下に使用可能なタイプのCTを作成できます。ロード、統合、チェンジ・データ・キャプチャなどのタイプのCTには、Oracle Data Integratorから既存のCTをインポートするか、新しいCTを作成できます。OracleターゲットCTおよびファンクションCTには、新しいCTを作成する必要があります。いずれのタイプのCTの場合でも、作成手順はLCTと同じです。

新しいLCTを作成する手順は、次のとおりです。

  1. 「ロード」を右クリックし、「新規CTのロード」をクリックします。

  2. 「ロード・コード・テンプレートの作成」ダイアログ・ボックスが表示されます。

  3. CTの名前およびオプションの説明を入力して、「OK」をクリックします。

    新しく作成したCTが「ロード」の下に表示されます。

    これで、開始と終了タスク間のタスクを指定できます。


関連項目:

コード・テンプレートの作成の詳細は、Oracle Data Integratorドキュメント・セットのナレッジ・モジュールに関する項を参照してください。

コード・テンプレートのインポート

CTをインポートする手順は、次のとおりです。

  1. CTをインポートするコード・テンプレート・フォルダを選択します。

  2. 「ファイル」「インポート」「コード・テンプレート」の順に選択します。

    コード・テンプレートのインポート・ウィザードが表示されます。

  3. 「次へ」をクリックして、ファイルの選択ページを開きます。

  4. 「参照」をクリックして、インポートするCTを含むソース・ディレクトリを選択します。

    使用できるCTがファイルの選択ページの「ディレクトリ・ファイル」の下にリストされます。

  5. CTを選択して、「インポートするファイル」リストに移動します。

  6. 「次へ」をクリックして、名前コード・テンプレート・ページを開きます。

    ここで、CTの新しい名前を指定するか、現在の名前を使用できます。

  7. 「次へ」をクリックしてサマリー・ページを開き、「終了」をクリックします。

Oracle Warehouse Builderにより、インポートされたCTが適切なタイプの下に自動的に挿入されます。たとえば、LCTをインポートすると、プロジェクト・ナビゲータの「ロード」の下に追加されます。


注意:

事前定義済CTはリポジトリに格納されていて直接使用できるため、インポートする必要はありません。

コード・テンプレートのタスク

CTは、次のように大きく分類される一連の事前定義済タスクで構成されます。

  • JDBC: JDBC文を処理します。

  • Jython: Jython文を処理します。

  • ランタイムAPI: OdiOSCommandなどのOracle Data Integrator 10gツールのアクセスを提供します。

  • オペレーティング・システム: オペレーティング・システムのアクセスを提供します。

  • Jacl: CTマッピングに生成される固有のtclスクリプトのアクセスを提供します。

たとえば、SQLからOracleへのデータのロードに使用されるLCTは、次のタスクで構成されます。

  • Start_Task

    1. KMオプションの検証: Jythonタスク

    2. 作業表の削除: JDBCタスク

    3. 作業表の作成: JDBCタスク

    4. ジャーナル化表のロック: JDBCタスク

    5. データのロード: JDBCタスク

    6. 作業表の分析: JDBCタスク

    7. ジャーナル化表のクリーンアップ: JDBCタスク

    8. 作業表の削除: JDBCタスク

  • End_Task

コード・テンプレートの使用

CTは、コード・テンプレート・マッピングで使用されます。CTを使用する手順は、次のとおりです。

  • テンプレート・マッピング・モジュールを作成します。

  • モジュールの下にマップを作成します。

  • マッピングにCTを使用します。

テンプレート・マッピング・モジュールの作成

テンプレート・マッピング・モジュールを作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「テンプレート・マッピング」を右クリックして、「新規マッピング・モジュール」を選択します。

    モジュールの作成ウィザードが表示されます。

  2. 名前と説明ページに、名前と説明(オプション)を入力します。

  3. 接続詳細ページで、既存のロケーションを選択するか、「編集」をクリックして「エージェントのロケーションの編集」ダイアログ・ボックスを開いてエージェントの接続詳細を入力します。詳細は、「テンプレート・マッピングのエージェントの指定」を参照してください。

  4. サマリー・ページで、入力した情報を確認して「終了」をクリックします。

新しく作成したテンプレート・マッピング・モジュールを「テンプレート・マッピング」ノードで使用できます。

テンプレート・マッピングのエージェントの指定

テンプレート・マッピングは、コントロール・センター・エージェントで実行されます。デフォルトで、Oracle Warehouse Builderには、デフォルトのコントロール・センターと同様にコントロール・センター・サービスと同じホストのコントロール・センター・エージェントを参照するデフォルトのエージェント・ロケーションが含まれます。

コントロール・センター・エージェントの起動および停止

デフォルトのエージェントを使用するには、コントロール・センター・エージェント(CCA)が実行されていることを確認します。

Windows: Windowsの場合、OWB_HOME/owb/bin/win32に移動してccastart.batファイルを実行することにより、CCAインスタンスを起動します。初めてこのファイルを実行すると、oc4jadminユーザーのパスワードの入力を要求されます。

CCAを停止するには、OWB_HOME/owb/bin/win32ディレクトリのccashut.batスクリプトを実行します。このスクリプトでは、oc4jadminユーザー・パスワードの入力を要求されます。

UNIX: UNIXの場合、OWB_HOME/owb/bin/unixディレクトリ内のccastartファイルを実行することにより、CCAインスタンスを起動します。

CCAを停止するには、OWB_HOME/owb/bin/unixディレクトリのccashutファイルを実行します。このスクリプトでは、oc4jadminユーザー・パスワードの入力を要求されます。

「エージェントのロケーションの編集」ダイアログ・ボックス

「エージェントのロケーションの編集:デフォルト・エージェント」ダイアログ・ボックスで、次の詳細を指定する必要があります。

  • ユーザー: oc4jadmin

  • パスワード: ccastartファイルの起動中に設定されるパスワード。

  • ホスト: エージェントが格納されるホスト

  • ポート: 23791

  • ポート・タイプ: RMI

  • インスタンス: 空白のままにすることができます。

  • アプリケーション名: マッピングをデプロイするアプリケーションの名前。値jrtを入力して、Oracle Warehouse BuilderとともにインストールされるデフォルトのCCAにデプロイします。

  • HTTPポート: 8888


注意:

エージェント・ロケーションを設定する前に、CCAインスタンスが実行されていることを確認してください。

コード・テンプレート・マッピングのマッピングの作成

コード・テンプレート・マッピング・モジュールのマッピングを作成する手順は、次のとおりです。

  1. テンプレート・マッピング・モジュールを右クリックして、新規マッピングをクリックします。

  2. 「マッピングの作成」ダイアログ・ボックスで、マッピングの名前を入力します。

新しく作成したマッピングがテンプレート・マッピング・モジュールで使用できます。

マッピングのコード・テンプレートの使用

コード・テンプレート・マッピングのマッピングでは、論理ビューと実行ビューの2つの異なるビューを使用できます。

論理ビューでは、マッピングの様々なコンポーネントを挿入できます。これには、ソースおよびターゲット演算子(表)と変換演算子が含まれます。また、ターゲットにロードする前にデータの変換方法を定義する変換演算子とともに、ソースからターゲットへのデータ・フローも定義できます。

実行ビューでは、マッピング内のコンポーネントの実行ユニットを定義する必要があります。実行ユニットは、様々なマッピング演算子を格納するモジュールです。

たとえば、マッピングにDB2ソース表、式演算子およびOracleターゲット表が含まれる場合、図12-1に示されているように、ソース表を実行ユニットDB2_SOURCE_TABLEにバインドし、式およびターゲット表を別の実行ユニットDB2_to_OracleTableにバインドできます。

図12-1 マップの実行ユニット

図12-1の説明が続きます
「図12-1 マップの実行ユニット」の説明

マッピングのコンポーネントを実行ユニットにバインドした後、CTを各実行ユニットに関連付ける必要があります。この例では、DB2ソースからデータをロードするLCT(LCT_SQL_TO_ORACLE)にDB2_SOURCE_TABLEを関連付ける必要があります。DB2_to_OracleTableは、データを取得してOracle表にロードするICT(ICT_ORACLE_INCR_UPD)に関連付ける必要があります。マッピングのコンポーネントを実行ユニットにバインドする方法の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。

特定の変換演算子を含む実行ユニットはLCTおよびICTにバインドできません。LCTおよびICTでサポートされていない演算子の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。

様々なタイプのCTおよびマッピングのCTの作成および使用の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。