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があります。
ロード・コード・テンプレート: ソース・データベースからステージング領域にデータをロードします。
統合コード・テンプレート: ステージング領域からターゲット表に効率的にデータを変換して、特定のデータベースの最適化された固有のSQLを生成します。
コントロール・コード・テンプレート: ソース・コードのエラーを確認します。
チェンジ・データ・キャプチャ・コード・テンプレート: ソース・オブジェクトの変更されたデータを取得します。
Oracleターゲット・コード・テンプレート: CTフレームワーク内でマップをデプロイおよび実行します。マッピングで使用可能な豊富な変換演算子(Match/MergeやName and Addressなど)のセットをサポートしています。
ファンクション・コード・テンプレート: ファンクション、パッケージおよびプロシージャをデプロイします。
CTを使用すると、効率的な方法で特定のタスクを実行するテンプレートを取得できます。たとえば、次に示すように、CTを使用してDB2データベースからデータをロードし、SQL Serverデータベースにデータを移動できます。
ソース表およびターゲット表でマッピングを作成します。
ロードCT(LCT)を使用して、DB2ソース表からデータをロードします。
統合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ターゲット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を使用するには、次の手順を実行します。
「コード・テンプレート・フォルダの作成」の説明に従って、CTを格納するCTフォルダを作成します。
「コード・テンプレートの作成」の説明に従って、CTを作成またはインポートします。
「コード・テンプレートの使用」の説明に従って、「テンプレート・マッピング」ノードの下にマッピングを作成し、マップ内に実行ユニットを定義して、CTをそれらの実行ユニットに関連付けます。
Oracle Warehouse Builder内にCTを格納するためのコンテナが必要です。これはCTフォルダと呼ばれます。
CTフォルダを作成する手順は、次のとおりです。
プロジェクト・ナビゲータで、「コード・テンプレート」を右クリックし、「新規コード・テンプレート・フォルダ」をクリックして「コード・テンプレート・フォルダの作成」ダイアログ・ボックスを開きます。
新しいフォルダ名を指定して「OK」をクリックします。
新しく作成したCTフォルダをプロジェクト・ナビゲータで使用できます。また、新しく作成したフォルダの下にすべての使用可能なタイプのCTを表示できます。
CTフォルダの下に使用可能なタイプのCTを作成できます。ロード、統合、チェンジ・データ・キャプチャなどのタイプのCTには、Oracle Data Integratorから既存のCTをインポートするか、新しいCTを作成できます。OracleターゲットCTおよびファンクションCTには、新しいCTを作成する必要があります。いずれのタイプのCTの場合でも、作成手順はLCTと同じです。
新しいLCTを作成する手順は、次のとおりです。
「ロード」を右クリックし、「新規CTのロード」をクリックします。
「ロード・コード・テンプレートの作成」ダイアログ・ボックスが表示されます。
CTの名前およびオプションの説明を入力して、「OK」をクリックします。
新しく作成したCTが「ロード」の下に表示されます。
これで、開始と終了タスク間のタスクを指定できます。
関連項目: コード・テンプレートの作成の詳細は、Oracle Data Integratorドキュメント・セットのナレッジ・モジュールに関する項を参照してください。 |
CTをインポートする手順は、次のとおりです。
CTをインポートするコード・テンプレート・フォルダを選択します。
「ファイル」、「インポート」、「コード・テンプレート」の順に選択します。
コード・テンプレートのインポート・ウィザードが表示されます。
「次へ」をクリックして、ファイルの選択ページを開きます。
「参照」をクリックして、インポートするCTを含むソース・ディレクトリを選択します。
使用できるCTがファイルの選択ページの「ディレクトリ・ファイル」の下にリストされます。
CTを選択して、「インポートするファイル」リストに移動します。
「次へ」をクリックして、名前コード・テンプレート・ページを開きます。
ここで、CTの新しい名前を指定するか、現在の名前を使用できます。
「次へ」をクリックしてサマリー・ページを開き、「終了」をクリックします。
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
KMオプションの検証: Jythonタスク
作業表の削除: JDBCタスク
作業表の作成: JDBCタスク
ジャーナル化表のロック: JDBCタスク
データのロード: JDBCタスク
作業表の分析: JDBCタスク
ジャーナル化表のクリーンアップ: JDBCタスク
作業表の削除: JDBCタスク
End_Task
CTは、コード・テンプレート・マッピングで使用されます。CTを使用する手順は、次のとおりです。
テンプレート・マッピング・モジュールを作成します。
モジュールの下にマップを作成します。
マッピングにCTを使用します。
テンプレート・マッピング・モジュールを作成する手順は、次のとおりです。
プロジェクト・ナビゲータで、「テンプレート・マッピング」を右クリックして、「新規マッピング・モジュール」を選択します。
モジュールの作成ウィザードが表示されます。
名前と説明ページに、名前と説明(オプション)を入力します。
接続詳細ページで、既存のロケーションを選択するか、「編集」をクリックして「エージェントのロケーションの編集」ダイアログ・ボックスを開いてエージェントの接続詳細を入力します。詳細は、「テンプレート・マッピングのエージェントの指定」を参照してください。
サマリー・ページで、入力した情報を確認して「終了」をクリックします。
新しく作成したテンプレート・マッピング・モジュールを「テンプレート・マッピング」ノードで使用できます。
テンプレート・マッピングは、コントロール・センター・エージェントで実行されます。デフォルトで、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インスタンスが実行されていることを確認してください。 |
コード・テンプレート・マッピング・モジュールのマッピングを作成する手順は、次のとおりです。
テンプレート・マッピング・モジュールを右クリックして、新規マッピングをクリックします。
「マッピングの作成」ダイアログ・ボックスで、マッピングの名前を入力します。
新しく作成したマッピングがテンプレート・マッピング・モジュールで使用できます。
コード・テンプレート・マッピングのマッピングでは、論理ビューと実行ビューの2つの異なるビューを使用できます。
論理ビューでは、マッピングの様々なコンポーネントを挿入できます。これには、ソースおよびターゲット演算子(表)と変換演算子が含まれます。また、ターゲットにロードする前にデータの変換方法を定義する変換演算子とともに、ソースからターゲットへのデータ・フローも定義できます。
実行ビューでは、マッピング内のコンポーネントの実行ユニットを定義する必要があります。実行ユニットは、様々なマッピング演算子を格納するモジュールです。
たとえば、マッピングにDB2ソース表、式演算子およびOracleターゲット表が含まれる場合、図12-1に示されているように、ソース表を実行ユニットDB2_SOURCE_TABLE
にバインドし、式およびターゲット表を別の実行ユニットDB2_to_OracleTable
にバインドできます。
マッピングのコンポーネントを実行ユニットにバインドした後、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およびデータ・クオリティ・ガイドを参照してください。