テクニカル・ノート:oracle bam–odi統合 サポー …...(oracle...
TRANSCRIPT
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
1ページ
サポート対象のOracle BAMバージョン:Oracle BAM 12.1.3
サポート対象のODIバージョン:ODI 11gまたは12c
目的:
• このドキュメントでは、Oracle Data Integrator(ODI)からOracle Business Activity Monitoring(Oracle BAM)への統合について説明します。
• ODIから、Oracleをソース・テクノロジーとして、またJMSトピックXMLをターゲット・テクノロジーとして使用します。
• このドキュメントでは、サンプルの表を使用して、ODIとOracle BAMを統合する手順を簡単に説明します。
注:
上記のサンプルの作成には、以下のバージョンを使用しました。
Oracle Data Integrator 11g(11.1.1)Build ODI_11.1.1.6.0_GENERIC_111219.1055
これより後のバージョンのODIを使用する場合は、"インタフェース"が"マッピング"に置き換えられるため、"マッピング"を作成するようにしてください。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
2ページ
1. 目次
1. 目次 .......................................................................................................................................................... 2
2. 摘要 .......................................................................................................................................................... 3
3. JMS用ターゲット・データ・ストアの作成 ...................................................................................... 5
3.1 物理アーキテクチャの作成 ................................................................................................... 5
3.2 論理アーキテクチャの作成 ................................................................................................ 10
3.3 モデルの作成 ........................................................................................................................ 11
4. Oracle用ソース・データ・ストアの作成 ....................................................................................... 15
4.1 物理アーキテクチャの作成 ................................................................................................ 15
4.2 論理アーキテクチャの作成 ................................................................................................ 19
4.3 モデルの作成 ........................................................................................................................ 20
5. プロジェクトの作成 ........................................................................................................................... 22
5.1 新規プロジェクトの作成 .................................................................................................... 22
5.2 ナレッジ・モジュールのインポート ............................................................................... 22
5.3 1メッセージで1行 ............................................................................................................... 23
5.4 1メッセージで複数行(バッチ) ..................................................................................... 31
6. CDC ........................................................................................................................................................ 45
6.1 IKMのカスタマイズ ............................................................................................................. 45
6.2 CDC用ソース・データ・ストアの変更 ............................................................................ 46
6.3 CDCをセットアップするためのパッケージの作成 ....................................................... 49
6.4 変更を反映するための統合フローの作成 ....................................................................... 51
6.5 インタフェースを使用するCDC用パッケージの構成 ................................................... 57
7. BEAMの構成 ......................................................................................................................................... 62
7.1 データ・オブジェクトの作成 ............................................................................................ 62
7.2 BEAMでのEMSの構成 ......................................................................................................... 63
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
3ページ
2. 摘要
ODIからBEAMへの統合:
ODIから、Oracleをソース・テクノロジーとして、またJMSトピックXMLをターゲット・テクノロジーとして使用します。ソース・データ・ストアであるOracle DBからサンプルの表DEPARTMENTとEMPLOYEEを使用します。
サンプル表の作成方法:
JMSメッセージである上記の表に対応するXMLスキーマを準備する必要があります。Table1はDEPARTMENTを、Table2はEMPLOYEEを表します。
ODI_DEMO.xsd:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" targetNamespace="http://xmlns.oracle.com/bam" xmlns:tns="http://xmlns.oracle.com/bam" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name='Root'> <xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Table1" type="tns:Table1" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Table2" type="tns:Table2" minOccurs="0" maxOccurs="unbounded" /> </xs:choice>
</xs:complexType> </xs:element> <xs:complexType name='Table1'>
<xs:sequence> <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="DNAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence> <xs:attributeGroup ref="attributeGroup"/>
</xs:complexType> <xs:complexType name='Table2'>
<xs:sequence> <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="NAME" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="ADDRESS" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="DEPTID" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence> <xs:attributeGroup ref="attributeGroup"/>
Create Table DEPARTMENT(deptid varchar2(30),dname varchar2(30),PRIMARY KEY (deptid)); Create Table EMPLOYEE(id varchar2(30),name varchar2(30),address varchar2(30),deptid varchar2(30), PRIMARY KEY (id), Foreign Key (deptid) references DEPARTMENT(deptid) );
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
4ページ
ODIからJMSトピックXMLテクノロジーを使用して、ソース・データ・ストアのDEPARTMENTとEMPLOYEEをBAMに統合します。
前提条件:
1. 対応するターゲット表用にXMLスキーマ定義(ODI_DEMO.xsdなど)を準備します。
2. BEAMサーバーにトピック(例:jms/odiTopic)とコネクション・ファクトリ(例:jms/odiFactory)を作成します。
3. ODIリポジトリを作成します。
ODIリポジトリには、ユーザー名とパスワードを指定して接続します。
</xs:complexType> <xs:simpleType name="OperationNameType">
<xs:restriction base="xs:string"> <xs:enumeration value="INSERT"/> <xs:enumeration value="DELETE"/> <xs:enumeration value="UPDATE"/> <xs:enumeration value="UPSERT"/>
</xs:restriction> </xs:simpleType> <xs:attributeGroup name="attributeGroup">
<xs:attribute name="operationType" type="tns:OperationNameType" use="required" /> <xs:attribute name="dataObjectName" type="xs:string" use="required" /> <xs:attribute name="keys" type="xs:string" />
</xs:attributeGroup>
</xs:schema>
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
5ページ
3. JMS用ターゲット・データ・ストアの作成
3.1 物理アーキテクチャの作成
物理アーキテクチャでは、情報システムのさまざまな要素を定義します。形式が設定されたデータは、テクノロジーによって処理されます。このため、各テクノロジーが1つ以上のデータ型に関連付けられており、Oracle Data Integratorはそれらを使用してデータ処理スクリプトを生成します。
構造化されたデータを格納し、公開する物理コンポーネントは、データ・サーバーと定義されます。データ・サーバーは常に1つのテクノロジーにリンクされます。データ・サーバーには、そのサーバーに添付された物理スキーマで宣言されている特定の技術ロジックに従って情報が格納されます。Oracle Data Integratorで使用されるデータベース・サーバー、JMSメッセージ・ファイル、フラット・ファイル・グループなどのすべてを、データ・サーバーとして宣言する必要があります。また、Oracle Data Integratorで使用されるスキーマ、データベース、JMSトピックなどのすべてを、物理スキーマとして宣言する必要があります。
Topology→Physical Architecture→Technologies→JMS Topic XMLに移動して右クリックし、「New Data Server」を選択します。
1. データ・サーバーの名前を指定します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
6ページ
2. 「JNDI」タブを選択します。
a. JNDI Authentication:リストから認証モードを選択します。
b. JNDI User:JNDIディレクトリに接続するためのユーザー名を入力します (オプション)。
c. Password:このユーザーのパスワードを入力します(オプション)。
d. JNDI Protocol:リストからJNDIプロトコルを選択します(オプション)。
e. JNDI Driver:JNDIプロバイダに接続するための初期コンテキスト・ファクトリJavaクラスの名前を指定します。
f. JNDI URL:
<JMS_RESOURCE>?d=<DTD_FILE>&s=<SCHEMA>&JMS_DESTINATION=<JMS_
DESTI NATION_NAME>
g. JNDI Resource:JMSキュー(またはトピック)のコネクション・ファクトリに対応するJNDIリソースの論理名。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
7ページ
パラメータ 値 説明
D <DTD ファイルの
場所> UNC 形式の DTD ファイルの場所(相対または絶対)。パス名には
スラッシュ"/"を使用し、ファイル・パスにはバックスラッシュ"¥"を使用しないでください。このパラメータは必須です。
re <ルート要素> スキーマのルート表として選択する要素の名前。この値では大/小文
字が区別されます。このパラメータは、WSDL ファイルの特定のメッ
セージ定義をリバース・エンジニアリングする場合や、使用可能な
ルート要素が XSD ファイル内に複数存在する場合に使用できます。
ro true | false true の場合は、XML ファイルが読取り専用モードで開きます。
S <スキーマ名> XML ファイルのロード先となるリレーショナル・スキーマの名前。こ
の値は、このデータ・サーバーに添付されている物理スキーマの設定
値と一致する必要があります。このパラメータは必須です。
cs true | false 大/小文字を区別するモードまたは区別しないモードで、XML ファイル
をロードします。大/小文字を区別しないモードでは、DTD ファイル内
のすべての要素名を区別できることが必要です(たとえば、同じファイ
ルに Abc と abc を含めることはできません)。大/小文字を区別するパ
ラメータは、スキーマの永続パラメータです。スキーマの作成後に変更
することはできません。大/小文字を区別しないモードでXML ファイル
を開く場合、XML ファイルの大/小文字は保持されます。
JMSXML_ROWSEPARATOR
5B23245D 各種XMLコンテンツで行セパレータ(改行)として使用される文
字列の 16 進コード。デフォルト値は 5B23245D で、文字列[#$]に相
当します。
JMS_DESTINATION JNDI キュー名ま
たはトピック名 JMS キューまたはトピックの JNDI 名。このパラメータは必須です。
tna ブール値
(true|false) 非 ASCII 文字を変換します。非 ASCII 文字を保持するには、falseに設定します。デフォルトは true です。このパラメータは必須で
はありません。
JNDI URLのプロパティ表:
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
8ページ
以下のXSDは、ターゲット表/JMSメッセージを表します。
a. JNDI Authentication:Simple
b. JNDI User:weblogic
c. Password:weblogic
d. JNDI Protocol:必須ではありません。
e. JNDI Driver:weblogic.jndi.WLInitialContextFactoryprovider
f. JNDI URL:t3://adc2201821.us.oracle.com:7001?d=D:\schema\ODIDEMO\ODI_DEMO.xsd&s=ODI_ DEMO_TRG&drop_on_disc=true&JMS_DESTINATION=jms.odiTopic.
g. JNDI Resource:JMSキュー(またはトピック)のコネクション・ファクトリに対応するJNDIリソースの論理名、jms/odiFactory
3. 接続をテストします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
9ページ
4. 新しい物理スキーマを作成します。
1.「New Physical Schema」を選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
10ページ
1. JNDI URLで指定したスキーマ「ODI_DEMO_TRG」を選択します。
2. 「Context」タブを選択し、「Logical Schema」を選択します。
注:ここでは、未定義の物理スキーマで論理アーキテクチャを作成し、物理スキーマを論理スキーマにリンクします。
3.2 論理アーキテクチャの作成
論理アーキテクチャは、類似する物理スキーマのグループ(構造は同じだが物理的な場所が異なるデータ・ストアを含んだグループ)を1つの論理スキーマとしてユーザーが識別できるようにします。論理スキーマは、対応する物理スキーマと同様に、テクノロジーに関連付けられます。
コンテキストによって、論理スキーマを物理スキーマに解決できます。特定のコンテキストで、1つの論理スキーマが単一の物理スキーマに解決されます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
11ページ
Topology→Logical Architecture→Technologies→JMS Topic XMLに移動して右クリックします。
1. 「New Logical Schema」を選択します。
2. Logical Schemaで名前を指定します。
3.3 モデルの作成
モデルは、一連のデータ・ストアの記述であり、データ・サーバーに格納されている表データ構造のグループに対応しています。モデルは、トポロジに定義されている論理スキーマに基づいています。この論理スキーマは、特定のコンテキストで物理スキーマにマップされます。物理スキーマのデータ・スキーマには、物理的なデータ構造(データ・ストアとして表される表、ファイル、JMSメッセージ、XMLファイルの要素)が含まれています。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
12ページ
モデルとそのすべてのコンポーネントは、リレーショナル・パラダイム(表、列、キーなど)に基づいています。Oracle Data Integratorのモデルには、データ構造の記述であるメタデータのみが含まれており、実際のデータのコピーは含まれていません。
Designer→Modelsに移動します。
1. 「New Model Folder」を選択します。
2. フォルダの名前を指定します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
13ページ
3. 「New Model」を選択します。
4. モデル情報を入力します。
a. Name:ユーザー・インタフェースで使用されるモデルの名前。
b. Technology:「JMS TOPIC XML」を選択します。
c. Logical Schema:論理スキーマを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
14ページ
5. 「Reverse Engineer」を選択します。
6. Selective Reverse Engineeringに移動し、「Objects to Reverse Engineer」をクリックします。
7. リバース・エンジニアリング後は、選択したデータ・ストアが以下のように表示されます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
15ページ
4. Oracle用ソース・データ・ストアの作成
4.1 物理アーキテクチャの作成
Topology→Physical Architecture→Technologies→Oracleに移動して右クリックし、「New Data Server」を選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
16ページ
1. データ・サーバーの名前を指定します。
2. 「JDBC」タブを選択します。
JDBC Driver:oracle.jdbc.OracleDriver
JDBC URL:jdbc:oracle:thin:@localhost:1521:orcl
3. 接続をテストします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
17ページ
4. 新しい物理スキーマを作成します。
1. 「New Physical Schema」を選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
18ページ
2. スキーマに「DEMOUSER」を選択します。
3. 「Context」タブを選択し、「Logical Schema」を選択します。
注:ここでは、未定義の物理スキーマで論理アーキテクチャを作成し、物理スキーマを論理スキーマにリンクします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
19ページ
4.2 論理アーキテクチャの作成
Topology→Logical Architecture→Technologies→Oracleに移動して右クリックし、
1. 「New Logical Schema」を選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
20ページ
2. Logical Schemaで名前を指定します。
4.3 モデルの作成
Designer→Modelsに移動します。
1. 新しいフォルダを作成し、「New Model」を選択します。
2. モデル情報を入力します。
Name:ユーザー・インタフェースで使用されるモデルの名前。
Technology:「Oracle」を選択します。
Logical Schema:論理スキーマを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
21ページ
3. 「Reverse Engineer」を選択します。
4. Selective Reverse Engineeringに移動し、「Objects to Reverse Engineer」をクリックします。
5. リバース・エンジニアリング後は、選択したデータ・ストアが以下のように表示されます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
22ページ
5. プロジェクトの作成
これでソース(Oracle)とターゲット(JMS)が使用可能になりました。次に、プロジェクト、インタフェース、パッケージを作成します。パッケージには2つの実装例があります。
1. 1メッセージで1行:変数とフィルタを使用します。
2. 1メッセージで複数行(バッチ):一時インタフェースとフィルタを使用します。
5.1 新規プロジェクトの作成
DesignerナビゲータのProjectsのツールバーで、「New Project」をクリックします。プロジェクトの名前を入力します。
5.2 ナレッジ・モジュールのインポート
1. DesignerでGlobal Objectsに移動し、「Import Knowledge Modules」を選択します。
2. IKM SQL to JMS XML Appendをインポートします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
23ページ
5.3 1メッセージで1行
5.3.1 インタフェースの作成
1. フォルダを作成し、インタフェースDEPARTMENT_INを作成します。
2. Mappingsタブに移動し、DEPARTMENT表をODI_DEMO_SRCモデルからターゲットにドラッグ・アンド・ドロップし、DEPARTMENT表をOracleからソースにドラッグ・アンド・ドロップします。同じ名前の列が自動的にマップされ、その他の列はソースからターゲットにドラッグ・アンド・ドロップできます。
ROOTFK、OPERATIONTYPE、KEYS、DATAOBJECTNAMEに、0、'INSERT'、'ID'、'DEPARTMENT'をそれぞれ割り当てます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
24ページ
2. OPERATIONTYPEに‘INSERT’を割り当てます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
25ページ
3. Overviewタブに移動して、「Staging area different from Target」チェック・ボックスを選択し、ドロップダウンからOracleソースを選択します。
4. Flowタブに移動してターゲットを選択すると、Property Inspectorが表示されます。
IKM(「IKM SQL to JMS XML APPEND」)を選択します。
オプション:SYNCHRO_XM_TO_JMSをtrueに設定します。
INITIALIZE_XML_SCHEMAをtrueに設定します。
ROOT_TABLEをROOTに設定します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
26ページ
5. インタフェースEMPLOYEE_INを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
27ページ
6. フォルダODI_TO_BEAMを作成し、パッケージSINGLE_ROW_PER_MESSAGEを作成します。
次に、1つのJMSメッセージで1行を配信するパッケージを実装します。以下の手順を実行します。
1. 必要な変数を作成します。
2. フィルタを使用してインタフェースを更新します。
3. 変数とフィルタを使用してパッケージ・フローを作成します。
5.3.2 変数の作成
1. 変数countを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
28ページ
2. 変数deptidを作成します。
Refreshingタブに移動し、以下の問合せを入力します。
SELECT DEPTID FROM (SELECT DEPTID, ROWNUM RN FROM DEPARTMENT) WHERE
RN=#ODI_TO_BEAMPROJECT.count
3. 変数total_departmentsを作成します。
Refreshingタブに移動し、以下の問合せを入力します。
select count(*) from DEPARTMENT
4. 変数empidを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
29ページ
5. 変数total_employeesを作成します。
インタフェースにフィルタを定義します。
フィルタを使用してインタフェースを更新します。ソースのDEPTIDを空白の領域にドラッグすると、以下のようにフィルタが表示されます。上記で作成した変数を使用して式を更新します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
30ページ
ソースのIDを空白の領域にドラッグすると、以下のようにフィルタが表示されます。上記で作成した変数を使用して式を更新します。
5.3.3 変数とインタフェースを使用するパッケージ・フローの作成
1. countに値1を割り当てます。
2. total_departmentsをリフレッシュします。
3. IDを取得するdeptidをリフレッシュします。
4. インタフェースを追加します。
5. countを1つ上げます。
6. count <= total_departmentsの場合は、手順3を繰り返します。
7. total_employeesをリフレッシュします。
8. countに値1を割り当てます。
9. IDを取得するempidをリフレッシュします。
10. インタフェースを追加します。
11. countを1つ上げます。
12. count <= total_employeesの場合は、手順9を繰り返します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
31ページ
13. パッケージを実行します。 をクリックしてパッケージを実行し、OperatorタブのSession Listで結果を確認します。
5.4 1メッセージで複数行(バッチ)
次に、1つのJMSメッセージで規定数の行を配信するパッケージを実装します。以下の手順を実行します。
1. 必要な変数を作成します。
2. rownumを使用して一時インタフェースを作成します。
3. 一時インタフェースを保持するインタフェースを作成し、rownumにフィルタを追加します。
4. 変数とインタフェースを使用してパッケージ・フローを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
32ページ
プロジェクトODI_DEMOとパッケージINITIAL_END_TO_ENDを作成します。
5.4.1 変数の作成
1. 変数minを作成します。
2. 変数maxを作成します。
3. 変数total_departmentsを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
33ページ
4. 変数total_employeesを作成します。
5.4.2 インタフェースの作成
DEPARTMENTインタフェース:
1. DEPARTMENTに一時インタフェースを作成します。
名前:DEMO_TMP_DEPT
スキーマ:ソースを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
34ページ
2. Mappingsタブに移動し、「DEPARTMENT」をソースにドラッグし、ソースの列をすべて選択してターゲットにドロップします。
3. ターゲット・データ・ストアを選択して右クリックし、「Add Column」をクリックします。
4. 新しい列を選択して名前とデータ型を設定し、値ROWNUMを割り当てます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
35ページ
5. ターゲット・データ・ストアを選択し、名前DEMO_TMP_ DEPT_TRGを設定します。
6. Flowタブに移動し、IKMを選択します。
7. インタフェースDEMO_DEPTを作成します。
8. Mappingsタブに移動し、一時インタフェース「DEMO_TEMP_DEPT」をソースにドラッグします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
36ページ
9. ターゲットでROOTFK、OPERATIONTYPE、KEYS、DATAOBJECTNAMEを選択し、それぞれに0、'INSERT'、'ID'、'DEPARTMENT'を割り当てます。
10. ROWNUMにフィルタを作成し、式を次のように更新します。DEMO_TMP_DEPT_TRG.RNUM > 0 and DEMO_TMP_DEPT_TRG.RNUM between #min and #max
11. ソースからTEMP_DEPARTMENTを選択し、「Use Temp Interface as Derived Table」チェック・ボックスを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
37ページ
12. Flow タ ブ に 移 動 し 、 IKM を 選 択 し ま す 。 さ ら に 、 SYNCHRO_XML_TO_JMS とINITIALIZE_XML_SCHEMAをtrueに設定し、ROOT_TABLEをROOTに設定します。
EMPLOYEEインタフェース:
1. EMPLOYEEに一時インタフェースを作成します。
名前:DEMO_TMP_EMP
2. Mappingsタブに移動し、「EMPLOYEE」をソースにドラッグし、ソースの列をすべて選択してターゲットにドロップします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
38ページ
3. ターゲット・データ・ストアを選択して右クリックし、「Add Column」をクリックします。
4. ターゲット・データ・ストアを選択し、名前DEMO_TMP_ DEPT_TRGを設定します。
5. 新しい列を選択して名前とデータ型を設定し、値ROWNUMを割り当てます。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
39ページ
6. Flowタブに移動し、IKMを選択します。
7. インタフェースDEMP_EMPを作成します。
8. Mappingsタブに移動し、「DEMO_TMP_EMP」をソースにドラッグします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
40ページ
9. ターゲットでROOTFK、OPERATIONTYPE、DATAOBJECTNAME、KEYSを選択し、それぞれに0、'INSERT'、'EMPLOYEE'、'ID'を割り当てます。
10. ROWNUMにフィルタを作成し、式を次のように更新します。DEMO_TMP_EMP_TRG.RNUM > 0 and DEMO_TMP_EMP_TRG.RNUM between #min and #max
11. ソースからTEMP_EMPLOYEEを選択し、「Use Temp Interface as Derived Table」チェック・ボックスを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
41ページ
12. Flow タ ブ に 移 動 し 、 IKM を 選 択 し ま す 。 さ ら に 、 SYNCHRO_XML_TO_JMS とINITIALIZE_XML_SCHEMAをtrueに設定し、ROOT_TABLEをROOTに設定します。
5.4.3 定義した変数とインタフェースを使用するパッケージ・フローの作成
1. total_departmentsをリフレッシュします。
2. minに値1を割り当てます。
3. maxに値5(バッチ・サイズ)を割り当てます。
4. インタフェースDEMO_DEPTを追加します。
5. minを5(バッチ・サイズ)だけ増やします。
6. maxを5(バッチ・サイズ)だけ増やします。
7. max <= total_departmentsの場合は、手順4を繰り返します。
8. min <= total_departmentsの場合は、maxに#total_departmentsを割り当て、手順4を繰り返します。
9. total_employeesをリフレッシュします。
10. minに値1を割り当てます。
11. maxに値5(バッチ・サイズ)を割り当てます。
12. インタフェースDEMO_EMPを追加します。
13. minを5(バッチ・サイズ)だけ増やします。
14. maxを5(バッチ・サイズ)だけ増やします。
15. max <= total_employeesの場合は手順4を繰り返します。
16. min <= total_employeesの場合は、maxに#total_employeesを割り当て、手順4を繰り返します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
42ページ
パッケージを実行します。 をクリックしてパッケージを実行します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
43ページ
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
44ページ
Operatorタブに、以下のような実行結果が表示されます。
詳しくは、以下のリンク先のODIドキュメントを参照してください。
http://docs.oracle.com/cd/E23943_01/integrate.1111/e12644/jms_xml.htm#CIHDCIFC
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
45ページ
6. CDC
6.1 IKMのカスタマイズ
IKMをコピーし、削除の情報をターゲット・データソースに通知するようにカスタマイズします。Global ObjectsからGlobal Knowledge Modules→Integration KMに移動し、「IKM SQL to JMS XML Append」をクリックします。
Detailsタブに移動し、「Insert into XML」を選択します。
ソースでコードを変更します。
where句から以下のコードを削除し、このIKMを対応するすべてのインタフェースで使用します。
<% if (odiRef.getDataSet(i, "HAS_JRN").equals("1")) { %>
JRN_FLAG <> 'D'
<%} else {%>
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
46ページ
6.2 CDC用ソース・データ・ストアの変更
ソースにOracle(ODI_DEMO_SRC)、ターゲットにJMS(ODI_DEMO_TRG)を設定しました。
6.2.1 モデルの更新
Designerナビゲータで、Modelsアコーディオンのラベルをクリックして開きます。
6.2.2 「ODI_DEMO_SRC」モデルを右クリックし、「Changed Data Capture」→「Add to CDC」
を選択します。「Yes」をクリックしてすべての表をCDCに追加します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
47ページ
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
48ページ
6.2.3 Oracle CDCソース・モデルをダブルクリックします。このモデル用にエディタが開きます。
6.2.4 Journalizingタブに移動します。
「Consistent Set」ジャーナル化モードを選択し、「OK」をクリックしてポップアップ・ウィンドウを閉じ、JKM Oracle Consistentナレッジ・モジュールを閉じます。
6.2.5 Journalized Tablesタブに移動して表を選択します。CDCから除外したい表がある場合は、
「Remove from CDC」ボタンをクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
49ページ
6.2.6 「Reorganize」ボタンをクリックして、表を外部キーの順に並べます。
すべての確認ダイアログで「Yes」をクリックします。データ・ストアが自動的に以下のように編成されます。
6.2.7 ツールバーでSave「 」をクリックしてモデルを保存します。
6.3 CDCをセットアップするためのパッケージの作成
6.3.1 特定のコンテキストでCDCインフラストラクチャをセットアップするパッケージを作成します。
Designerナビゲータで「Projects」アコーディオンをクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
50ページ
6.3.2 CDCプロジェクトを開き、First Folderフォルダを開きます。「Packages」を選択し、CDC SETUP
という名前で新規パッケージを作成します。
6.3.3 Diagramタブに移動します。DesignerのModelsツリー・ビューから、ODI_DEMO_SRCデータ・
モデルをダイアグラムにドラッグ・アンド・ドロップします。データ・モデルと同じ名前の新
しいステップがダイアグラムに表示されます。
6.3.4 このステップをクリックします。Propertiesパネルで、
• Typeドロップダウン・リストから「Journalizing Model」を選択します。
• 「Start」および「Add Subscribers」チェック・ボックスを選択します。
• SubscribersフィールドにCONSUMER1と入力し、「Add」をクリックします。
• SubscribersフィールドにCONSUMER2と入力し、「Add」をクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
51ページ
6.3.5 ツールバーのSave「 」をクリックしてパッケージを保存します。
6.3.6 ツールバーのExecute「 」ボタンをクリックします。
6.3.7 Session Startedウィンドウが表示されたら「OK」をクリックします。
6.3.8 Operatorナビゲータを開きます。Operatorで、「Session List」タブを選択し、「All Executions」ノードを開きます。
6.3.9 最後のセッションが正しく実行されたことを確認します。CDCプロセスをアクティブ化したステップとタスクを確認できます。
6.4 変更を反映するための統合フローの作成
ここでは、CDCを使用して取得された変更を反映する統合フローを作成します。
1. Designerナビゲータで、「Projects」アコーディオンを開きます。
2. 「ODI_DEMO_CDC」プロジェクトを開き、「First Folder」を開いてインタフェースを作成します。
1. インタフェースDEMO_CDC_DEPARTMENTを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
52ページ
2. Mappingsタブに移動し、ODI_DEMO_SRC.DEPARTMENTをソースにドラッグし、JMS.Table1をターゲットにドラッグします。
3. 「ROOTFK」を選択し、その値を0に更新します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
53ページ
4. 「OPERATIONTYPE」を選択し、その値を以下のコードに更新します。
Case
when JRN_FLAG='I' then 'UPSERT' when JRN_FLAG='D' then 'DELETE' else
'INSERT'
End
KEYSとDATAOBJECTNAMEに、'ID'と'DEPARTMENT'をそれぞれ割り当てます。
5. ソースから「DEPARTMENT」を選択し、プロパティに移動して「Journalized Data Only」チェック・ボックスを選択します。
6. フィルタを選択し、適切なサブスクライバで更新します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
54ページ
7. Flowタブに移動してターゲットを選択し、IKMプロパティを更新します。
SYNCHRO_XM_TO_JMSをfalseに設定し(このデータソースで別途JMSメッセージを送信する場合はtrueに設
定します)、INITIALIZE_XML_SCHEMAをtrueに設定します。
ROOT_TABLEをROOTに設定します。
3. Employee用のインタフェースを作成します。
1. DEMO_CDC_EMPLOYEEという名前でインタフェースを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
55ページ
2. Mappingsタブに移動し、ODI_DEMO_SRC.EMPLOYEEをソースにドラッグし、JMS.Table2をターゲットにドラッグします。
3. 「ROOTFK」を選択し、その値を0に更新します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
56ページ
4. 「OPERATIONTYPE」を選択し、その値を以下のコードに更新します。
Case
when JRN_FLAG='I' then 'UPSERT' when JRN_FLAG='D' then 'DELETE' else
'INSERT'
End
KEYSとDATAOBJECTNAMEに、'ID'と'EMPLOYEE'をそれぞれ割り当てます。
5. ソースから「EMPLOYEE」を選択し、プロパティに移動して「Journalized Data Only」チェック・ボックスを選択します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
57ページ
6. フィルタを選択し、適切なサブスクライバで更新します。
7. Flowタブに移動してターゲットを選択し、IKMプロパティを更新します。
SYNCHRO_XM_TO_JMSをtrueに、
INITIALIZE_XML_SCHEMAをfalseに、
ROOT_TABLEをROOTにそれぞれ設定します。
6.5 インタフェースを使用するCDC用パッケージの構成
「CDC」プロジェクトを開き、「First Folder」フォルダを開きます。「Packages」ノードを選択して右クリックし、「New Package」を選択します。
1. 次のパッケージ名を入力します:CDC_DEMO_WAITFORDATA
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
58ページ
1. Diagramタブに移動し、Toolboxで「ODIWaitForLogData」を選択します。このステップによって、データソースで規定数の変更が行われるまで待機できます。Global Row Countは5に設定しています。
2. DesignerのModelsツリー・ビューから、ODI_DEMO_SRCデータ・モデルをダイアグラムにドラッグ・アンド・ドロップします。データ・モデルと同じ名前の新しいステップがダイアグラムに表示されます。
Typeドロップダウン・リストから「Journalizing Model」を選択します。
「Extend Window」および「Lock Subscribers」チェック・ボックスを選択します。SubscribersフィールドにCONSUMER1と入力し、「Add」をクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
59ページ
3. DesignerのProjectsツリー・ビューから、DEMO_CDC_DEPARTMENTインタフェースとDEMO_CDC_EMPLOYEEインタフェースをドラッグ・アンド・ドロップします。
4. DesignerのModelsツリー・ビューから、Oracle CDC Sourceデータ・モデルをダイアグラムにドラッグ・アンド・ドロップします。データ・モデルと同じ名前の新しいステップがダイアグラムに表示されます。
このステップをクリックします。Propertiesパネルで、
• Typeドロップダウン・リストから「Journalizing Model」を選択します。
• 「Purge Journal」および「Unlock Subscribers」チェック・ボックスを選択します。
• SubscribersフィールドにCONSUMER1と入力し、「Add」をクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
60ページ
5. パッケージのステップを緑の矢印で相互にリンクします。
6. ツールバーのSave「 」をクリックしてパッケージを保存します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
61ページ
7. ツールバーでExecute「 」ボタンをクリックします。
8. Session Startedウィンドウが表示されたら「OK」をクリックします。
9. Operatorナビゲータを開きます。Operatorで、「Session List」タブを選択し、「All Executions」ノードを開きます。
10. 最後のセッションが正しく実行されたことを確認します。CDCプロセスをアクティブ化したステップとタスクを確認できます。
詳しくは、以下のリンク先のODIドキュメントを参照してください。
http://docs.oracle.com/cd/E14571_01/integrate.1111/e12643/data_capture.htm
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
62ページ
7. BEAMの構成
7.1 データ・オブジェクトの作成
ソース表に対応するデータ・オブジェクトの作成
以下の列を含むDEPARTMENTデータ・オブジェクトを作成します。
以下の列を含むEMPLOYEEデータ・オブジェクトを作成します。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
63ページ
7.2 BEAMでのEMSの構成
1. BEAMのホーム・ページでAdministratorタブに移動し、「Enterprise Message Sources」をクリックします。
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
64ページ
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
65ページ
2. 以下のオプションを選択して保存します。
Connection Information:
Outbound Connection JNDI:eis/wls/Topic
Topic/Queue name:jms/odiTopic
Message Configuration:
Error Handling:「Log faulted messages」と「Include payloads」を選択します。
XML Message Formatting:
Message Element Name:Message
Batch Messages:チェック・ボックスを選択します。
Batch Element Name:Root
Batch Element Namespace:http://xmlns.oracle.com/bam
テクニカル・ノート:Oracle BAM–ODI統合
TechNote_ODI_BAM_Integration.doc
2014年5月12日(バージョン12.1.3)
ドキュメント・バージョン(1)
Oracle confidential, All rights reserved
66ページ
XSL Formatting:「Use pre-processing」を選択し、ポップアップで以下のコードを追加します。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xs="http://xmlns.oracle.com/bam">
<!-- Copy all nodes that we dont want to handle specificly -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xs:Root/*">
<xsl:element name="Message">
<xsl:attribute name="operationType"><xsl:value-of select="@operationType" /></xsl:attribute>
<xsl:attribute name="keys"><xsl:value-of select="@keys"/></xsl:attribute>
<xsl:attribute name="dataObjectName"><xsl:value-of select="@dataObjectName"/></xsl:attribute>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
</xsl:stylesheet>