この章では、Oracle Data IntegratorとOracle Business Activity Monitoringの統合について説明します。項目は次のとおりです。
Oracle Data Integratorのドキュメントは、次のOracle Technology Network Webサイトにあります。
http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/1013_support.html
この章では、次のことを前提としています。
Oracleデータベースがインストール済で接続が可能であること。
Oracle BAMがインストール済で実行されていること。
Oracle Data Integratorがインストール済で基本構成(Oracle Data Integratorマスター・リポジトリの作成、リポジトリ接続の構成、作業リポジトリの作成と接続、ソース・トポロジの構成)が終了していること。
Oracle Data Integratorが別のホストにインストールされている場合、Oracle BAMとOracle Data Integratorの統合を処理するには、Java 1.6がOracle Data Integratorホストにインストールされている必要があります。
Oracle Data IntegratorとOracle BAMを併用する場合は、次のことに注意してください。
Oracle Data Integratorインタフェース内では、空白が含まれているフィールド名は引用符で囲む必要があります。
Oracle Data Integratorでは、Oracle BAMのタイプ「参照」、「計算済」、「自動増加整数」および「タイムスタンプ」の読取り専用フィールドにデータを挿入することはできません。 これらのフィールドには、データが自動的に移入されます。
Oracle BAMをステージング領域として使用しないでください(たとえば、(ロード・ナレッジ・モジュールの使用時のように)Oracle BAMがソースとして使用される場合は、このソースをステージング領域として使用しないでください。また、(統合ナレッジ・モジュールの使用時のように)Oracle BAMがターゲットとして使用されている場合は、そのターゲットをステージング領域として使用しないでください)。
Oracle BAMとOracle Data Integratorの統合を設定する方法は、次の2通りあります。
1番目は、インストール・スクリプトを使用する方法です。この方法は通常、Oracle Data IntegratorとOracle BAMが同じシステムまたは同じネットワーク・ファイル・システムにデプロイされている場合に使用します(第34.2.1項「スクリプトを使用した統合ファイルのインストール方法」)。
2番目は、手動ステップを使用して、プロパティを構成し、必要なファイルをOracle Data Integratorディレクトリにコピーする方法です(第34.2.2項「手動による統合ファイルのインストール方法」)。 この方法は通常、Oracle BAMがインストールされているシステムからODI_HOMEドライブをマップできない場合(通常はOracle Data IntegratorとOracle BAMが異なるネットワークまたはファイル・システムにインストールされている場合)に使用します。
Oracle Data IntegratorとOracle BAMを同じシステムまたは同じネットワーク・ファイル・システムにインストールしている場合は、インストール・スクリプトを使用します。
統合ファイルをインストールする手順は、次のとおりです。
Oracle BAMホストで、ORACLE_HOME\bam\configディレクトリに移動し、bam_odi_configuration.propertiesファイルを編集します。
ODI_HOME
このプロパティには、Oracle Data Integratorのホーム・ディレクトリのパスを指定します。
Linuxの場合のデフォルト値は、/scratch/$user/ODI_HOME/oraclediです。
Microsoft Windowsシステムでは、短い8文字の名前規則が使用されます。 また、ディレクトリ・セパレータを表すために二重の円記号(\\)を使用します。 たとえば、C:\Program Files\ODI_HOME\oraclediは、次のようになります。
ODI_HOME = C:\\Progra~1\\ODI_HOME\\oracledi
|
注意: Oracle BAMサーバーとOracle Data Integratorが2つの異なるマシンにデプロイされている場合は、Oracle BAMのシステムにOracle Data Integratorのドライブをマップし、そのマップしたドライブを使用してODI_HOMEのパスを設定し、統合構成スクリプトを正しく使用できるようにします。 ドライブのマッピングができない場合は、第34.2.2項「手動による統合ファイルのインストール方法」を参照してください。 |
WL_SERVER
このプロパティには、Oracle BAMシステム上のOracle WebLogic Serverフォルダ名を指定します。
デフォルト値はwlserver_10.3です。
ORACLE_HOME\bam\binのbam_odi_configuration.sh(またはMicrosoft Windowsホストの場合はbam_odi_configuration.bat)を実行します。
図34-1(例としてOracle XEデータベースを使用)に示すように、スクリプトの要求に従って値を入力します。 スクリプトの実行を完了するには、Oracle Data Integratorマスター・リポジトリおよびOracle Data Integrator作業リポジトリのアカウント資格証明が必要です。
[値]とともに表示されるプロンプトの場合、カッコ内はデフォルト値です。 デフォルトを選択するには[Enter]を押します。 カッコで囲まれたデフォルト値が表示されない場合は、値を入力する必要があります。入力しないとスクリプトが停止します。
スクリプトは、Oracle BAM Webアプリケーションに必要なリソースを作成し、Oracle Data IntegratorにOracle BAMの構成プロパティを設定し、Oracle WebLogic ServerクライアントJavaアーカイブ(JAR)を生成してOracle Data Integratorシステムにデプロイし、必要なファイルをすべて適切なOracle Data Integratorディレクトリにコピーします。
スクリプトの実行後、ODI_HOME/oracledi/lib/config/BAMCommonConfig.xmlファイルを編集し、ADCServerNameとADCServerPortのエントリを、Oracle BAMサーバーを実行しているホスト名とポート番号の値に更新します。
Oracle Data Integratorトポロジ・マネージャおよびデザイナ・アプリケーションを停止して再起動し、BAMCommonConfig.xmlファイルの変更をロードします。
これで、Oracle Data Integratorトポロジ・マネージャでOracle BAMターゲットを作成できます。 手順は、第34.3項「Oracle BAMターゲットの作成」を参照してください。
Oracle Data IntegratorとOracle BAMサーバーが異なるネットワークのマシンにインストールされている場合、またはなんらかの理由で現在の環境でスクリプトを使用できない場合は、次の手順を使用します。
このプロセスには、4つの主要手順があります。
Oracle Data Integrator用の外部データ・ソースの作成
Oracle BAMアーキテクトで外部データ・ソースを作成します。
Oracle BAMアーキテクトを開き、「外部データ・ソース」ページを選択します。

「作成」をクリックし、表34-1および表34-2に示されている値を指定して、2つの外部データ・ソース(ODI_MasterおよびODI_Work)を構成します。
Oracle Data Integrator構成パラメータの設定
ODI_HOME/binにあるodiparams.sh(bat)ファイルのODI_ADDITIONAL_JAVA_OPTIONSおよびODI_ADDITIONAL_CLASSPATHの値を、例34-1および例34-2に示すように変更します。
例34-1 ODI_ADDITIONAL_JAVA_OPTIONSの変更
ODI_ADDITIONAL_JAVA_OPTIONS="-Djava.util.logging.config.file=../lib/bam_odi.logging.properties"
Oracle Data Integratorディレクトリへのファイルのコピー
この手順では、いくつかのJARファイル、ロギング・プロパティおよびナレッジ・モジュールをOracle Data Integratorディレクトリにコピーします。
次のファイルをORACLE_HOME/bam/modules/oracle.bam_11.1.1からODI_HOME/libにコピーします。
oracle-bam-common.jar
oracle-bam-etl.jar
oracle-bam-adc-ejb.jar
次のファイルをORACLE_HOME/bam/modules/oracle.bam.thirdparty_11.1.1からODI_HOME/libにコピーします。
commons-codec-1.3.jar
xstream-1.1.3.jar
次のファイルをORACLE_HOME/modules/oracle.odl_11.1.1からODI_HOME/libにコピーします。
ojdl.jar
次のファイルをORACLE_HOME/modules/oracle.jps_11.1.1からODI_HOME/libにコピーします。
jps-api.jar
次のファイルをORACLE_HOME/modules/oracle.dms_11.1.1からODI_HOME/libにコピーします。
dms.jar
次のファイルをORACLE_HOME/modulesからODI_HOME/libにコピーします。
org.jaxen_1.1.1.jar
次のファイルをORACLE_HOME/bam/config to ODI_HOME/libにコピーします。
bam.odi.logging.properties
次のファイルをORACLE_HOME/bam/ODI/configからODI_HOME/lib/configにコピーします。
BAMCommonConfig.xml
すべてのXMLファイルをORACLE_HOME/bam/odi/knowledge_modulesからODI_HOME/impexpにコピーします。
Oracle WebLogic ServerクライアントJARの生成
Oracle WebLogic Server JarBuilderツールを使用して、wlfullclient.jarファイルを生成します。 手順は、『Oracle Fusion Middleware Programming Stand-alone Clients for Oracle WebLogic Server』のWebLogic JARBuilderツールの使用に関する項を参照してください。
ODI_HOME/oracledi/lib/weblogicという名前のサブディレクトリを作成します。
wlfullclient.jarをODI_HOME/oracledi/lib/weblogicにコピーします。
BAMCommonConfig.xmlファイルの編集
ODI_HOME/oracledi/lib/config/BAMCommonConfig.xmlファイルを編集し、ADCServerNameとADCServerPortのエントリを、Oracle BAMサーバーを実行しているホスト名とポート番号の値に更新します。
Oracle Data Integratorトポロジ・マネージャおよびデザイナ・アプリケーションを停止して再起動し、BAMCommonConfig.xmlファイルの変更をロードします。
この項では、Oracle Data Integratorトポロジ・マネージャを使用してOracle BAMターゲットを作成する手順を詳細に説明します。
Oracle Data Integratorの使用方法の詳細は、次のOracle Technology Network WebサイトにあるOracle Data Integratorのドキュメントを参照してください。
http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/1013_support.html
Oracle Data IntegratorでOracle BAMターゲットを作成する手順は、次のとおりです。
Oracle Data Integratorトポロジ・マネージャを開きます。
「物理アーキテクチャ」→「テクノロジ」→Oracle BAMの順に移動します。
右クリックしてデータ・サーバーの挿入を選択します。
データ・サーバー定義タブで次の項目を構成します。
名前: Oracle BAMターゲット名。
サーバー(データ・サーバー): 空白のままにします。
ユーザー: Oracle BAM管理者のユーザー名。
パスワード: Oracle BAM管理者のパスワード。
「JDBC」タブで次の項目を構成します。
JDBCドライバ: any_text_will_do。
JDBC URL: instance1:host_name:port_number
host_nameの値は、BAMCommonConfig.xmlファイルのADCServerNameプロパティの値と同じである必要があります。また、port_numberの値は、BAMCommonConfig.xmlファイルのADCServerPortプロパティの値と同じである必要があります。
このダイアログ・ボックスの「テスト」ボタンはOracle BAMとOracle Data Integrator間の統合では機能しないため、使用しないでください。 Oracle BAMモデルのデータ・オブジェクトが正常にリバース・エンジニアリングされた後、接続情報が正しいことを検証できます。
「OK」をクリックします。
物理データ・サーバー・ダイアログ・ボックスで次の項目を構成します。
物理スキーマ定義タブで次のように設定します。
「ローカル・オブジェクト・マスク」を %OBJECTに変更します。
「コンテキスト」タブで次のように設定します。
新しい行を作成します。この行には、Globalという「コンテキスト」名の行が自動的に挿入されます。
この行の「論理スキーマ」の値は最初は「<未定義>」です。 「<未定義>」のテキストを選択して、Oracle BAMの表示名に置換する必要があります。
新しい「論理スキーマ」の名前として、Oracle BAMターゲットの表示名(例: BAM_TARGET)を入力します。 Oracle Data Integratorによって、論理スキーマが自動的に作成されます。
「OK」をクリックします。
ナレッジ・モジュールは、データ統合パターンに必要な一連のコマンドが含まれている汎用コード・テンプレートです。 ナレッジ・モジュールには、Oracle Data Integratorが特定の記憶域テクノロジに対して特定のタスク・セットを実行するために必要なナレッジが含まれています。 特定の記憶域テクノロジに関連するメソッドが定義されており、そのテクノロジに対するプロセスの生成を可能にします。
(ソース・データ・ストアからの)ロード、(ターゲット・データ・ストアへの)統合、チェック、リバース・エンジニアリング、ジャーナル化およびサービスの作成ごとに異なるナレッジ・モジュールがあります。 ナレッジ・モジュールはすべて、実行時にナレッジ・モジュール・インタプリタによって実行されるコードを生成することによって機能します。
Oracle Data Integrator内には、Oracle BAM機能に固有のナレッジ・モジュールのセットがあります。 これらのナレッジ・モジュールは、統合ファイルのインストール時にODI_HOME/oracledi/impexpディレクトリにインストールされます。 これらのOracle BAM固有のナレッジ・モジュールを使用するには、Oracle Data Integratorデザイナ・アプリケーションの適切なプロジェクトにインポートする必要があります。 表34-3で、これらのOracle BAM固有のナレッジ・モジュールについて説明します。
表34-3 Oracle BAMナレッジ・モジュール
| ナレッジ・モジュール | 説明 |
|---|---|
|
CKM Get Oracle BAM Metadata |
統合ナレッジ・モジュール手順の前に内部的に使用されるチェック・ナレッジ・モジュール。 このチェック・ナレッジ・モジュールは、Oracle BAMテクノロジのデフォルト・ナレッジであり、Oracle Data Integratorによって自動的に取得されます。 このチェック・ナレッジ・モジュールでは、同じJavaセッション内のOracle BAM固有の統合ナレッジ・モジュールによって後で使用される2つの配列が作成されます。 このナレッジ・モジュールにオプションはありません。 |
|
IKM SQL to Oracle BAM (delete) |
一致するキー列の値を送信してOracle BAMデータ・オブジェクトから行を削除する場合に使用できる統合ナレッジ・モジュール。 次のオプションがあります。 COMMIT_SIZE BATCH_SIZE DATETIME_PATTERN KEY_CONDITION LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT |
|
IKM SQL to Oracle BAM (insert) |
異種データ・ソースからOracle BAMデータ・オブジェクトに行を挿入する場合に使用できる統合ナレッジ・モジュール。 次のオプションがあります。 BATCH_SIZE COMMIT_SIZE CREATE_TARG_TABLE DATETIME_PATTERN LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT |
|
IKM SQL to Oracle BAM (looksert natural) |
異種データ・ソースからOracle BAMデータ・オブジェクトに行を挿入する場合に使用できる統合ナレッジ・モジュール。 IKM SQL to Oracle BAM (insert)と異なる点は、エントリが存在しない場合に、ディメンション表(参照列が参照しているデータ・オブジェクト)への新規エントリの挿入も行うことです。 ルックサート統合ナレッジ・モジュールでは、参照フィールドに基づいてOracle BAMターゲットへの挿入が行われます。 通常は、スター・スキーマのファクト表のロードに使用されます (スター・スキーマの特徴は、データ・ウェアハウスの主要情報が含まれる1つ以上の大規模なファクト表と、それより小規模のディメンション表(または参照表)がいくつか存在し、各ディメンション表にファクト表内の特定の属性に対するエントリの情報が含まれていることです)。 この統合ナレッジ・モジュールは、パフォーマンスを向上させるために提供されています。 次のオプションがあります。 BATCH_SIZE COMMIT_SIZE DATETIME_PATTERN LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT NON_KEY_MATCHING |
|
IKM SQL to Oracle BAM (looksert surrogate) |
異種データ・ソースからOracle BAMデータ・オブジェクトに行を挿入する場合に使用できる統合ナレッジ・モジュール。 IKM SQL to Oracle BAM (looksert natural)に類似しており、異なる点は、ファクト・データ・オブジェクトとディメンション・オブジェクトの間で、自然キーではなくサロゲート・キーを使用することです。 ルックサート統合ナレッジ・モジュールでは、参照フィールドに基づいてOracle BAMデータ・オブジェクトへの挿入が行われます。 通常は、スター・スキーマのファクト表のロードに使用されます (スター・スキーマの特徴は、データ・ウェアハウスの主要情報が含まれる1つ以上の大規模なファクト表と、それより小規模のディメンション表(または参照表)がいくつか存在し、各ディメンション表にファクト表内の特定の属性に対するエントリの情報が含まれていることです)。 参照フィールドの値が関連ディメンション表に存在しない場合は、値が自動的に挿入されます。 この統合ナレッジ・モジュールは、LKM Get Source MetadataおよびCKM Get Oracle BAM Metadataとともに使用する必要があります。 このナレッジ・モジュールには次のオプションがあります。 BATCH_SIZE COMMIT_SIZE DATETIME_PATTERN LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT NON_KEY_MATCHING |
|
IKM SQL to Oracle BAM (update) |
異種データ・ソースからOracle BAMデータ・オブジェクトの行を更新する場合に使用できる統合ナレッジ・モジュール。 次のオプションがあります。 BATCH_SIZE COMMIT_SIZE DATETIME_PATTERN LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT |
|
IKM SQL to Oracle BAM (upsert) |
異種データ・ソースからOracle BAMデータ・オブジェクトに行をマージ(アップサート)(つまり、一致する行が存在する場合はデータ・オブジェクトを更新し、新しい行の場合はデータ・オブジェクトを挿入)する場合に使用できる統合ナレッジ・モジュール。 次のオプションがあります。 BATCH_SIZE COMMIT_SIZE DATETIME_PATTERN LAST_BAM_TASK LOCALE_COUNTRY LOCALE_LANGUAGE LOCALE_VARIANT 注意: 実行時に、アップサート操作の数は「更新数」フィールドにレポートされます。これは、Oracle Data Integratorオペレータ・ユーザー・インタフェースにアップサート数のフィールドがないためです。 |
|
LKM Get Source Metadata |
ロード・ナレッジ・モジュール。 これは、従来のロード・ナレッジ・モジュールではなく、ソースからステージング領域にデータをロードしません。 かわりに、統合ナレッジ・モジュールIKM SQL to Oracle BAM (looksert surrogate)で必要なメタデータの収集のみを実行します。 IKM ORACLE to BAM (looksert surrogate)は、SQLソースからOracle BAMターゲットに直接ロードするタスクを実行します。 この実行時に、LKM Get Source Metadataで提供されたメタデータを使用します。 このナレッジ・モジュールにオプションはありません。 |
|
LKM Oracle BAM to SQL |
クライアント・アプリケーションでOracle BAMからデータをロードできるようにするロード・ナレッジ・モジュール。 Oracle BAMロード・ナレッジ・モジュールをインタフェースでソースとして使用する場合(たとえば、LKM Oracle BAM to SQL)、ユーザーは、ターゲット内の各マップ・フィールドに対するデフォルトの「実行」ボタンを「ステージング領域」に変更する必要があります。 デフォルトの「ソース」のままにした場合は、エラーが発生します。 Oracle BAMなど、ステージング領域を考慮しないテクノロジでは、トランスフォーメーションを実行しないでください。 次のオプションがあります。 DELETE_TEMPORARY_OBJECTS DROP_PURGE LAST_BAM_TASK |
|
RKM Oracle BAM |
Oracle BAM用のカスタマイズ・リバース・ナレッジ・モジュール。 次のオプションがあります。 GET_COLUMNS GET_FOREIGN_KEYS GET_INDEXES GET_PRIMARY_KEYS LOG_FILE_NAME USE_LOG |
表34-4では、Oracle BAMナレッジ・モジュールで使用されるパラメータについて説明します。
表34-4 Oracle BAMナレッジ・モジュールのパラメータ
| パラメータ | 説明 |
|---|---|
|
BATCH_SIZE |
クライアントからサーバーにバッチとして送信される最大レコード数。 クライアントからサーバーにバッチを送信するために使用されるバッチ・サイズ。 Java仮想マシンのサイズが大きくなり大規模なマシンが使用されるようになると、パフォーマンスを向上させるためにこのパラメータを増加する場合があります。 デフォルト値: 1024 |
|
COMMIT_SIZE |
単一トランザクションの最大レコード数。 デフォルトは0(ゼロ)で、これは1つのトランザクションですべての入力レコードをコミットすることを意味します。 ゼロ以外の正の値は、一度にコミットするレコードの最大数を示します。このオプションでは負の値は無効です。 デフォルト値: 0 |
|
CREATE_TARG_TABLE |
Oracle BAMサーバーにターゲット・データ・オブジェクトを作成する場合は、このオプションを選択します。 |
|
DATETIME_PATTERN |
このオプションおよびロケール仕様(例: LOCALE_LANGUAGE、LOCALE_COUNTRYおよびLOCALE_VARIANT)は、日時のデータ文字列の解析で使用されるJava SimpleDateFormatオブジェクトを作成するために使用します。 SimpleDateFormatの詳細は、第33.2.2項「日時仕様の構成方法」を参照してください。 |
|
DELETE_TEMPORARY_OBJECTS |
統合後に一時オブジェクトを保持する場合は、このオプションを |
|
DROP_PURGE |
作業表の削除のみでなくパージも行う場合は、このオプションを |
|
GET_COLUMNS |
列をリバース・エンジニアリングする場合は、 |
|
GET_FOREIGN_KEYS |
外部キーをリバース・エンジニアリングする場合は、 |
|
GET_INDEXES |
索引をリバース・エンジニアリングする場合は、 |
|
GET_PRIMARY_KEYS |
主キーをリバース・エンジニアリングする場合は、 |
|
KEY_CONDITION |
ターゲットに対してソースの1つ以上の対応する行を一致させる場合は、このオプションを設定します。 次の演算子を使用します。*、=、!=、<、<=、>、>=。 一致する値(つまり、 *演算子をKEY_CONDITIONオプションの値として選択した場合、そのキー・フィールドのマッピング値に関係なく、すべての行がターゲット・データ・ストアから削除されます。 |
|
LAST_BAM_TASK |
Oracle BAM JDBC接続のライフ・サイクルを管理する場合は、このオプションを使用します。 このタスクがワークフロー内の最後のOracle BAMタスクの場合は、JDBC接続をクローズします。それ以外の場合は、接続をオープンしたままにします。 |
|
LOCALE_COUNTRY |
国オプションは有効なISO国コードです。 これらのコードは、ISO-3166で定義されている大文字の2文字のコードです。 Javaロケール・オブジェクトを作成するには、このオプションと |
|
LOCALE_LANGUAGE |
言語オプションは有効なISO言語コードです。 これらのコードは、ISO-639で定義されている小文字の2文字のコードです。 Javaロケール・オブジェクトを作成するには、このオプションと |
|
LOCALE_VARIANT |
変数オプションは、ベンダーまたはブラウザ固有のコードです。 たとえば、Windowsには Javaロケール・オブジェクトを作成するには、このオプションとLOCALE_LANGUAGEおよびLOCALE_COUNTRYを組み合せて使用します。 |
|
LOG_FILE_NAME |
|
|
NON_KEY_MATCHING |
入力のキー以外の列値をディメンション表内のキー以外の列値と比較するかどうかを決定します。
|
|
USE_LOG |
リバース・エンジニアリング・プロセスでログ・ファイルに詳細を記録する場合は、 |
Oracle Data Integrator用のOracle BAM統合ファイルを、適切に移入したプロパティ・ファイルとともにインストールした場合は、Oracle BAMで他の構成を実行する必要はありません。 インストール・プロセス中に作成された2つの外部データ・ソース(EDS)定義には、Oracle BAMサーバーをOracle Data IntegratorのODI_MasterリポジトリとODI_Workリポジトリに接続するための適切な値が移入されます。 これらのOracle Data Integrator固有のEDS定義は削除しないでください。
次の場合は、Oracle Data Integrator EDS定義を更新する必要があります。
Oracle Data Integratorログイン資格証明を変更した場合。Oracle BAMアーキテクトでOracle Data Integrator EDS定義を更新する必要があります。
ODI_MasterリポジトリまたはODI_Workリポジトリを初期インストール後に別のホストに移動した場合。Oracle BAMアーキテクトで対応するEDS定義を更新する必要があります。
Oracle BAMで作成したアラートで、指定した条件を満たす場合にOracle Data Integratorシナリオを起動できます。 詳細は、F.3.9項「Oracle Data Integratorシナリオの実行」を参照してください。