Oracle® Fusion Middleware

Oracle Data Integratorでの統合プロジェクトの開発

12c (12.1.3.0.1)

E59390-02(原本部品番号:E51087-02)

2015年3月

Oracle Fusion Middleware Oracle Data Integratorでの統合プロジェクトの開発, 12c (12.1.3.0.1)

E59390-02

Copyright © 2010, 2015, Oracle and/or its affiliates.All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

Oracle Data Integratorの新機能

第I部 Oracle Data Integratorでの開発の概要

1 統合プロジェクトの概要

- Oracle Data Integratorプロジェクト・クイック・スタート・リスト

2 Oracle Data Integratorトポロジの概要

- Oracle Data Integratorトポロジの概要

- 物理アーキテクチャ

- コンテキスト

- 論理アーキテクチャ

- エージェント

- 言語

- リポジトリ

第II部 メタデータの管理およびリバースエンジニアリング

3 データ・モデルおよびデータストアの作成および使用

- モデルの概要

- データストア

- データ整合性

- リバースエンジニアリング

- チェンジ・データ・キャプチャ

- モデルの作成およびリバースエンジニアリング

- モデルの作成

- モデルおよびトポロジ・オブジェクトの作成

- モデルのリバースエンジニアリング

- データストアの作成およびリバースエンジニアリング

- データストアの作成

- ファイル・データストアのリバースエンジニアリング

- 固定ファイルのリバースエンジニアリング

- デリミタ付きファイルのリバースエンジニアリング

- COBOLファイルのリバースエンジニアリング

- データストア属性の追加および削除

- 制約とフィルタの作成および削除

- キー

- 参照

- 条件

- 必須属性

- フィルタ

- データストアのデータの編集および表示

- パーティション化の使用

- モデル・データストアのパーティションおよびサブパーティションの手動による定義

- モデルのデータ品質のチェック

- データ整合性の概要

- 制約のチェック

- モデル、サブモデルまたはデータストアに対する静的チェックの実行

- エラーのあるレコードの確認

4 ジャーナル化の使用

- チェンジ・データ・キャプチャの概要

- ジャーナル化コンポーネント

- 簡易ジャーナル化と一貫性セット・ジャーナル化

- ジャーナル化の設定

- ジャーナル化の設定および開始

- ジャーナル化インフラストラクチャの詳細

- ジャーナル化ステータス

- 変更データの使用

- 変更データの表示

- 変更データの使用: 簡易ジャーナル化

- 変更データの使用: 一貫性セット・ジャーナル化

- ジャーナル化ツール

- ジャーナル化を使用するためのパッケージ・テンプレート

5 共通フォーマット・デザイナを使用したデータ・モデルの作成

- 共通フォーマット・デザイナの概要

- ダイアグラムの概要

- 他のモデルからデータストアと属性を集約する理由

- グラフィカル・シノニム

- ダイアグラムの使用

- 新規ダイアグラムの作成

- データストアおよび属性の作成

- グラフィカル・シノニムの作成

- 制約およびフィルタの作成および編集

- ダイアグラムの印刷

- DDLスクリプトの生成

- マッピングIN/OUTの生成

第III部 統合プロジェクトの開発

6 統合プロジェクトの作成

- 統合プロジェクトの概要

- Oracle Data Integratorプロジェクトのコンポーネント

- Oracle Data Integratorプロジェクトのコンポーネント

- グローバル・コンポーネント

- プロジェクトのライフ・サイクル

- 新しいプロジェクトの作成

- ナレッジ・モジュールの管理

- プロジェクトおよびグローバル・ナレッジ・モジュール

- ナレッジ・モジュールの命名規則

- 適切なナレッジ・モジュールの選択

- ナレッジ・モジュールのインポートおよび置換

- ナレッジ・モジュールの暗号化および復号化

- フォルダを使用したプロジェクトの編成

7 パッケージの作成および使用

- パッケージの概要

- ステップの概要

- パッケージの作成の概要

- パッケージ・エディタの概要

- 新規パッケージの作成

- ステップの使用

- ステップの追加

- マッピング・ステップの追加

- プロシージャ・ステップの追加

- 変数ステップ

- Oracle Data Integratorツール・ステップの追加

- モデル、サブモデルまたはデータストアの追加

- ステップの削除

- ステップの複製

- ステップの実行

- ステップのリンクされたオブジェクトの編集

- ステップのレイアウトの調整

- ステップの順序の定義

- パッケージの実行

8 マッピングの作成および使用

- マッピングの概要

- マッピングの構成要素

- マッピング・エディタのナビゲート

- マッピングの作成

- 新しいマッピングの作成

- コンポーネントの追加および削除

- コンポーネントの接続および構成

- 属性照合

- コネクタ・ポイントおよびコネクタ・ポート

- 新しい属性の定義

- 式および条件の定義

- 物理構成の定義

- マッピングの実行

- マッピング・コンポーネントの使用

- 式エディタ

- ソースおよびターゲット・データストア

- 複数のターゲットの作成

- ターゲット順序の指定

- 再使用可能マッピングの追加

- 集計の作成

- 個別の作成

- 式の作成

- フィルタの作成

- 結合およびルックアップの作成

- ピボットの作成

- 例: 売上データのピボット

- 行ロケータ

- ピボット・コンポーネントの使用

- セットの作成

- ソートの作成

- 分割の作成

- 副問合せフィルタの作成

- テーブル・ファンクションの作成

- アンピボットの作成

- 例: 売上データのアンピボット

- 行ロケータ

- アンピボット・コンポーネントの使用

- フラット化コンポーネントの作成

- 不規則コンポーネントの作成

- データセットを使用したマッピングの作成

- フローおよびデータセット・モデリングの相違点

- マッピングでのデータセットの作成

- データセットからフローベース・マッピングへの変換

- 物理設計

- 物理マッピング・ダイアグラムについて

- LKM、IKMおよびCKMの選択

- 実行場所の構成

- 物理ノードの移動

- 式の移動

- 新しい実行ユニットの定義

- マッピングの前後に実行されるコマンドの追加

- セッション内並列性の構成

- ターゲット表の並列ロードの構成

- 一時索引の構成

- ジャーナル化の構成

- 抽出オプションの構成

- 物理マッピング設計の作成および管理

- 再使用可能マッピング

- 再使用可能マッピングの作成

- プロパティ・インスペクタおよび構造パネルを使用したマッピングの編集

- コンポーネントの追加および削除

- コンポーネントの追加

- コンポーネントの削除

- コンポーネントの編集

- 表のカスタマイズ

- 共通タスクでのキーボード・ナビゲーションの使用

- フロー制御および静的制御

- フロー制御の設定

- 静的制御の設定

- 更新キーの定義

- E-LTおよびETLスタイル・マッピングの設計

9 互換性モードの使用

- 互換性モードについて

- 互換マッピングの作成

- アップグレード・アシスタントを使用したマッピングの作成

- ODI 12cでの11g SDKを使用したマッピングの作成

- 内部識別子(ID)について

- リポジトリの再番号付け

10 プロシージャ、変数、順序およびユーザー関数の作成および使用

- プロシージャの操作

- プロシージャの概要

- プロシージャの作成

- 新規プロシージャの作成

- プロシージャのオプションの定義

- プロシージャのタスクの作成および管理

- プロシージャの使用

- プロシージャの実行

- パッケージでのプロシージャの使用

- プロシージャのシナリオの生成

- プロシージャの暗号化と復号化

- 変数の操作

- 変数の概要

- 変数の作成

- 変数の使用

- パッケージでの変数の使用

- マッピングでの変数の使用

- オブジェクト・プロパティでの変数の使用

- プロシージャでの変数の使用

- 変数内での変数の使用

- データストアのリソース名での変数の使用

- サーバーURLでの変数の使用

- 接続時または切断時のコマンドでの変数の使用

- シナリオへの変数の受渡し

- 変数のシナリオの生成

- 変数と順序の追跡

- 順序の使用

- 順序の概要

- 順序の作成

- 標準順序の作成

- 特定の順序の作成

- ネイティブ順序の作成

- 順序およびID列の使用

- 標準順序および特定の順序を使用する際のヒント

- ID列

- 順序の拡張

- ユーザー関数の使用

- ユーザー関数の概要

- ユーザー関数の作成

- ユーザー関数の使用

11 シナリオの使用

- シナリオの概要

- シナリオの生成

- シナリオの再生成

- シナリオ・グループの生成

- シナリオおよびロード計画の同時実行の制御

- シナリオのエクスポート

- 本番へのシナリオのインポート

- シナリオのインポート

- シナリオの置換

- 異なるリポジトリからのシナリオの使用

- シナリオの暗号化および復号化

12 シナリオの使用

- ロード計画の概要

- ロード計画実行ライフ・サイクル

- パッケージ、シナリオおよびロード計画の相違点

- ロード計画の構造

- ロード計画エディタの概要

- ロード計画の作成

- 新規ロード計画の作成

- ロード計画ステップの順序の定義

- ロード計画ステップの追加

- ロード計画ステップの編集

- ステップの削除

- ステップの複製

- ロード計画での変数の使用

- ロード計画の変数の宣言

- ステップの変数値の設定

- ロード計画の例外および再開可能の処理

- 例外フローの定義

- 例外処理の使用

- 再開動作の定義

- ロード計画の実行

- 本番でのロード計画の使用

- 本番でのロード計画のスケジュールおよび実行

- ロード計画のエクスポート、インポートおよびバージョニング

- ロード計画のエクスポート

- ロード計画のインポート

- ロード計画のバージョン管理

13 Webサービスの使用

- Oracle Data IntegratorのWebサービスの概要

- Oracle Data Integratorランタイム・サービスおよびデータ・サービス

- サードパーティWebサービスの呼出し

- Webサービスの呼出しの概要

- HTTPアナライザの使用

- HTTPアナライザの使用: 主な手順

- HTTPアナライザの実行時に行われる処理

- HTTPアナライザ設定の指定方法

- ログ・ウィンドウの使用方法

- テスト・ウィンドウの使用方法

- インスタンス・ウィンドウの使用方法

- 複数のインスタンスを使用する方法

- HTTPアナライザでの資格証明の使用

- HTTPアナライザでのSSLの使用

- HTTPアナライザを使用してWebページをデバッグする方法

- ルールを使用して動作を決定する方法

- ルールの設定方法

- リファレンス: HTTPアナライザのトラブルシューティング

- OdiInvokeWebServiceツールの使用

14 ショートカットの使用

- ショートカットの概要

- ショートカットの概念

- ショートカット・オブジェクト

- ショートカット・エディタの概要

- ショートカットの作成

- プロジェクトでのショートカットの使用

- ショートカットによる選択の複製

- 参照ショートカットへのジャンプ

- ベース・オブジェクトへのジャンプ

- ショートカットの実行

- ショートカットのマテリアライズ

- ショートカットのエクスポートおよびインポート

- リリース・タグの使用

- 拡張アクション

15 Groovyスクリプトの使用

- Groovyの概要

- Groovyエディタの概要

- Groovyエディタの使用

- Groovyスクリプトの作成

- 既存のGroovyスクリプトを開いて編集

- Groovyスクリプトの保存

- Groovyスクリプトの実行

- Groovyスクリプトの実行の停止

- 拡張アクションの実行

- 開発タスクの自動化 - 例

第IV部 統合プロジェクトの管理

16 統合プロジェクトの編成およびドキュメント化

- フォルダを使用したプロジェクトの編成

- 新規フォルダの作成

- プロジェクト・フォルダの調整

- フォルダを使用したモデルの編成

- 新規モデル・フォルダの作成

- モデル・フォルダの調整

- サブモデルの作成および編成

- 相互参照の使用

- 相互参照の表示

- 欠落参照の解決

- マーカーおよびメモの使用

- マーカー

- メモ

- 同時変更の処理

- 同時編集のチェック

- オブジェクトのロック

- PDFレポートの作成

- トポロジ・レポートの生成

- バージョン比較結果のレポートの生成

- Oracle Data Integratorオブジェクトのレポートの生成

- ダイアグラム・レポートの生成

17 バージョン・コントロールの使用

- オブジェクト・フラグの使用

- バージョンの使用

- バージョン比較ツールの使用

- 2つのバージョンの差異の表示

- 比較フィルタの使用

- 比較結果レポートの生成および印刷

- ソリューションの使用

- ソリューションにおける要素の使用

- ソリューションの同期化

- ソリューションのリストアとチェック・イン

- ソリューションのインポートとエクスポート

18 エクスポートおよびインポート

- インポートおよびエクスポートの概念

- グローバル識別子(GUID)

- エクスポート・キー

- オブジェクト間の関係

- インポート・モード

- インポート/エクスポートのヒント

- オブジェクトのエクスポートおよびインポート

- 子コンポーネントを伴うオブジェクトのエクスポート

- 子コンポーネントを伴わないオブジェクトのエクスポート

- 部分的なエクスポート/インポート

- 1つのODIオブジェクトのエクスポート

- 複数のODIオブジェクトのエクスポート

- オブジェクトのインポート

- スマート・エクスポートおよびスマート・インポート

- スマート・エクスポートの実行

- スマート・インポートの実行

- リポジトリ・レベルのエクスポート/インポート

- マスター・リポジトリのエクスポートおよびインポート

- トポロジおよびセキュリティ設定のエクスポート/インポート

- 作業リポジトリのエクスポートおよびインポート

- 技術環境のエクスポート

- ログのエクスポートおよびインポート

例一覧

- 10-1 リモートSQLデータベースからのデータのロード

- 10-2 複数の電子メールの送信

- 10-3 サーバーの定義のURLでの変数の参照

- 15-1 InputStream

- 15-2 プロジェクトの作成

- 15-3 外部Groovyファイル

- 15-4 外部ファイルからのクラス

- 15-5 Studio UIの自動化

図一覧

- 7-1 サンプル・パッケージ

- 7-2 パッケージ・エディタ

- 8-1 マッピング・エディタ

- 8-2 式エディタの例

- 8-3 複数接続IKMを使用したETLマッピング

- 8-4 LKMと単一接続IKMを使用したETLマッピング

- 10-1 式エディタの拡張: 順序

- 12-1 ロード計画のサンプル

- 12-2 ロード計画エディタの「ステップ」タブ

- 13-1 Webサービスの作用

- 13-2 HTTPアナライザのログ画面

- 13-3 HTTPアナライザのテスト・ウィンドウ

- 13-4 「HTTPアナライザ・インスタンス」ウィンドウ

- 14-1 パッケージ・ショートカットのショートカット・エディタ

- 15-1 Groovyエディタ

表一覧

- 7-1 ステップのタイプ

- 7-2 パッケージ・エディタの各セクション

- 8-1 マッピング・エディタの各セクション

- 8-2 SALES

- 8-3 PIVOTED DATA

- 8-4 QUARTERLY_SALES_DATA

- 8-5 UNPIVOTED DATA

- 8-6 共通タスクでのキーボード・ナビゲーション

- 10-1 リモートSQLデータベースからデータをロードするプロシージャの詳細

- 10-2 複数の電子メールを送信するプロシージャの詳細

- 10-3 マッピングでの変数の使用例

- 10-4 プロシージャでの変数の使用例

- 10-5 別の変数内での変数の使用例

- 10-6 StoresLocation表

- 10-7 SELECT/アクション・コマンド

- 10-8 様々なテクノロジに応じたコードに変換されるユーザー関数(例1)

- 10-9 様々なテクノロジに応じたコードに変換されるユーザー関数(例2)

- 12-1 ロード計画ステップ

- 12-2 「ロード計画」エディタのツールバー

- 12-3 ステップの追加ウィザードのアクション

- 12-4 クイック・ステップ・ツール

- 12-5 再開タイプの値

- 13-1 「Httpアナライザ」ログ・ウィンドウのツールバー・アイコン

- 13-2 「HTTPアナライザ・インスタンス」ウィンドウのツールバー・アイコン

- 16-1 デザイナ・ナビゲータの相互参照

- 16-2 ODIオブジェクトの様々なレポート・タイプ

- 17-1 オブジェクト・フラグ

- 18-1 作業リポジトリおよびマスター・リポジトリでのマッピングの依存関係

- 18-2 オブジェクトのエクスポート・パラメータ

- 18-3 「スマート・エクスポート」ツールバー

- 18-4 インポート時のアクション

- 18-5 問題を修正するために実行可能なアクション

- 18-6 技術環境のエクスポート・パラメータ

はじめに

このマニュアルでは、Oracle Data Integratorを使用したデータ統合プロジェクトの開発方法について説明します。

ここでは、次のトピックについて説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このドキュメントは、Oracle Data Integrator (ODI)を統合プロセスの開発ツールとして使用する開発者および管理者を対象読者としています。このガイドでは、ODIグラフィカル・ユーザー・インタフェース(主にODI StudioおよびODIコンソール)を使用する方法について説明します。開発の一般的なタスクと例およびODIの機能の概念や背景情報を示します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連ドキュメント

詳細は、Oracle Data Integratorライブラリの次のドキュメントを参照してください。

- Oracle Data Integratorリリース・ノート

- Oracle Data Integratorの理解

- Oracle Data Integratorの管理

- Oracle Data Integratorのインストールと構成

- Oracle Data Integratorのアップグレード

- Oracle Data Integratorアプリケーション・アダプタ・ガイド

- 『Oracle Data Integratorでのナレッジ・モジュールの開発』

- Oracle Data Integrator接続およびナレッジ・モジュール・ガイド

- Oracle Warehouse BuilderからOracle Data Integratorへの移行

- Oracle Data Integratorツール・リファレンス

- Oracle Data Integratorデータ・サービスJava APIリファレンス

- Oracle Data Integratorオープン・ツールJava APIリファレンス

- Oracle Data IntegratorのためのSAP ABAP BWアダプタ・スタート・ガイド

- Oracle Data Integrator Java APIリファレンス

- Oracle Data IntegratorのためのSAP ABAP ERPアダプタ・スタート・ガイド

- Oracle Data Integrator 12cオンライン・ヘルプ([F1]を押すか、「ヘルプ」を選択してから、「検索」または「目次」を選択してメイン・メニューからJDeveloperヘルプ・センターを開いて、ODI Studioで入手可能)

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ドキュメントのタイトル、強調またはユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Data Integratorの新機能

この章では、Oracle Data Integrator 12c (12.1.3.0.1)で導入されたOracle Data Integratorドキュメント編成における変更点について説明します。

関連項目:
Oracle Data Integratorの新機能および変更された機能の詳細は、『Oracle Data Integratorの管理』のOracle Data Integratorの新機能に関する項を参照してください。

Oracle Data Integratorに関する情報の編成を改良するために、新たに3つのマニュアルがODIドキュメント・ライブラリに追加されました。

- 『Oracle Data Integratorの理解』: このマニュアルでは、ODIの用語、アーキテクチャ、一般的な統合プロジェクト設計およびODI環境を含む、ODIの概要および概念的な情報を記載しています。

- 『Oracle Data Integratorの管理』: このマニュアルでは、ODIで構成タスクおよびユーザー管理タスクを実行する方法について説明します。これには、ODIコンポーネントの構成、基本的な管理タスクの実行、統合プロセスの実行と監視、およびODIでのセキュリティの管理が含まれます。

- Oracle Data Integratorツール・リファレンス: このガイドでは、ODIでオープン・ツールを使用および開発して統合シナリオを設計する方法について説明します。

Oracle Data Integratorの開発者ガイド12c (12.1.2)に含まれていた、いくつかの章および多くのトピックが、これらの新しいマニュアルに移行されています。以前のバージョンのODI開発者ドキュメントを使い慣れている方は、次の表にODIライブラリ内の他のマニュアルに移行されたトピックの新しい場所が示されていますので、参考にしてください。

トピック

新しい場所

「Oracle Data Integratorの新機能」

Oracle Data Integratorの管理

Oracle Data Integratorの概要

Oracle Data Integratorの理解

「リポジトリの管理」

Oracle Data Integratorの管理

トポロジの設定

Oracle Data Integratorの管理

「エージェントの管理」

Oracle Data Integratorの管理

データ・サービスの作成および使用

Oracle Data Integratorの管理

統合プロセスの実行およびモニタリング

Oracle Data Integratorの管理

「セキュリティ設定の管理」

Oracle Data Integratorの管理

Oracle Data Integrator Toolsリファレンス

Oracle Data Integratorツール・リファレンス

第I部

Oracle Data Integratorでの開発の概要

この部では、Oracle Data Integratorの概要とOracle Data Integratorで統合プロジェクトを作成するための基本的な手順について説明します。

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

- 第1章「統合プロジェクトの概要」

- 第2章「Oracle Data Integratorトポロジの概要」

1 統合プロジェクトの概要

この章では、Oracle Data Integrator (ODI)を使用して統合プロジェクトを作成するための基本的な手順を説明します。ここでは、基本的な機能と最低限必要な手順を示すことで、ODIの使用を開始するユーザーを支援します。

この項は、拡張された構成、使用方法またはトラブルシューティング目的で使用することは意図していません。

Oracle Data Integratorプロジェクト・クイック・スタート・リスト

単純なOracle Data Integrator統合プロジェクトに対する最低限必要な手順を実行するには、ODIプロジェクト・クイックスタート・リストに従って、このガイドの特定の項に直接移動してください。

前提条件

クイック・スタートの手順を実行する前に、Oracle Data Integratorがインストールされていることを確認し、『Oracle Data Integratorのインストールと構成』に記載された手順に従ってODIエージェントを設定および構成します。管理者は、『Oracle Data Integratorの管理』の説明に従ってインストール後の構成およびユーザー管理タスクを実行する必要があります。

また、『Oracle Data Integratorの理解』の内容についてもよく理解しておく必要もあります。

ODIプロジェクト・クイック・スタート・リスト

ODIプロジェクト・クイック・スタート・リストには、単純な統合プロジェクトの作成および実行に必要な手順が示されています。これらの必要な手順について理解した後、より高度なトピック、複雑な統合およびオプションの手順に関する追加の内容をこのガイドで確認してください。

1. Oracle Data Integratorでは、論理トポロジの最上部で開発を実行します。トポロジに関する知識が浅い場合は、第2章「Oracle Data Integratorトポロジの概要」を参照してください。論理スキーマを作成し、グローバル・コンテキストでこれらを物理スキーマと関連付けます。詳細は、『Oracle Data Integratorの管理』の論理スキーマの作成に関する項を参照してください。

2. マッピングでは、物理スキーマに含まれているデータ構造(表、ファイル、JMSメッセージ、XMLファイルの要素)に対応する、ソースおよびターゲット・データストアを含むデータ・モデルが使用されます。データ・モデルは、通常、データ・サーバーのメタデータからOracle Data Integratorリポジトリにリバースエンジニアリングされます。

第3章「データ・モデルおよびデータストアの作成および使用」に従って、1つ以上のモデルおよびデータストアを作成します。

3. 開発した統合コンポーネントはプロジェクトに格納されます。新規プロジェクトの作成の詳細は、第6章「統合プロジェクトの作成」を参照してください。

4. 統合プロジェクトを編成する方法を考慮します。第16章「統合プロジェクトの編成およびドキュメント化」では、編成に役立ついくつかの組込みツールについて説明しています。プロジェクトおよびモデルは階層フォルダ別に編成でき、マーカーおよびメモを使用してオブジェクトを相互参照し、メタデータで注釈付けしたり、ODI以外のユーザーが確認できるようにPDF形式のレポートを生成することができます。

5. バージョン・コントロールは、関連する開発者が複数存在する場合や、プロジェクトを以前の状態に戻せるようファイルのバージョンを保持する場合に、統合プロジェクトに関する作業を行うための強力なツールです。ODIの組込みバージョン・コントロールが開発要件に合っているか確認するには、第17章「バージョン・コントロールの使用」を参照してください。

6. マッピングでは、ナレッジ・モジュールを使用してそれぞれのコードを生成します。詳細は、『Oracle Data Integratorの理解』のE-LTの概要に関する項を参照してください。マッピングを作成するには、事前にデータのテクノロジに対応するナレッジ・モジュールをインポートしておく必要があります。ナレッジ・モジュールをインポートする方法については、「オブジェクトのインポート」を参照してください。インポートする必要があるナレッジ・モジュールについては、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

7. ターゲット・データストアをソース・データストアのデータとともにロードするには、マッピングを作成する必要があります。マッピングは、1つ以上のソース・データストアから1つ以上のターゲット・データストアへのロードを定義するルールのセットで構成されます。統合プロジェクト用の新規マッピングを作成する方法については、「マッピングの作成」を参照してください。

8. マッピングの作成を終了すると、「マッピングの実行」の説明に従ってマッピングを実行できます。「ローカル(エージェントなし)」を選択して、Oracle Data Integratorで直接マッピングを実行します。

9. 統合ワークフローでは、複数のターゲット・データストアを特定の順序でロードする必要がある場合があります。マッピングの順序付けが必要な場合は、パッケージを作成します。このオプションのステップについては、「新規パッケージの作成」を参照してください。

10. ワークフローが複雑であり、多数のソースまたはターゲット・データベースが関連する場合や、特定の論理順序内で複数のマッピング、パッケージ、プロシージャおよび変数の実行を管理する必要がある場合は、ロード計画を使用することを考慮してください。ロード計画を使用すると、順次条件付きステップおよびパラレル条件付きステップの階層内にシナリオを編成して実行できます。ロード計画の詳細は、第12章「ロード計画の使用」を参照してください。

11. 実行結果は、オペレータ・ナビゲータで表示およびモニターできます。オペレータ・ナビゲータを使用したマッピングの実行方法は、『Oracle Data Integratorの管理』の統合プロセスの監視に関する項を参照してください。

12. 統合の開発中、デバッガ機能を使用して、プロジェクト内のバグを特定して取り除くことができます。デバッグ・ツールの詳細は、『Oracle Data Integratorの管理』の統合プロセスのデバッグに関する項を参照してください。

2 Oracle Data Integratorトポロジの概要

この章では、Oracle Data Integratorトポロジの概念およびODI開発者に関連するコンポーネントの概要を示します。

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

- Oracle Data Integratorトポロジの概要

関連項目:
『Oracle Data Integratorの管理』のトポロジの設定に関する項

Oracle Data Integratorトポロジの概要

Oracle Data Integratorトポロジは、Oracle Data Integratorアーキテクチャおよびコンポーネントの物理および論理表現です。

注意:
Oracle Data Integratorインストレーション・ガイドでは、一部の項で、物理サーバー上のサーバー、フォルダおよびファイルの編成を指してトポロジという用語が使用されています。この章では、ODI Studioのトポロジ・ナビゲータを使用して構成されたトポロジを指します。

この項には次のトピックが含まれます:

- 物理アーキテクチャ

- コンテキスト

- 論理アーキテクチャ

- エージェント

- 言語

- リポジトリ

物理アーキテクチャ

物理アーキテクチャでは、情報システムの様々な要素が、Oracle Data Integratorで考慮される特性とともに定義されます。各タイプのデータベース(Oracle、DB2など)、Big Dataソース(Hive、HBase)、ファイル形式(XML、フラット・ファイル)またはアプリケーション・ソフトウェアが、Oracle Data Integratorでテクノロジによって表現されます。

テクノロジは書式設定済データを処理します。したがって、各テクノロジは1つ以上のデータ型と関連付けられており、Oracle Data Integratorによるデータ処理スクリプトの生成が可能です。

構造化データを格納および公開する物理コンポーネントは、データ・サーバーとして定義されています。データ・サーバーは常に単一テクノロジにリンクしています。データ・サーバーには、このデータ・サーバーに関連付けられた物理スキーマに宣言されている特定の技術ロジックに従って情報が格納されます。Oracle Data Integratorで使用されるデータベース・サーバー、JMSメッセージ・ファイル、フラット・ファイルのグループなどはすべて、データ・サーバーとして宣言される必要があります。Oracle Data Integratorで使用されるスキーマ、データベース、JMSトピックなどはすべて、物理スキーマとして宣言される必要があります。

最終的に、物理アーキテクチャには物理エージェントの定義が含められます。これらはOracle Data Integratorジョブを実行するJavaソフトウェア・コンポーネントです。

コンテキスト

コンテキストでは、情報システムの物理アーキテクチャ(実際のアーキテクチャ)のコンポーネントと、Oracle Data Integrator論理アーキテクチャ(ユーザーが作業するアーキテクチャ)のコンポーネントが関連付けられます。

たとえば、コンテキストは、類似した物理リソースが存在する様々な実行環境(開発、テストおよび本番)または様々な実行場所(ボストン・サイト、ニューヨーク・サイトなど)に対応している場合があります。

インストール時には、デフォルトのGLOBALコンテキストが作成される点に注意してください。

論理アーキテクチャ

論理アーキテクチャによって、別々の物理的な場所に置かれているが(構造的には同一である)類似の物理スキーマのグループを単一の論理スキーマとして識別できます。論理スキーマは、その物理スキーマと同様に、テクノロジに関連付けられています。

コンテキストにより、論理スキーマを物理スキーマに解決できます。特定のコンテキストにおいて、単一の論理スキーマが単一の物理スキーマに解決されます。

たとえば、Oracle論理スキーマの会計は、次の2つのOracle物理スキーマに対応する場合があります。

- 開発コンテキストで使用される会計サンプル

- 本番コンテキストで使用される会計企業

これらの2つの物理スキーマは、構造的には同一(会計データが含まれる)ですが、別々の物理的な場所に置かれています。これらの場所は2つの異なるOracleスキーマ(物理スキーマ)であり、2つの異なるOracleインスタンス(データ・サーバー)に置かれている可能性があります。

Oracle Data Integratorで開発されたコンポーネントはすべて、論理アーキテクチャの上に設計されています。たとえば、データ・モデルは常に論理スキーマに関連付けられており、データ・フローはこのモデルとともに定義されています。実行時にコンテキスト(DevelopmentまたはProduction)を指定することにより、モデルの論理スキーマ(Accounting)は単一の物理スキーマ(Accounting SampleまたはAccounting Corporate)に解決され、データ・サーバーでこのスキーマに含まれているデータには統合プロセスによってアクセスできます。

エージェント

Oracle Data Integratorランタイム・エージェントにより、ジョブの実行が編成されます。これらのエージェントはJavaコンポーネントです。

ランタイム・エージェントは、リスナーおよびスケジューラ・エージェントとして機能します。たとえば、ジョブがユーザー・インタフェースまたはコマンド行から手動で開始された場合、エージェントはオンデマンドでジョブを実行します(モデル・リバース、パッケージ、シナリオ、マッピングなど)。また、エージェントは、Oracle Data Integratorで定義されたスケジュールに従ってシナリオの実行を開始する場合にも使用されます。

サード・パーティのスケジューリング・システムによってエージェントでの実行をトリガーすることもできます。詳細は、『Oracle Data Integratorの管理』の外部スケジューラを使用したシナリオまたはロード計画のスケジューリングに関する項を参照してください。

一般的なプロジェクトに必要なのは本番のエージェント1つですが、『Oracle Data Integratorの管理』のエージェントのロード・バランシングに関する項には、ロード・バランシングされた複数のエージェントを設定する方法が記載されています。

ODI Studioでもオンデマンドでジョブを直接実行できます。この内部エージェントを使用して開発および初期テストを行うことができます。ただし、外部エージェントの完全な本番機能を備えているわけではないため、本番データの統合には適していません。ジョブの実行時に、「実行」ダイアログで、「論理エージェント」の「ローカル(エージェントなし)」を選択すると、ODI Studioを使用してジョブを直接実行します。ジョブをローカルで実行する場合、次の機能が利用できないことに注意してください。

- 失効したセッションのクリーンアップ

- 実行中のセッションを停止する機能

- ロード・バランシング

これらのいずれかの機能が必要な場合は、外部エージェントを使用する必要があります。

エージェントのライフサイクル

エージェントのライフサイクルは次のとおりです。

1. エージェントは、開始時にマスター・リポジトリに接続します。

2. エージェントは、マスター・リポジトリに関連付けられた作業リポジトリに接続し、開始時に次のタスクを実行します。

- すべての作業リポジトリで、このエージェントの起動時に実行する必要がある未処理のタスクを実行します。

- 各作業リポジトリ内の失効したセッションを除去します。これらのセッションは、エージェントまたはリポジトリのクラッシュ後に不正に実行状態で残されたセッションです。

- 各作業リポジトリ内のスケジュール済シナリオのリストを取得し、そのスケジュールを計算します。

3. エージェントはポート上でリスニングを開始します。

- エージェントは、実行リクエストを受信すると、このリクエストを確認してセッションを開始します。

- エージェントはスケジュールに従ってセッションを開始します。

- またエージェントは、スケジュールの更新、セッションの停止、pingへの応答または失効したセッションの除去を要求するその他の管理リクエストを処理できます。スタンドアロン・エージェントでも、ライフサイクルを終了する停止シグナルを処理できます。

セッションのライフサイクルの詳細は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

エージェントの機能

エージェントはデータ変換サーバーではありません。エージェントはデータ変換は実行せず、かわりに統合プロセスの編成のみを行います。データベース・サーバー、オペレーティング・システムおよびスクリプト・エンジンにデータ変換を委任します。

エージェントは、マルチスレッドの軽量コンポーネントです。エージェントは複数のセッションを並列して実行できます。物理エージェントを宣言する際には、作業リポジトリからの同時実行が可能になるように、許可される同時セッションの最大数を調整することをお薦めします。この最大数に到達すると、新規着信セッションはエージェントによってキューされ、他のセッションの終了時に後から実行されます。複数のパラレル・セッションを実行する場合は、『Oracle Data Integratorの管理』のエージェントのロード・バランシングに関する項に説明されているように、ロード・バランシング実行を考慮できます。

エージェント・タイプ

Oracle Data Integratorエージェントには、スタンドアロン・エージェント、スタンドアロン・コロケート・エージェントおよびJava EEエージェントの3つのタイプがあります。

エージェント・タイプの詳細は、『Oracle Data Integratorの理解』のランタイム・エージェントに関する項を参照してください。

物理エージェントと論理エージェント

物理エージェントは、単一のスタンドアロン・エージェントまたはJava EEエージェントに対応します。物理エージェントは、トポロジに一意の名前が必要です。

スキーマと同様に、異なる環境で同一の役割を持つ物理エージェントは、同じ論理エージェントにグループ化できます。論理エージェントは、コンテキストによって物理エージェントに関連付けられています。実行の開始時、論理エージェントおよびコンテキストを指定します。Oracle Data Integratorはこの情報を単一の物理エージェントに変換し、物理エージェントが実行リクエストを受信します。

エージェントURL

エージェントはホストおよびポート上で動作し、このポート上でアプリケーション名によって識別されます。また、エージェントURLはエージェント接続に使用するプロトコルを示します。プロトコルに使用できる値は、httpまたはhttpsです。これらの4つのコンポーネントがエージェントURLを構成します。エージェントにはこのURLを使用してアクセスします。

例:

- odi_productionマシンのポート8080で開始したスタンドアロン・エージェントは、次のURLでアクセスできます。
http://odi_production:8080/oraclediagent

注意:
スタンドアロン・エージェントのアプリケーション名は常にoraclediagentであり、変更できません。

- odi_wlsホストにデプロイされたWLSサーバーのポート8000で、oraclediというアプリケーションとして開始されたJava EEエージェントは、次のURLでアクセスできます。
http://odi_wls:8000/oracledi

Apache Oozie

Apache Oozieは、Apache Hadoopジョブの管理に役立つワークフロー・スケジューラです。Hardoop MapReduceジョブを実行するアクションによるワークフロー・ジョブの実行に特化したサーバーベースのワークフロー・エンジンです。詳細は、Oracle Data Integratorによるビッグ・データの統合に関する項を参照してください。

言語

言語は、統合開発中に式を作成および編集する際に使用可能なプログラミング言語とスクリプト言語、および言語要素を定義します。デフォルトでOracle Data Integratorに用意されている言語には、ユーザーの変更は必要ありません。

リポジトリ

トポロジには、Oracle Data Integratorリポジトリに関する情報が含まれます。リポジトリ定義、構成およびインストールの詳細は、『Oracle Data Integratorのインストールと構成』のOracle Data Integratorマスター・リポジトリおよび作業リポジトリ・スキーマの作成に関する項を参照してください。

第II部

メタデータの管理およびリバースエンジニアリング

この部では、Oracle Data Integratorでのメタデータの管理方法とリバースエンジニアリング方法について説明します。

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

- 第3章「データ・モデルおよびデータストアの作成および使用」

- 第4章「ジャーナル化の使用」

- 第5章「共通フォーマット・デザイナを使用したデータ・モデルの作成」

3 データ・モデルおよびデータストアの作成および使用

この章では、モデルを作成する方法、作成したモデルをリバースエンジニアリングしてデータストアに移入する方法、モデルのデータストアを手動で作成する方法について説明します。また、パーティション化の使用方法およびモデル内のデータの品質の確認方法についても説明します。

この章には次の項が含まれます:

- モデルの概要

- モデルの作成およびリバースエンジニアリング

- データストアの作成およびリバースエンジニアリング

- データストアのデータの編集および表示

- パーティション化の使用

- モデルのデータ品質のチェック

モデルの概要

モデルは、一連のデータストアの記述です。それは、データ・サーバーに格納されている表データ構造のグループに対応しています。モデルは、トポロジに定義されている論理スキーマに基づいています。特定のコンテキストで、論理スキーマは物理スキーマにマップされます。物理スキーマのデータ・スキーマには、物理的なデータ構造(データストアとして表現される、表、ファイル、JMSメッセージ、XMLファイルの要素)が含まれています。

モデルとそれらのコンポーネントすべては、リレーショナル・パラダイム(表、属性、キーなど)に基づいています。Data Integratorのモデルには、データ構造の記述であるメタデータのみが含まれています。これらのモデルには、実際のデータのコピーは含まれていません。

注意:
頻繁に使用されるテクノロジには、リバース・メソッドとモデル作成メソッドが含まれています。詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

モデルは、モデル・フォルダに編成でき、モデルのデータストアはサブモデルに編成できます。モデル・フォルダとサブモデルの作成方法および編成方法については、「フォルダを使用したモデルの編成」を参照してください。

データストア

データストアはデータ構造を表現します。データストアは、表、フラット・ファイル、メッセージ・キューまたはOracle Data Integratorでアクセスできる他のデータ構造のいずれかです。

データストアでは、データが表構造で記述されており、データストアは複数の属性で構成されます。

データストアはリレーショナル・パラダイムに基づいているため、次の要素をデータストアに関連付けることもできます。

- キー
キーは、リレーショナル・パラダイムで特定の役割がある属性セットです。主キーおよび代替キーは各レコードを一意に識別します。一意でない索引を使用すると最適化されたレコードにアクセスできます。

- 参照
参照は2つのデータストアの間の機能リンクで、リレーショナル・モデルの外部キーに対応しています。たとえば、INVOICEデータストアは顧客番号を介してCUSTOMERデータストアを参照します。

- 条件とフィルタ
条件とフィルタは、データストアに関連付けられているWHEREタイプのSQL式で、データストア内のデータを検証またはフィルタするために使用されます。

データ整合性

モデルには、キー、参照、条件などの制約が含まれていますが、属性に対するnull以外のフラグも含まれています。Oracle Data Integratorには、データ・モデルの品質を保証するためのデータ整合性フレームワークが用意されています。

このフレームワークを使用すると、次の操作を実行できます。

- 静的チェック: データ・モデルに含まれているデータの整合性を検証します。この操作は、データ・サーバーには制約が物理的に存在しないが、Data Integratorにのみ定義されている場合に、モデル内のデータの品質を評価するために実行します。

- フロー・チェック: データ・フローを特定のデータストアに統合する前に、その整合性を検証します。データ・フローは、Oracle Data Integratorで定義されている、データ・フローのターゲットであるデータストアの制約と照合してチェックされます。

リバースエンジニアリング

新規モデルは、データストアなしで作成されます。リバースエンジニアリングは、データ構造を保持するデータ・サーバーからメタデータを取得してOracle Data Integratorのモデルに移入するプロセスです。リバースエンジニアリングには2つのタイプがあります。

- 標準リバースエンジニアリング: 標準のJDBCドライバ機能を使用してメタデータを取得します。標準リバースエンジニアリングを使用する場合、一意キーはリバースエンジニアリングされません。

- カスタマイズしたリバースエンジニアリング: 特定のテクノロジに固有のメソッドを使用し、テクノロジ固有のリバース・ナレッジ・モジュール(RKM)を使用して、メタデータを取得します。一般に、標準リバース・エンジニアリング・メソッドよりも多くの情報を取得できるため、テクノロジ固有のRKMが存在する場合は、このメソッドが推奨されます。利用できるRKMのリストについては、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

フラット・ファイル・データストアの場合は、リバースエンジニアリングに対する他のメソッドがあります。詳細は、「ファイル・データストアのリバースエンジニアリング」に記載されています。

Oracle Data Integratorでは、データストアのショートカットを含むモデルをリバースエンジニアリングできます。詳細は、第14章「ショートカットの使用」を参照してください。

チェンジ・データ・キャプチャ

ジャーナル化とも呼ばれるチェンジ・データ・キャプチャ(CDC)を使用すると、データに加えられた変更を捕捉できます。CDCは、Oracle Data Integratorで変更のないデータの転送を回避するために使用します。この機能は、データ同期化やレプリケーションなどで使用できます。

ジャーナル化は、特定のタイプのテクノロジに基づいたモデル、サブモデルまたはデータストアに適用できます。

チェンジ・データ・キャプチャの設定の詳細は、第4章「ジャーナル化の使用」を参照してください。

モデルの作成およびリバースエンジニアリング

ODIモデルの主要なコンポーネントについてはすでに説明しましたが、ここではモデルの作成方法とリバースエンジニアリング方法の概要について説明します。

- モデルの作成

- モデルおよびトポロジ・オブジェクトの作成

- モデルのリバースエンジニアリング

モデルの作成

モデルは、物理スキーマに保持されているデータ構造に対応する一連のデータストアです。

ヒント:
新規のモデルと新規のトポロジ・オブジェクトを同時に作成するには、「モデルおよびトポロジ・オブジェクトの作成」で説明されている手順を使用します。

モデルを作成するには:

1. デザイナ・ナビゲータで、「モデル」パネルを展開します。

2. 右クリックして「新規モデル」を選択します。

3. 「定義」タブで、次の各フィールドに値を入力します。

- 名前: ユーザー・インタフェースで使用するモデルの名前。

- テクノロジ: モデルのテクノロジを選択します。

- 論理スキーマ: モデルの基礎となる論理スキーマを選択します。

4. 「リバース・エンジニアリング」タブで、モデルのリバースエンジニアリングで使用するコンテキストを選択します。
論理スキーマをマップするコンテキストが1つのみの場合は、このコンテキストが自動的に設定されることに注意してください。

5. 「ファイル」メイン・メニューから「保存」を選択します。

モデルは作成されましたが、データストアはまだ格納されていません。

モデルおよびトポロジ・オブジェクトの作成

モデルおよび他のトポロジ・オブジェクト(新規のデータ・サーバー、コンテキスト、スキーマを含む)を同時に作成できます。

1. ODI Studioで、「ファイル」を選択し、「新規...」をクリックします。

2. 新規ギャラリ・ダイアログで、「新規モデルとトポロジ・オブジェクトを作成します」を選択し、「OK」をクリックします。

3. 「新規モデルとトポロジ・オブジェクトの作成」ダイアログで、次のフィールドに入力します。

- 名前: ユーザー・インタフェースで使用するモデルの名前。

- テクノロジ: モデルのテクノロジを選択します。

- 論理スキーマ: モデルの基礎となる論理スキーマを選択します。

- コンテキスト: モデルのリバースエンジニアリングで使用するコンテキストを選択します。

4. 「新規モデルとトポロジ・オブジェクトの作成」ダイアログの「データ・サーバー」セクションで、データ・サーバー・フィールドに入力します。これらのフィールドの詳細は、『Oracle Data Integratorの管理』のデータ・サーバーの作成に関する項を参照してください。

5. 「新規モデルとトポロジ・オブジェクトの作成」ダイアログの「物理スキーマ」セクションで、物理スキーマの詳細を入力します。これらのフィールドの詳細は、『Oracle Data Integratorの管理』の物理スキーマの作成に関する項を参照してください。

6. 「OK」をクリックします。モデルとトポロジ・オブジェクトが作成されましたが、モデルにまだデータストアが含まれていません。

モデルのリバースエンジニアリング

モデルにデータストアを自動的に移入するには、そのモデルに対してリバースエンジニアリングを実行する必要があります。

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

標準リバースエンジニアリングでは、データ・サーバーの接続に使用するJDBCドライバの機能を使用して、モデルのメタデータを取得します。

標準リバースエンジニアリングを実行するには:

1. モデルの「リバース・エンジニアリング」タブで、次の操作を実行します。

- 「標準」を選択します。

- リバースエンジニアリングで使用するコンテキストを選択します。

- リバースエンジニアリングするオブジェクトのタイプを選択します。リバースエンジニアリング・プロセスで考慮されるのは、選択したタイプのオブジェクトのみです。

- 「マスク」フィールドに、リバースエンジニアリングする表のマスクを入力します。マスクによって、リバースするオブジェクトが選択されます。このマスクでは、SQLのLIKE構文を使用します。パーセント(%)記号は、ゼロ個以上の文字を意味し、アンダースコア(_)記号は1つの文字を意味します。

- オプションで、表の別名で削除する文字を指定できます。これらは、別名を導出するために削除する文字です。データストアがすでに存在している場合は、ここで指定した文字が表の別名から削除されないことに注意してください。データストアの更新は表の別名に適用されません。

2. 「選択的リバース・エンジニアリング」タブで、「選択的リバース・エンジニアリング」、「新規データストア」、「既存のデータストア」および「リバース・エンジニアリングするオブジェクト」を選択します。

3. リバースエンジニアリング対象のデータストアのリストが表示されます。リバースエンジニアリングするデータストアは選択した状態のままにします。

4. 「ファイル」メイン・メニューから「保存」を選択します。

5. モデルのツールバー・メニューで、「リバースエンジニアリング」をクリックします。

6. Oracle Data Integratorによって、選択したデータストアに対するリバースエンジニアリング・プロセスが起動されます。進行状況バーには、リバースエンジニアリング・プロセスの進行状況が表示されます。

リバースエンジニアリングされたデータストアが、「モデル」パネルの該当モデル・ノードの下に表示されます。

カスタマイズしたリバースエンジニアリング

カスタマイズしたリバースエンジニアリングでは、リバースエンジニアリング・ナレッジ・モジュール(RKM)を使用して、特定タイプのテクノロジのメタデータを取得し、対応するデータストア定義をデータ・モデルに作成します。

たとえば、OracleテクノロジのRKM Oracleでは、データベース・ディクショナリ表にアクセスして、モデルに作成する表、属性、キーなどの定義を取得します。

注意:
RKMはグローバルRKMとしてまたはプロジェクトにインポートされて使用可能になっている必要があります。KMインポートの詳細は、第6章「統合プロジェクトの作成」を参照してください。

RKMを使用してカスタマイズしたリバースエンジニアリングを実行するには:

1. モデルの「リバース・エンジニアリング」タブで、次の操作を実行します。

- 「カスタマイズ済」を選択します。

- リバースエンジニアリングで使用するコンテキストを選択します。

- リバースエンジニアリングするオブジェクトのタイプを選択します。リバースエンジニアリング・プロセスで考慮されるのは、選択したタイプのオブジェクトのみです。

- 「マスク」に、リバースエンジニアリングする表のマスクを入力します。

- リバースエンジニアリング・プロセスの実行に使用するKMを選択します。通常、このKMの名前はRKM <テクノロジ>.<プロジェクトの名前>です。

- オプションで、表の別名で削除する文字を指定できます。これらは、別名を導出するために削除する文字です。データストアがすでに存在している場合は、ここで指定した文字が表の別名から削除されないことに注意してください。データストアの更新は表の別名に適用されません。

2. モデルのツールバー・メニューで、「リバースエンジニアリング」をクリックし、次に「はい」をクリックして変更内容を検証します。

3. 「OK」をクリックします。

4. 「セッションを開始しました」ウィンドウが表示されます。

5. 「OK」をクリックします。

リバースエンジニアリング・タスクは、オペレータ・ナビゲータで確認できます。リバースエンジニアリング・プロセスが正確に完了すると、リバースエンジニアリングされたデータストアが、「モデル」パネルの該当モデル・ノードの下に表示されます。

データストアの作成およびリバースエンジニアリング

モデルにデータストアを作成するための推奨方法はリバースエンジニアリングですが、空のモデルにデータストアを手動で定義することもできます。これは、フラット・ファイル・データストアを作成する際の推奨方法です。

データストアの作成

データストアを作成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、モデルまたはサブモデルを選択します。

2. 右クリックして「新規データストア」を選択します。

3. 「定義」タブで、次の各フィールドに値を入力します。

- データストアの名前: この名前は、ツリー内に表示され、プロジェクトからデータストアを参照する際に使用されます。

注意:
データストア名には、ODIの予約名(JRN_FLAG、JRN_SUBSCRIBER、JRN_DATEなど)は使用しないでください。これらの名前を使用すると、エラー表のようなODIの中間的な表で、属性名重複のSQLエラーが発生する可能性があります。

- リソース名: 格納先のデータ・サーバーによって認識される形式でのオブジェクトの名前。これには、表、ファイル、JMSキューなどの名前を使用できます。

- 別名: これは、データストアの属性名の接頭辞として式で使用するデフォルトの別名です。

4. データストアがフラット・ファイル(デリミタ付きまたは固定)を表現する場合は、「ファイル」タブで次の各フィールドに値を入力します。

- ファイル形式: フラット・ファイルのタイプである固定またはデリミタ付きを選択します。

- ヘッダー: フラット・ファイルのヘッダー行数。

- 「レコード・セパレータ」および「フィールド・セパレータ」では、ファイル内の複数のレコード(行)および1つのレコード内の複数のフィールドを区切るために使用する文字を定義します。
レコード・セパレータ: ファイル内の複数の行(レコード)を区切る1つまたは複数の文字。

- MS-DOS: DOSの改行記号

- UNIX: UNIXの改行記号

- その他: 文字または16進コードとして入力できる任意のテキスト

フィールド・セパレータ: レコード内の各フィールドを区切る1つまたは複数の文字。

- タブ

- スペース

- その他: 文字または16進コードとして入力できる任意のテキスト

5. 「ファイル」メイン・メニューから「保存」を選択します。

データストアが作成されました。これがファイル・データストアである場合は、データストアに属性を作成するために、「ファイル・データストアのリバースエンジニアリング」を参照してください。すべてのデータストアの属性を手動で編集することもできます。詳細は、「データストア属性の追加および削除」を参照してください。

ファイル・データストアのリバースエンジニアリング

Oracle Data Integratorには、フラット・ファイルをリバースエンジニアリングするための特定の方法があります。次に、フラット・ファイルをリバースするための方法を説明します。

固定ファイルのリバースエンジニアリング

固定ファイルは、固定属性の境界とそのパラメータを定義できるウィザードを使用してリバースエンジニアリングできます。

1. 固定形式のファイル・データストアの「属性」タブに移動します。

2. 「リバース・エンジニアリング」ボタンをクリックします。ウィンドウが開き、ファイルの最初のレコードが表示されます。

3. ルーラー(ファイルの内容の上部)をクリックし、属性を区切るマーカーを作成します。マーカーを削除する場合は、ルーラーを右クリックします。

4. 属性が、事前に生成された名前(C1、C2など)で作成されます。属性名を編集するには、属性ヘッダー行(ルーラーの下)をクリックします。

5. プロパティ・パネル(右側)で、選択した属性のパラメータを編集できます。

6. 各属性に対して少なくとも属性の名前、データ型および長さを設定する必要があります。ファイル・データストアの属性名にはスペースを使用できないことに注意してください。

7. 属性定義が完了してウィザードを閉じる場合は、「OK」をクリックします。

8. 「ファイル」メイン・メニューから「保存」を選択します。

デリミタ付きファイルのリバースエンジニアリング

デリミタ付きファイルは、(ファイルを分析して属性を検出し、ファイル・ヘッダーから属性名を読み取る)組込みJDBCを使用して、リバースエンジニアリングできます。

1. デリミタ付き形式のファイル・データストアの「属性」タブに移動します。

2. 「リバース・エンジニアリング」ボタンをクリックします。

3. Oracle Data Integratorによって、ファイルの内容に応じた属性のリストが作成されます。属性のタイプおよび長さがデフォルト値に設定されます。属性名は、事前に生成された名前(C1、C2など)であるか、またはこのファイルで宣言された最初のヘッダー行から取得された名前です。

4. 各属性に関して、属性の名前、データ型および長さを確認し、必要に応じて変更します。ファイル・データストアの属性名にはスペースを使用できないことに注意してください。

5. 「ファイル」メイン・メニューから「保存」を選択します。

COBOLファイルのリバースエンジニアリング

COBOL固定ファイル構造は通常、コピーブック・ファイルに記述されます。Oracle Data Integratorでは、コピーブック・ファイル構造をデータストア構造にリバースエンジニアリングできます。

1. 固定形式のファイル・データストアの「属性」タブに移動します。

2. 「COBOLコピーブックのリバース・エンジニアリング」ボタンをクリックします。

3. 次の各フィールドに値を入力します。

- ファイル: コピーブック・ファイルの場所。

- 文字セット: コピーブック・ファイルの文字セット。

- 説明書式(EBCDICまたはASCII): コピーブック・ファイル形式。

- データ形式(EBCDICまたはASCII): データ・ファイル形式。

4. 「OK」をクリックします。コピーブックで説明されている属性は、リバースエンジニアリングされており、属性リストに表示されます。

5. 「ファイル」メイン・メニューから「保存」を選択します。

データストア属性の追加および削除

属性をデータストアに追加するには:

1. データストアの「属性」タブで、ツールバー・メニューの「属性の追加」をクリックします。

2. 空の行が表示されます。新しい属性に関する情報を入力します。少なくとも「名前」、「データ型」および「長さ」の各フィールドに値を入力する必要があります。

3. データストアに追加する属性ごとにステップ1とステップ2を繰り返します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

属性をデータストアから削除するには:

1. データストアの「属性」タブで、削除する属性を選択します。

2. 「属性の削除」ボタンをクリックします。属性がリストから削除されます。

制約とフィルタの作成および削除

Oracle Data Integratorでは、キー、参照、条件、必須属性などのデータ・モデルに対する制約が管理されます。これらの制約に基づいてデータ・モデルの品質を保証するためのデータ整合性フレームワークが含まれています。

フィルタは制約ではありませんが、条件と同じように定義します。フィルタは、データストアに対してデータ品質ルールを実施する際には使用しませんが、ソースとして使用されているデータストアを自動的にフィルタ処理する際に使用します。

キー

データストアのキーを作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、キーを追加するデータストアを展開します。

2. 「制約」ノードを選択し、右クリックして「新規キー」を選択します。

3. 制約の「名前」を入力し、「キーまたは索引タイプ」を選択します。「主キー」および「代替キー」を選択して、インタフェースの更新キーとして使用できます。一意でない索引は、主にパフォーマンス上の理由で使用します。

4. 「属性」タブで、このキーに属している属性のリストを選択します。

5. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

6. 「チェック」ボタンをクリックすると、この制約に適合しないレコード数を取得できます。

7. 「ファイル」メイン・メニューから「保存」を選択します。

参照

2つのデータストア間の参照を作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、参照を追加するデータストアの1つを展開します。

2. 「制約」ノードを選択し、右クリックして「新規参照」を選択します。

3. 制約の「名前」を入力し、参照の「タイプ」を選択します。「ユーザー参照」では、2つのデータストアを属性の等価性に基づいてリンクします。「複合ユーザー参照」では、任意の式を使用して2つのデータストアをリンクします。「データベース参照」は、データベース・エンジンからリバースエンジニアリングされた属性の等価性に基づいた参照です。

4. モデルに存在するデータストアを参照する場合は、現在のデータストアにリンクする「モデル」および「表」を選択します。

5. モデルに存在しない表をリンクする場合は、「モデル」および「表」の各フィールドを未定義のままにし、「カタログ」、「スキーマ」および「表」の名前を設定してデータストアを識別します。

6. ユーザーまたはデータベース参照を定義する場合は、「属性」タブで、リンクする2つのデータストアの一致する属性を定義します。

7. 複合ユーザー参照を定義している場合は、「式」タブで、リンクする2つのデータストアの属性を関連付ける式を入力します。

8. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

9. 「チェック」ボタンをクリックすると、この制約に適合するレコード数、または適合しないレコード数を取得できます。

10. 「ファイル」メイン・メニューから「保存」を選択します。

条件

データストアの条件を作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、条件を追加するデータストアの1つを展開します。

2. 「制約」ノードを選択し、右クリックして「新規条件」を選択します。

3. 制約の「名前」を入力し、条件の「タイプ」を選択します。「Oracle Data Integrator条件」は、モデルにのみ存在する条件で、データベースには存在しません。「データベース条件」は、データベースに定義されている条件で、リバースエンジニアリングされています。

4. 「条件」フィールドで、条件を実装する式を入力します。この式は、有効なレコードが適合するSQL WHERE式です。

5. 「メッセージ」フィールドに、この制約に対するエラー・メッセージを入力します。

6. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

7. 「チェック」ボタンをクリックすると、この制約に適合しないレコード数を取得できます。

8. 「ファイル」メイン・メニューから「保存」を選択します。

必須属性

データストアに必須属性を定義するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、データストアを含むモデルの順に展開します。

2. 必須として設定する必要がある属性を含むデータストアをダブルクリックします。データストア・エディタが表示されます。

3. 「属性」タブで、必須の各属性の「NOT NULL」フィールドをチェックします。

4. 「ファイル」メイン・メニューから「保存」を選択します。

フィルタ

データストアにフィルタを追加するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、フィルタを追加するデータストアの1つを展開します。

2. 「フィルタ」ノードを選択し、右クリックして「新規条件」を選択します。

3. フィルタの「名前」を入力します。

4. 「条件」フィールドで、フィルタを実装する式を入力します。この式は、ソース・レコードのフィルタ処理に使用するSQL WHERE式です。

5. この表のデータを静的制御でチェックする前にフィルタ処理する場合は、「制御」タブで、「静的制御の場合はフィルタ・アクティブ」を選択します。

6. 「ファイル」メイン・メニューから「保存」を選択します。

データストアのデータの編集および表示

データストアのデータを表示するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「データの表示」を選択します。

編集不可のグリッド内にデータが表示されます。

データストアのデータを編集するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「データ」を選択します。

データ・エディタの編集可能なグリッド内にデータが表示されます。「リフレッシュ」ボタンを使用すると、データストアのデータを戻す問合せを編集して再度実行できます。この方法を使用すると、データをフィルタ処理したり、データストアに対して任意の問合せを実行することができます。

データストアのデータを編集できるのは、使用する接続とデータ・サーバーのユーザー権限で許可され、かつデータストア構造によってデータストアの各行(PKなど)が識別可能である場合です。

注意:
表示されるデータは、現在の作業コンテキストで、モデルの論理スキーマに対応する物理スキーマに格納されているデータです。

パーティション化の使用

Oracle Data Integratorでは、パーティション表のデータをマッピングのソースまたはターゲットとして使用して処理する場合、データベース定義のパーティションを使用できます。これらのパーティションは、表に対応するデータストアに、リバースエンジニアリング・プロセスを使用して、または手動で作成されます。たとえば、Oracleテクノロジでは、パーティションはRKM Oracleを使用してリバースエンジニアリングされます。

サポートされるパーティション化メソッドは、データストアのテクノロジによって異なります。たとえば、Oracleテクノロジでは、レンジ、ハッシュ、リストのパーティション化メソッドがサポートされています。

データストアで定義されたパーティションは、そのデータストアをマッピングのソースまたはターゲットとして使用するときに選択できます。詳細は、第8章「マッピングの作成および使用」を参照してください。

共通フォーマット・デザイナを使用する場合は、「DDLの生成」操作の実行時にパーティションを作成することもできます。

モデル・データストアのパーティションおよびサブパーティションの手動による定義

パーティション情報は、データストア構造とともにリバースエンジニアリングすることも、手動で定義することもできます。

注意:
標準リバースエンジニアリングでは、パーティションのリバースエンジニアリングがサポートされていません。パーティションおよびサブパーティションをリバースエンジニアリングするには、カスタマイズしたリバースエンジニアリングを使用する必要があります。

データストアのパーティションおよびサブパーティションを手動で定義する手順は、次のとおりです。

1. 「モデル」アコーディオンで、パーティションまたはサブパーティションを定義するデータストアをダブルクリックします。データストア・エディタが開きます。

2. 「パーティション」タブで、パーティションおよびサブパーティションを定義するために次の詳細を入力します。

- パーティション基準
パーティション化メソッドを選択します。このリストには、モデルが依存するテクノロジでサポートされているパーティション化メソッドが表示されます。

- サブパーティション基準
パーティションに加えてサブパーティションも定義する場合は、サブパーティション化メソッドを選択します。このリストには、モデルが依存するテクノロジでサポートされているパーティション化メソッドが表示されます。

3. 「パーティションの追加」をクリックします。

4. 「名前」フィールドに、パーティションの名前を入力します(例: FY08)。

5. 「説明」フィールドに、パーティションの説明を入力します(例: Operations for Fiscal Year 08)。

6. 次を追加するには:

- パーティション: ステップ3から5を繰り返します。

- 選択したパーティションのサブパーティション: 「サブパーティションの追加」をクリックし、ステップ4と5を繰り返します。

7. 「ファイル」メニューから、「保存」を選択します。

モデル内のデータ品質のチェック

データ品質管理は、情報システムのアプリケーションでデータ全体の一貫性を保証するために重要です。

アプリケーション・データは、情報システムによって課せられる制約および宣言的ルールに対して有効でない場合があります。たとえば、顧客が指定されていない注文や製品が指定されていない注文明細などが検出される可能性があります。さらに、そのような不正なデータが統合フローを介して伝播される場合があります。

データ整合性の概要

Oracle Data Integratorには、これらの制約違反を検出してリサイクルまたはレポート目的で格納するための作業環境が用意されています。

主なタイプとして、静的制御とフロー制御があります。この2つのタイプの相違について説明します。

静的制御

静的制御は、アプリケーション・データの整合性を検証するために使用するルールが存在することを意味します。これらのルール(制約とも呼ばれます)の一部は、データ・サーバーに(主キー、参照制約などを使用して)すでに実装されている可能性があります。

Oracle Data Integratorでは、追加の制約を定義することでデータの検証を調整できます。追加の制約をサーバーに直接実装する必要はありません。この手順は、既存(静的)データのチェックを直接実行できるため、静的制御と呼ばれます。アクティブなデータベース制約(「制御」タブで「データベースで定義済」と「アクティブ」が選択された)は、すでにデータベースによって制御されているため、Oracle Data Integratorからの追加の制御は不要です。

フロー制御

変換プロセスおよび統合プロセスに対応する情報システムでは、通常、独自の宣言的ルールが実装されています。フロー制御機能は、データを対応する情報システムにロードする前に、それらの制約に基づいてアプリケーションの着信データを検証するために使用します。フロー制御の設定の詳細は、第8章「マッピングの作成および使用」に記載されています。

制約のチェック

Oracle Data Integratorでの制約の作成時に、その制約に違反する行数を取得できます。同期制御と呼ばれるこのアクションは、特定の制約エディタの「制御」タブで「チェック」ボタンをクリックして実行します。

同期制御の結果は永続的ではありません。このタイプの制御は、制約定義の有効性をすばやく評価するために使用します。

モデル、サブモデルまたはデータストアに対する静的チェックの実行

モデル、サブモデルまたはデータストアに対して静的チェックを実行するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、チェックするモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. モデル・エディタの「制御」タブで、静的チェックで使用するチェック・ナレッジ・モジュール(CKM)を選択します。

4. 「ファイル」メニューから、「すべて保存」を選択します。

5. デザイナ・ナビゲータの「モデル」ツリーで、チェックするモデル、サブモデルまたはデータストアを右クリックし、「制御」→「チェック」の順に選択します。または、モデル・エディタ・メニュー・バーで、「モデルのチェック」ボタンをクリックします。

6. 「実行」ダイアログで、次の実行パラメータを選択します:

- ステップを実行する「コンテキスト」を選択します。

- ステップを実行する「論理エージェント」を選択します。

- 「ログ・レベル」を選択します。

- エラーが検出された行をチェック済表から削除する場合は、「チェック済表からのエラーの削除」オプションを選択します。

- 「サブモデルの再帰」を選択して、このモデルのサブモデルをチェックします。

- オプションで、「シミュレーション」を選択します。このオプションでは、データへの実際の影響なしに、実行操作のシミュレーションを実行し、実行レポートを生成します。

実行パラメータの詳細は、『Oracle Data Integratorの管理』の実行パラメータに関する項を参照してください。

7. 「OK」をクリックします。

8. 「セッションを開始しました」ウィンドウ(シミュレーションを実行している場合は「シミュレーション」ウィンドウ)が表示されます。

9. 「OK」をクリックします。

チェック・タスクは、オペレータ・ナビゲータで確認できます。制御プロセスが正確に完了すると、チェック済のデータストアごとにエラーのあるレコードを確認できます。

エラーのあるレコードの確認

データストアのエラーを表示するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「制御」→「エラー」の順に選択します。

そのデータストアで検出されたエラー行が、グリッドに表示されます。

4 ジャーナル化の使用

この章では、Oracle Data Integratorのチェンジ・データ・キャプチャ機能を使用してデータに加えられた変更を検出し、統合フローでこれらの変更のみを処理する方法について説明します。

この章には次の項が含まれます:

- チェンジ・データ・キャプチャの概要

- ジャーナル化の設定

- 変更データの使用

チェンジ・データ・キャプチャの概要

チェンジ・データ・キャプチャ(CDC)を使用すると、Oracle Data Integratorで、他のアプリケーションに起因するソース・データの変更を追跡できます。CDCによって、マッピングの実行時に、Oracle Data Integratorは変更されていないデータをフロー内で処理せずに済みます。

ソース・データ・フローを変更されたデータのみに限定することは、データ同期やレプリケーションなどの多くの状況で有用です。この作業は、統合用のイベント指向アーキテクチャを設定する場合に不可欠です。このようなアーキテクチャでは、ビジネス・プロセスの実行時に、アプリケーションによってデータに変更が加えられます(顧客の削除や新規購買注文など)。これらの変更は、Oracle Data Integratorによって取得され、情報システム全体に伝播されるイベントに変換されます。

チェンジ・データ・キャプチャは、モデルのジャーナル化によって実行されます。モデルのジャーナル化とは、そのモデルのデータストアのレコードに追加された変更(挿入、更新および削除)を取得するインフラストラクチャを設定することです。

Oracle Data Integratorでは、次の2つのジャーナル化モードがサポートされています。

- 簡易ジャーナル化: モデルの個別のデータストアの変更を追跡します。

- 一貫性セット・ジャーナル化: モデルのデータストア間の参照整合性を考慮して、そのモデルのデータストアのグループに対する変更を追跡します。このモードでジャーナル化されるデータストアのグループは、一貫性セットと呼ばれます。

注意:

- この章で説明するチェンジ・データ・キャプチャ機能は、ソース・データの変更を追跡し、それに基づいた処理を行う目的のみで使用します。それでも、ソース・データストアにデータを移入する場合は、初期データ・ロードを実行する必要があります。

- 通常、チェンジ・データ・キャプチャはOracle GoldenGateテクノロジを使用して実行されます。詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』のOracle GoldenGateに関する項を参照してください。

ジャーナル化コンポーネント

ジャーナル化コンポーネントは次のとおりです。

- ジャーナル: 変更が記録される場所。ジャーナルには、変更されたレコードへの参照と、その変更のタイプ(挿入、更新、削除)のみが含まれます。

- 取得プロセス: ジャーナル化でソース・データストアの変更を取得するには、データ表にトリガーを作成するか、データ・サーバーのログ・ファイルからログ・データを取得するデータベース固有のプログラムを使用します。使用するテクノロジで使用可能な取得プロセスの詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

- サブスクライバ: CDCでは、パブリッシュ/サブスクライブ・モデルを使用します。サブスクライバは、データストアまたは一貫性セットで追跡される変更を使用するエンティティ(アプリケーション、統合プロセスなど)です。これらのエンティティは、データストアまたは一貫性セットの変更を追跡するモデルのCDCをサブスクライブします。変更が取得されるのは、変更に対して少なくとも1つのサブスクライバが存在する場合のみです。取得された変更をすべてのサブスクライバが使用すると、それらの変更はジャーナルから破棄されます。

- ジャーナル化ビュー: 取得された変更と変更データへのアクセスを提供します。これらのビューは、ユーザーが取得された変更を表示する場合と、統合プロセスが変更データを取得する場合に使用されます。

これらのコンポーネントは、ジャーナル化インフラストラクチャに実装されます。

簡易ジャーナル化と一貫性セット・ジャーナル化

簡易ジャーナル化では、1つ以上のデータストアをジャーナル化できます。ジャーナル化された各データストアは、変更の取得時に個別に処理されます。

この方法には、次の例に示すように制限があります。たとえば、ORDERデータストアとORDER_LINEデータストアの変更を処理する必要があるとします(このとき、参照整合性制約として、ORDER_LINEレコードは必ず関連するORDERレコードを保持する必要があります)。ORDER_LINEへの挿入が取得された場合、ORDER内で関連する新規レコードも取得されているかどうかは保証されません。関連するORDERレコードなしでORDER_LINEレコードを処理すると、統合プロセスで参照制約違反が発生する可能性があります。

一貫性セット・ジャーナル化では、ORDER_LINE(またはORDER)の変更が取得されたときに、関連するORDER(またはORDER_LINE)の変更も取得されていることが保証されます。一貫性セット・ジャーナル化では、取得された変更の一貫性が保証されます。一貫性が保証された使用可能な変更のセットは、一貫性ウィンドウと呼ばれます。このウィンドウ内の各変更は、パッケージ内でマッピングを設計および順序付けして、正しい順序で(ORDER、ORDER_LINEの順に)処理する必要があります。

一貫性セット・ジャーナル化は強力な方法ですが、設定も複雑になります。この方法は、データ変更の取得時に参照整合性制約を保証する必要がある場合に使用してください。パフォーマンス上の理由から、多数のサブスクライバが必要な場合にも、一貫性セット・ジャーナル化を使用することをお薦めします。

一貫性セット・ジャーナル化と簡易ジャーナル化の両方を使用してモデル(またはモデル内のデータストア)をジャーナル化することはできません。

ジャーナル化の設定

この項では、ジャーナル化インフラストラクチャを設定して開始し、適切に稼働していることを確認する方法について説明します。このインフラストラクチャのコンポーネントについても詳しく説明します。

ジャーナル化の設定および開始

Oracle Data Integratorデータ・モデルにCDCを設定するための基本的な手順は、次のとおりです:

- データ・モデルへのCDCパラメータの設定

- CDCへのデータストアの追加

- 一貫性セット・ジャーナル化の場合、データストアの順序の設定

- サブスクライバの追加

- ジャーナルの開始

CDCパラメータの設定

CDCパラメータの設定は、データ・モデルに対して実行します。この設定では、モデルに使用するジャーナル化モードおよびジャーナル化ナレッジ・モジュールを選択または変更します。

CDCパラメータを設定するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ジャーナル化するモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. 「ジャーナル化」タブで、使用するジャーナル化モード(「一貫性セット」または「簡易」)を選択します。

4. このモデルに使用するジャーナル化ナレッジ・モジュール(JKM)を選択します。リストに表示されるのは、データ・モデルのテクノロジとジャーナル化モードに適合し、事前に少なくとも1つのプロジェクトにインポートされているナレッジ・モジュールのみです。

5. このKMのオプションを設定します。このKMとそのオプションの詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

6. 「ファイル」メニューから「すべて保存」を選択します。

注意:
モデルがすでにジャーナル化されている場合は、データ・モデルのジャーナル化パラメータを変更する前に、既存の構成によるジャーナル化を停止することをお薦めします。

CDCに対するデータストアの追加または削除:

ジャーナル化対象モデル内のジャーナル化するデータストアにはフラグを指定する必要があります。データストア・フラグの変更は、次回ジャーナルが開始(再開)されたときに反映されます。モデルまたはサブモデルにフラグを指定すると、そのモデルまたはサブモデルに含まれているすべてのデータストアにフラグが指定されます。

CDCに対してデータストアを追加または削除するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、CDCに対して追加または削除するモデル、サブモデルまたはデータストアを右クリックします。

2. 選択したデータストア、または選択したモデルまたはサブモデルのすべてのデータストアをCDCに追加する場合は、「チェンジ・データ・キャプチャ」→「CDCに追加」の順に選択し、選択したデータストア、または選択したモデルまたはサブモデルのすべてのデータストアをCDCから削除する場合は、「チェンジ・データ・キャプチャ」→「CDCから削除」の順に選択します。

CDCに追加されたデータストアにマーカー・アイコンが表示されます。ジャーナル・アイコンは小さい時計の形で表されます。アイコンの色は黄色で、ジャーナル・インフラストラクチャがまだ設定されていないことを示します。

注意:
ジャーナル作成フェーズの後でもデータストアをCDCに追加できます。この場合は、ジャーナルを再開始する必要があります。
ジャーナルを実行しているデータストアを簡易モードのCDCから削除する場合は、その個別のデータストアに対するジャーナルを停止する必要があります。一貫性セット・モードのCDCからデータストアを削除する場合は、モデルに対するジャーナルを再開する必要があります(他のデータストアのジャーナル化情報は維持されます)。

データストアの順序の設定(一貫性セット・ジャーナル化のみ):

データストアの順序を調整する必要があるのは、一貫性セット・ジャーナル化を使用する場合のみです。一貫性セットのデータストアは、変更データの使用時に参照整合性を維持する順序に調整する必要があります。たとえば、ORDER表にORDER_LINEデータストアからインポートされた参照があり(つまり、ORDER_LINEにはORDERを参照する外部キー制約が含まれます)、ORDERとORDER_LINEの両方がCDCに追加されている場合、ORDERデータストアはORDER_LINEより前の順序に設定する必要があります。PRODUCTデータストアにORDERとORDER_LINEの両方からインポートされた参照がある場合(つまり、ORDERとORDER_LINEの両方に、PRODUCT表に対する外部キー制約が含まれます)、その順序はさらに繰り下がります。

データストアの順序を設定するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・モードでジャーナル化するモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. 「ジャーナル化表」タブに移動します。

4. データストアが現在特定の順序に設定されていない場合は、「再編成」ボタンをクリックします。この機能によって、モデルで定義された外部キーに基づいて、ジャーナル化するデータストアの順序が推奨されます。推奨された順序を確認し、必要に応じてデータストアの順序を編集してください。

5. リストからデータストアを選択し、「上」および「下」ボタンを使用してリスト内を移動します。データストアの「順序」の値を直接編集することもできます。

6. データストアの順序が正しく設定されるまで前のステップを繰り返します。

7. 「ファイル」メニューから「すべて保存」を選択します。

注意:
データストアの順序の変更は、次回ジャーナルが開始(再開)されたときに反映されます。
既存のシナリオでこのCDCセットからの変更を使用している場合は、CDCセットの新規編成を反映するようにシナリオを再生成する必要があります。

サブスクライバの追加または削除:

各サブスクライバは、簡易ジャーナル化の個別データストアまたは一貫性セット・ジャーナル化のモデルで発生する変更を個別のスレッドで使用します。サブスクライバの追加または削除は、各サブスクライバのために変更を捕捉できるように、CDCインフラストラクチャに登録されます。

サブスクライバを追加する手順:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・ジャーナル化を使用している場合はジャーナル化対象のデータ・モデルを選択し、簡易ジャーナル化を使用している場合は、データ・モデルまたは個別のデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「サブスクライバ」→「サブスクライブ」の順に選択します。サブスクライバを選択するウィンドウが表示されます。

3. サブスクライバの名前を入力し、「サブスクライバの追加」ボタンをクリックします。追加するサブスクライバごとにこの操作を繰り返します。

注意:
サブスクライバ名に一重引用符を含めることはできません。

4. 「OK」をクリックします。

5. 「実行」ウィンドウで、次の実行パラメータを選択します。

- サブスクライバを登録する必要があるコンテキストを選択します。

- ジャーナル化タスクを実行する論理エージェントを選択します。

6. 「OK」をクリックします。

7. 「セッションを開始しました」ウィンドウが表示されます。

8. 「OK」をクリックします。

ジャーナル化タスクは、オペレータ・ナビゲータで確認できます。

サブスクライバを削除する手順もほぼ同じです。「チェンジ・データ・キャプチャ」→「サブスクライバ」の順に選択し、かわりに「サブスクライブ解除」オプションを選択します。

ジャーナルの開始後もサブスクライバを追加できます。ジャーナルの開始後に追加されたサブスクライバは、それらがサブスクライバ・リストに追加された後に発生した変更のみを取得します。

ジャーナルの開始/削除:

ジャーナルを開始するとCDCインフラストラクチャ(まだ存在していない場合)が作成されます。また、ジャーナル化対象データストアの追加、削除および順序変更が検証されます。

ジャーナルを削除すると、ジャーナル化インフラストラクチャ全体が削除されます。

注意:
ジャーナルを削除すると、取得されたすべての変更とともにインフラストラクチャが削除されます。簡易ジャーナル化の場合は、さらにそのジャーナルを開始すると、ジャーナルの内容が削除されます。一貫性セットのJKMでは、データを失わずにジャーナルを再開することがサポートされています。

ジャーナルを開始または削除するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・ジャーナル化を使用している場合はジャーナル化対象のデータ・モデルを選択し、簡易ジャーナル化を使用している場合は、データ・モデルまたは個別のデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「ジャーナルの開始」の順に選択するか(ジャーナルを開始する場合)、「チェンジ・データ・キャプチャ」→「ジャーナルの削除」の順に選択します(ジャーナルを停止する場合)。

3. 「実行」ウィンドウで、次の実行パラメータを選択します。

- ジャーナルを開始または削除する必要のあるコンテキストを選択します。

- ジャーナル化タスクを実行する論理エージェントを選択します。

4. 「OK」をクリックします。

5. 「セッションを開始しました」ウィンドウが表示されます。

6. 「OK」をクリックします。

ジャーナルを開始または削除するセッションが開始されます。ジャーナル化タスクは、オペレータ・ナビゲータで確認できます。

ジャーナル化設定の自動化:

ジャーナル化インフラストラクチャは、ジャーナル化KMによって物理レベルで実装されます。したがって、データ・モデルでジャーナル化が必要なコンテキストごとに、「サブスクライバの追加」および「ジャーナルの開始」操作を実行する必要があります。これらの操作は、Oracle Data Integratorパッケージを使用して自動化できます。複数のコンテキストにわたってジャーナル化インフラストラクチャをデプロイする場合は、操作を自動化することをお薦めします。

たとえば、開発者は開発環境のコンテキストでCDCを手動構成します。開発フェーズが完了すると、開発者はCDCインフラストラクチャを自動化するパッケージを提供します。CDCは、このパッケージを使用して、テスト環境のコンテキストに自動的にデプロイされます。同じパッケージを使用して本番環境のコンテキストにもCDCをデプロイします。

このようなパッケージの設計の概要を次に示します。パッケージ作成の詳細は、第7章「パッケージの作成および使用」を参照してください。

CDC構成を自動化するには:

1. 新規パッケージを作成します。

2. ジャーナル化するモデルまたはデータストアを「モデル」アコーディオンからパッケージの「ダイアグラム」タブにドラッグ・アンド・ドロップします。新規パッケージのステップが表示されます。

3. パッケージ・ダイアグラムのステップ・アイコンをダブルクリックします。このステップのプロパティ・インスペクタが開きます。

4. 「タイプ」リストで、「ジャーナル化モデル」または「ジャーナル化データストア」を選択します。

5. 「開始」ボックスを選択してジャーナルを開始します。

6. 「サブスクライバの追加」ボックスを選択し、「サブスクライバ」グループにサブスクライバのリストを入力します。

7. サブスクライバ・フィールドに最初のサブスクライバを入力して「追加」ボタンをクリックし、「サブスクライバ」リストに追加します。すべてのサブスクライバに対してこの操作を繰り返します。

8. 「ファイル」メニューから、「保存」を選択します。

このパッケージがコンテキスト内で実行されると、モデル構成に従ってジャーナルが開始され、指定したサブスクライバがこのコンテキストに作成されます。

サブスクライバとジャーナル管理は、異なるステップおよびパッケージに分割できます。サブスクライバの削除とジャーナルの停止も、同じ方法で自動化できます。

ジャーナル化インフラストラクチャの詳細

ジャーナルが開始されると、ジャーナル化インフラストラクチャが次の場所でデプロイまたは更新されます(このインフラストラクチャがまだインストールされていない場合)。

- ジャーナル化ナレッジ・モジュールでトリガーを作成する場合、それらのトリガーは、ジャーナル化対象の表を保持するOracle Data Integratorの物理スキーマに対応する作業スキーマの表にインストールされます。ジャーナル化トリガーの名前の先頭には、物理スキーマの「ジャーナル化要素接頭辞」で定義された接頭辞が付きます。この接頭辞のデフォルト値は、T$です。データベース固有の取得プロセスの詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

- データ・サーバーのCDC共通インフラストラクチャは、そのデータ・サーバーのデフォルトとしてフラグが指定されたOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。この共通インフラストラクチャには、データ・サーバーでジャーナル化されるすべてのスキーマのサブスクライバや一貫性セットなどに関する情報が含まれます。この共通インフラストラクチャは、接頭辞にSNP_CDC_という名前が付いた表で構成されます。

- ジャーナル表とジャーナル化ビューは、ジャーナル化対象の表を保持するOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。ジャーナル表とジャーナル化ビューの名前の先頭には、物理スキーマの「ジャーナル化要素接頭辞」で定義された接頭辞が付きます。デフォルト値は、ジャーナル表ではJ$で、ジャーナル化ビューではJV$です。

ジャーナル化インフラストラクチャのすべてのコンポーネント(トリガーを除く、統合表、エラー表、ロード表などのすべてのData Integrator一時オブジェクトなど)は、データ・サーバーのOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。これらの作業スキーマは、アプリケーション・データを格納するスキーマ(データ・スキーマ)とは別に維持する必要があります。

重要:
ジャーナル化トリガーは、ジャーナル化対象データと同じスキーマに必要に応じてインストールされる唯一のジャーナル化用コンポーネントです。サード・パーティのソフトウェア・パッケージに含まれる表にトリガーを作成するには、その前に、この操作がソフトウェア規約やメンテナンス契約に違反しないことを確認してください。また、ソフトウェア・パッケージの一般的な動作を妨げることなく、トリガーをインストールして実行することが技術的に可能であることも確認してください。

ジャーナル化ステータス

モデルやマッピングのデータストアには、デザイナの現在のコンテキストにおけるジャーナル化ステータスを示す次のアイコン・マーカーがあります。

- OK - ジャーナル化は、現在のコンテキストにおいてこのデータストアに対してアクティブです。また、インフラストラクチャはこのデータストアで稼働中です。

- インフラストラクチャなし - ジャーナル化はモデルでアクティブとしてマークされていますが、現在のコンテキストにおいて適切なジャーナル化インフラストラクチャが検出されていません。ジャーナルを開始する必要があります。この状態は、インフラストラクチャに実装されているジャーナル化モードがモデルに宣言されているモードと一致しない場合に発生する可能性があります。

- 断片 - ジャーナル化はモデルで非アクティブとしてマークされていますが、コンテキストにおいてジャーナル化表などのジャーナル化インフラストラクチャの断片がこのデータストアで検出されています。この状態は、ジャーナルを停止せずにCDCから表を削除した場合に発生する可能性があります。

変更データの使用

ジャーナル化の開始後にサブスクライバで変更を追跡すると、取得された変更データを使用できます。これらを表示または使用できるのは、ジャーナル化されたデータストアがマッピングのソースとして使用されている場合です。

変更データの表示

変更データを表示するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ジャーナル化されたデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「ジャーナル・データ」の順に選択します。

現在のコンテキストのデータストアで取得された変更がグリッドに表示され、追加された次の3つの列にその詳細が示されます。

- JRN_FLAG: 変更のタイプを示すフラグ。挿入または更新されたレコードには値Iが使用され、削除されたレコードには値Dが使用されます。

- JRN_SUBSCRIBER: サブスクライバの名前。

- JRN_DATE: 変更のタイムスタンプ。

ジャーナル化されたデータは、主に統合プロセス内で使用されます。変更データは、マッピングのソースとして使用できます。その使用方法は、ジャーナル化モードに応じて異なります。

変更データの使用: 簡易ジャーナル化

簡易ジャーナル化の変更データを使用する場合は、ジャーナル化されたデータストアをソースとして使用するマッピングを設計します。マッピングの作成の詳細な手順は、第8章「マッピングの作成および使用」を参照してください。

簡易ジャーナル化を使用したマッピングの設計

ジャーナル化されたデータストアをマッピング・ダイアグラムに挿入した場合、マッピング・エディタの「物理」タブで表示すると、そのデータストアのプロパティ・パネルに「ジャーナル化されたデータのみ」チェック・ボックスが表示されます。

このボックスを選択すると、次の処理が実行されます。

- ジャーナル化列(JRN_FLAG、JRN_DATEおよびJRN_SUBSCRIBER)がデータストアで使用可能になります。

- ジャーナル化フィルタもこのデータストアで自動的に生成されます。このフィルタによって、取得されるソース・データの量がジャーナル化されたデータのみに削減されます。このフィルタは、常にソースで実行されます。このフィルタはカスタマイズできます(一定の時間範囲内の変更を処理する、または特定タイプの変更のみを処理するなど)。フィルタは、マッピング・エディタの論理ダイアグラムに表示されます。特定のサブスクライバ用にすべての変更を取得するための一般的なフィルタは、JRN_SUBSCRIBER = '<subscriber_name>'です。

簡易ジャーナル化モードでは、(ジャーナル・フィルタの適用後に)マッピングによって反映されたすべての変更は、自動的にマッピングの最後に使用されたとみなされ、ジャーナルから削除されます。これらは、後続のマッピングで使用できません。

ジャーナル化されたデータを処理する場合、統合ナレッジ・モジュールのSYNC_JRN_DELETEオプションは慎重に設定してください。このオプションでは、ジャーナルで削除対象(D)としてマークされ、ジャーナル化フィルタで除外されないレコードがターゲット・データストアから削除されます。このオプションを「いいえ」に設定すると、統合操作では挿入と更新のみが処理されます。

注意:
データセット当たり1つのデータストアのみ「ジャーナル化されたデータのみ」オプションを選択できます。

変更データの使用: 一貫性セット・ジャーナル化

一貫性ジャーナル化での変更データの使用は、マッピング設計に関しては簡易ジャーナル化と同様です。ただし、セット内で変更の一貫性を確保するために、マッピングで変更データを処理する前と後に追加のステップが必要です。

これらの操作は、ジャーナル化されたモデルのコンテキスト・メニューから手動で実行することも、パッケージで自動的に実行することもできます。

変更データ使用前の操作

一貫性セット・ジャーナル化を使用する場合は、変更データの使用前に次の操作を実行する必要があります。

- ウィンドウの拡張: 一貫性ウィンドウは、参照整合性に違反することなく挿入、更新および削除を実行できる、一貫性セットのすべての表における使用可能な変更の範囲です。ウィンドウの拡張操作では、前回のウィンドウの拡張操作以降に取得した新規の変更を反映するようにこのウィンドウを計算(再計算)します。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。この操作は、他のジャーナル化操作とは別にスケジュールできます。

- サブスクライバのロック: ウィンドウの拡張は一貫性セット全体に適用されますが、サブスクライバは変更を個別に使用します。この操作では、一貫性ウィンドウの変更を対象に、1つ以上のサブスクライバに固有のスナップショットを実行します。このスナップショットには、サブスクライバにまだ使用されていない一貫性ウィンドウ内のすべての変更が含まれます。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。サブスクライバに取得された変更を使用する最初のマッピングより前に、この操作を必ず実行する必要があります。

マッピングの設計

一貫性セット・ジャーナル化の変更データも、パッケージ内で順序付けされたマッピングを使用して処理します。

一貫性セット・ジャーナル化の使用時にマッピングを設計する手順は、簡易ジャーナル化と同様です。ただし、次の点が異なります。

- (JRN_FLAG、JRN_DATEおよびJRN_SUBSCRIBERでフィルタ処理された)マッピングで反映される変更は、マッピングの最後に自動的にパージされません。これらは、後続のマッピングで再利用できます。これらの変更の使用をコミットし、不要なエントリをジャーナルから削除するには、それぞれサブスクライバのロック解除操作とジャーナルのパージ操作(後続の説明を参照)が必要です。

- 一貫性モードでは、ジャーナル化フィルタでJRN_DATE列を使用しないでください。使用された変更をこのタイムスタンプでフィルタ処理すると、変更の一貫性が確保されない場合があります。

変更データ使用後の操作

変更データの使用後に、次の操作を実行する必要があります。

- サブスクライバのロック解除: この操作では、サブスクライバのロック操作時にロックされた変更の使用をコミットします。この操作は、サブスクライバですべての変更が処理された後にのみ実行する必要があります。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。サブスクライバに取得された変更を使用する最後のマッピングより後に、この操作を必ず実行する必要があります。変更を再度処理する必要がある場合(エラーなどの場合)、この操作は実行しないでください。

- ジャーナルのパージ: サブスクライブしている変更をすべてのサブスクライバが使用した後でも、各エントリはジャーナル化表に残るため、それらを削除する必要があります。この作業は、ジャーナルのパージ操作で実行します。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。この操作は、他のジャーナル化操作とは別にスケジュールできます。

注意:
ウィンドウの拡張またはジャーナルのパージは、データストアで実行できます。この操作は、同じ一貫性セットの表における変更を異なる頻度で処理します。変更の一貫性が一貫性セット・レベルで維持されなくなる可能性があるため、このオプションは慎重に使用してください。

一貫性セットCDC操作の自動化

一貫性セットCDCの使用を自動化するには、次の操作を実行するパッケージを使用します。

1. 新規パッケージを作成します。

2. ジャーナル化対象のモデルを「モデル」ツリーからパッケージの「ダイアグラム」タブにドラッグ・アンド・ドロップします。新規パッケージのステップが表示されます。

3. パッケージ・ダイアグラムのステップ・アイコンをダブルクリックします。このステップのプロパティ・インスペクタが開きます。

4. 「タイプ」リストで、「ジャーナル化モデル」または「ジャーナル化データストア」を選択します。

5. 実行する一貫性セット操作を選択します。

6. 「サブスクライバのロック」または「サブスクライバのロック解除」操作を選択した場合は、サブスクライバ・フィールドに最初のサブスクライバを入力して「追加」ボタンをクリックし、「サブスクライバ」リストに追加します。ロックまたはロック解除するすべてのサブスクライバに対して、この操作を繰り返します。

7. 「ファイル」メニューから「すべて保存」を選択します。

注意:
データセット当たり1つのデータストアのみ「ジャーナル化されたデータのみ」オプションを選択できます。

ジャーナル化ツール

Oracle Data Integratorには、取得された変更に関する情報をリフレッシュしたり、他のプロセスを起動するためにジャーナル化で使用できる次の一連のツールが用意されています。

- OdiWaitForData: 表または一連の表の一定数の行を待機します。

- OdiWaitForLogData: ジャーナル化表またはジャーナル化表のリストで一定数の変更が発生するのを待機します。このツールは、OdiRefreshJournalCountをコールして、取得された新規の変更をカウントします。

- OdiWaitForTable: 表が作成され、事前定義された数の行が移入されるのを待機します。

- OdiRetrieveJournalData: 指定されたジャーナル化サブスクライバの特定の表リストまたはCDCセットについて、ジャーナル化イベントを取得します。データベース固有のプロセスを使用してジャーナル化表をロードする場合は、このツールをコールする必要があります。このツールは、特定のナレッジ・モジュールとともに使用する必要があります。詳細は、ナレッジ・モジュールの説明を参照してください。

- OdiRefreshJournalCount: 指定されたジャーナル化サブスクライバの特定の表リストまたはCDCセットで使用する行数をリフレッシュします。

これらの機能の詳細は、Oracle Data Integratorツール・リファレンスを参照してください。

ジャーナル化を使用するためのパッケージ・テンプレート

ジャーナル化されたデータを使用するパッケージを設計する場合は、多くのテンプレートを使用できます。次に、一般的なテンプレートをいくつか示します。パッケージ作成の詳細は、第7章「パッケージの作成および使用」を参照してください。

テンプレート1: 1つの単純なパッケージ(一貫性セット)

- ステップ1: ウィンドウの拡張 + サブスクライバのロック

- ステップ2からn-1: ジャーナル化されたデータを使用するマッピング

- ステップn: サブスクライバのロック解除 + ジャーナルのパージ

このパッケージは、すべての変更を処理するように毎分スケジュールされます。このテンプレートは、ジャーナル化表に定期的に変更が発生する場合に適しています。

テンプレート2: 1つの単純なパッケージ(簡易ジャーナル化)

ステップ1からn: ジャーナル化されたデータを使用するマッピング

このパッケージは、すべての変更を処理するように毎分スケジュールされます。このテンプレートは、ジャーナル化表に定期的に変更が発生する場合に適しています。

テンプレート3: OdiWaitForLogDataの使用(一貫性セットまたは簡易)

- ステップ1: OdiWaitForLogData。指定された間隔の経過後に新規ログ・データが検出されない場合、パッケージは終了します。

- ステップ2: OdiStartScenを使用して、テンプレート1または2と同等のシナリオを実行します

このパッケージは、定期的にスケジュールされます。変更データが処理されるのは、新規の変更が検出された場合のみです。これによって、ジャーナル化表に不定期に変更が発生する場合に不要な処理を回避できます(つまり、処理するデータのないマッピングを実行せずに済みます)。

テンプレート4: 個別のプロセス(一貫性セット)

このテンプレートでは、一貫性ウィンドウ、パージ、および(2つの異なるサブスクライバでの)変更の使用を異なるパッケージに分割します。

パッケージ1: ウィンドウの拡張

- ステップ1: OdiWaitForLogData。指定された間隔の経過後に新規ログ・データが検出されない場合、パッケージは終了します。

- ステップ2: ウィンドウの拡張。

このパッケージは、毎分スケジュールされます。ウィンドウの拡張によって、リソースを消費する可能性があります。この操作は新規データが発生した場合にのみ起動することをお薦めします。

パッケージ2: ジャーナルのパージ(週末)

ステップ1: ジャーナルのパージ

このパッケージは、毎週金曜日に1回スケジュールされます。週全体のジャーナルが追跡されます。

パッケージ3: サブスクライバAに対する変更の処理

- ステップ1: サブスクライバAのロック

- ステップ2からn-1: サブスクライバAのジャーナル化されたデータを使用するマッピング

- ステップn: サブスクライバAのロック解除

このパッケージは、毎分スケジュールされます。このようなパッケージは、MOMでイベントを生成する場合などに使用します。

パッケージ4: サブスクライバBに対する変更の処理

- ステップ1: サブスクライバBのロック

- ステップ2からn-1: サブスクライバBのジャーナル化されたデータを使用するマッピング

- ステップn: サブスクライバBのロック解除

このパッケージは、毎日スケジュールされます。このようなパッケージは、夜間に変更データをデータ・ウェアハウスにロードする場合などに使用します。

5 共通フォーマット・デザイナを使用したデータ・モデルの作成

この章では、Oracle Data Integratorの共通フォーマット・デザイナ機能を使用して、データ・モデルを他のモデルの要素を集約して作成する方法について説明します。モデルの実装をデータ・サーバーに作成または更新するためのDDLスクリプトの生成方法、およびモデルとの間でデータをロードするマッピングを自動的に生成する方法についても詳細に説明します。

この章には次の項が含まれます:

- 共通フォーマット・デザイナの概要

- ダイアグラムの使用

- DDLスクリプトの生成

- マッピングIN/OUTの生成

共通フォーマット・デザイナの概要

共通フォーマット・デザイナ(CFD)を使用すると、Oracle Data Integratorでデータ・モデルを迅速に設計できます。データ・モデルは、完全な新規モデルとして設計することも、他のデータ・モデルの要素を使用して構築することもできます。CFDでは、このモデルをデータ・サーバーに実装するためのデータ定義言語(DDL)スクリプトを自動生成できます。

たとえば、共通フォーマット・デザイナを使用して、異機種ソースを集約し、業務用のデータストア、データマートまたはマスター・データの基準となる形式を作成できます。

CFDを使用すると、ユーザーは、既存のモデルを変更して、Oracle Data Integratorで記述されているデータ・モデルとデータ・サーバーの実装の間に存在する差異を同期するためのDDLスクリプトを自動的に生成できます。

ダイアグラムの概要

ダイアグラムは、サブモデル(またはデータ・モデル)に格納されたデータストアのサブセットのグラフィカル・ビューです。データ・モデルには、関連する複数のダイアグラムを含めることができます。

ダイアグラムは次のように構築します:

- モデルおよびサブモデルからデータストアを集約します。

- 空のデータストアを作成し、その中に新規属性を作成するか、他のデータストアから属性を集約します。

他のモデルからデータストアと属性を集約する理由

他のモデルまたはサブモデルからダイアグラムにデータストアと属性を集約すると、Oracle Data Integratorによって、ダイアグラムに追加されたデータストアまたは属性の元のデータが追跡されます。元のデータストアおよび属性に対する参照によって、Oracle Data Integratorでは、集約されたデータストアに対するマッピングを自動的に生成できます(マッピングIN)。

自動マッピング生成は、他のモデルのデータストアおよび属性から作成されていないデータストアと属性をロードする場合には機能しません。ただし、マッピングを手動で作成することや、自動マップされていない属性に対して生成されたマッピングを完成させることは可能です。

グラフィカル・シノニム

ダイアグラムでは、データストアはグラフィカル・シノニムとして複数表示される場合があります。シノニムは、データストアのグラフィカル表現です。グラフィカル・シノニムを使用すると、ダイアグラムが見やすくなります。

ダイアグラムからデータストアを削除する場合は、デザイナによって、シノニムを削除するのか(データストアは残ります)、データストア自体を削除するのか(そのデータストアのすべてのシノニムが削除されます)の選択が求められます。

ダイアグラムの各参照は、データストアのグラフィカル・シノニムに関連付けられます。グラフィカル・シノニムは自由に作成することが可能で、参照のグラフィカル表現は、その参照に関連するデータストアの任意のグラフィカル・シノニムに移動できます。

ダイアグラムの使用

ダイアグラムでは、そのダイアグラムから直接使用できるポップアップ・メニューを使用して、ダイアグラムに表示されるすべてのモデル要素(データストア、属性、参照、フィルタなど)を編集できます。ダイアグラムに加えた変更は、即座にモデルに適用されます。

新規ダイアグラムの作成

新規のダイアグラムを作成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ダイアグラムを作成するデータ・モデルまたはサブモデルを展開し、「ダイアグラム」ノードを選択します。

2. 右クリックして「新規ダイアグラム」を選択し、ダイアグラム・エディタを開きます。

3. ダイアグラム・エディタの「定義」タブで、ダイアグラムの「名前」と「説明」を入力します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

モデルの「ダイアグラム」ノードの下に、新規ダイアグラムが表示されます。

データストアおよび属性の作成

ダイアグラムに既存のデータストアを挿入するには:

1. モデルのノードの下にある「ダイアグラム」ノードでダイアグラムをダブルクリックし、ダイアグラム・エディタを開きます。

2. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

3. デザイナ・ナビゲータで、「モデル」ツリーからデータストアを選択します。

4. このデータストアをダイアグラムにドラッグします。現在のモデルまたはサブモデルとは異なるモデルまたはサブモデルからデータストアをドラッグすると、デザイナによって、そのデータストアのコピーを現在のモデルに作成するように求められます。このデータストアがダイアグラムにすでに存在している場合は、Oracle Data Integratorによって、新規グラフィカル・シノニムを作成するか、そのデータストアの複製を作成するかの選択が求められます。

データストアの新規グラフィカル・シノニムがダイアグラムに表示されます。別のモデルからデータストアを追加した場合、または複製を作成した場合は、新規データストアがモデルに表示されます。

ダイアグラムに挿入された表と表の間に元のモデルで参照(結合)が存在する場合は、それらの参照もコピーされます。

ダイアグラムですでにあるデータストアのグラフィカル・シノニムを作成するには、そのデータストアのポップアップ・メニューで「グラフィカル・シノニムの作成」を選択します。

ダイアグラムで新規のデータストアを作成するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. ダイアグラム・エディタで、「データストアの追加」をクリックします。

3. ダイアグラム・ワークベンチをクリックします。

4. この新規データストアのエディタが表示されます。データストアの作成については、第3章「データ・モデルおよびデータストアの作成および使用」で説明している手順に従ってください。

他のデータストアから属性を追加するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. デザイナ・ナビゲータの「モデル」ツリーで、データストアの下にある属性を選択します。

3. この属性を挿入先のダイアグラムのデータストアにドラッグします。この新しい属性を編集するための属性エディタが表示されます。必要に応じて属性を編集します。

4. 「ファイル」メイン・メニューから「保存」を選択します。新規属性がデータストアに追加されます。

グラフィカル・シノニムの作成

データストアのグラフィカル・シノニムを作成するには:

1. 「ダイアグラム」タブで、データストアを選択します。

2. 右クリックして「グラフィカル・シノニムの作成」を選択します。

新規のグラフィカル・シノニムがダイアグラムに表示されます。

この操作で新規データストアは追加されません。ダイアグラムに作成されるのは、データストアの新規表現のみです。

制約およびフィルタの作成および編集

データストアに新規条件、フィルタ、キーを追加するには:

1. 「ダイアグラム」タブで、データストアを選択します。

2. 右クリックして、「キーの追加」、「フィルタの追加」などの適切なオプションを選択します。

3. 新規条件、フィルタ、キーなどに対応した新規エディタが表示されます。この要素の作成については、第3章「データ・モデルおよびデータストアの作成および使用」で説明している手順に従ってください。

条件、フィルタおよび参照がダイアグラムに追加されるのは、それらを参照するデータストアをダイアグラムに追加した場合です。ダイアグラムに追加したデータストアに、これらのオブジェクトを追加した場合は、これらのオブジェクトをダイアグラムにドラッグできます。

属性のキーを編集するには:

属性がキー(主キーまたは代替キー)の一部である場合は、ダイアグラムの属性でキーを編集できます。

1. 「ダイアグラム」タブで、キーに関連する属性のいずれかを選択します。

2. 右クリックしてポップアップ・メニューでキーの名前を選択し、サブメニューで「編集」を選択します。

2つのデータストア間の参照を作成するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. ツールバーで、「参照の追加」ボタンをクリックします。

3. 参照の最初のデータストアをクリックし、マウス・ボタンを押しながら2番目のデータストアにカーソルをドラッグします。

4. マウス・ボタンを放します。参照エディタが表示されます。

5. 第3章「データ・モデルおよびデータストアの作成および使用」で説明している手順に従って、参照のパラメータを設定します。

参照を別のグラフィカル・シノニムに移動するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. 「ダイアグラム」タブで、変更する参照を選択します。

3. 右クリックして「表示オプション」を選択します。

4. 参照の親および子として使用するシノニムを選択します。

5. 「OK」をクリックします。選択したシノニムに参照表現が表示されます。

この操作では、参照自体は変更されません。変更されるのは、ダイアグラム内の表現のみです。

ダイアグラムの印刷

ダイアグラムを保存すると、PNG形式での保存、ダイアグラムの印刷、または完全なPDFレポートの生成を実行できます。

ダイアグラム・レポートを印刷または生成するには:

1. ダイアグラムの「ダイアグラム」タブで、「ダイアグラム」メニューから「印刷オプション」を選択します。

2. データ・モデル印刷エディタで、次のオプションのいずれかを必要に応じて選択します。

- 完全なPDFレポートの生成

- ダイアグラムをPNGで保存

- ダイアグラムの印刷

3. 「OK」をクリックします。

注意:
別の場所を指定しない場合、PDFファイルとPNGファイルは、ユーザー・プリファレンスで指定したデフォルトの場所に保存されます。これらの値を設定するには、「ツール」メニューから「プリファレンス」オプションを選択します。「ODI」ノードを展開し、次にシステム・ノードを展開して、「レポート」を選択します。デフォルトのPDF生成ディレクトリおよびダイアグラム(PNG)を保存するためのディレクトリの場所を入力(または検索)します。

DDLスクリプトの生成

データ・サーバーのデータ構造が変更された場合は、通常、Oracle Data Integratorで増分リバースエンジニアリングを実行し、データ・サーバーから新規メタデータを取得します。

Oracle Data Integratorでダイアグラムまたはデータ・モデルを設計または変更した場合は、モデル実装を格納しているデータ・サーバーにそのデータ・モデルまたは変更内容を実装する必要があります。この操作は、DDLスクリプトで実行されます。DDLスクリプトは、DDLコマンド(create tableやalter tableなど)を含むOracle Data Integratorプロシージャの形式で生成されます。このプロシージャは、変更内容を適用するためにデータ・サーバーで実行できます。

DDL生成では、表およびシステム表の2つのタイプのデータストアがサポートされます。

注意:
DDLスクリプトのテンプレートは、アクション・グループとして定義されます。DDLスクリプトの生成を開始する前に、モデルのテクノロジに対応する適切なアクション・グループが存在することをトポロジ・ナビゲータで確認してください。アクション・グループの詳細は、Oracle Data Integratorナレッジ・モジュール開発者ガイドを参照してください。

DDLスクリプトを生成する前に

場合によっては、データ・モデルには定義されているがデータベースには定義されていない制約が「DDLの生成」エディタに表示されません。これらの条件が「DDLの生成」エディタに確実に表示されるように、次の作業を行います。

- キー: キー・エディタの「制御」タブで、「データベースで定義済」と「アクティブ」を選択します

- 参照: 「参照」エディタの「定義」タブで、「データベースで定義済」を選択します

- 条件: 「条件」エディタの「制御」タブで、「データベースで定義済」と「アクティブ」を選択します

DDLスクリプトの生成

DDLスクリプトを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、DDLスクリプトを生成するデータ・モデルを選択します。

2. 右クリックして「DDLの生成」を選択します。「Oracle Data IntegratorモデルのDDLを生成」ダイアログが表示されます。

3. 「DDLの生成」ダイアログで、Oracle Data Integratorモデルに存在する表のみを処理する場合は「はい」をクリックし、そうでない場合は「いいえ」をクリックすると、モデルに存在しない表も含まれます。
Oracle Data Integratorによってデータ・サーバーからデータ構造の現在の状態が取得され、モデル定義と比較されます。ステータス・バーに進行状況が表示されます。差異が検出された状態のDDLの生成エディタが表示されます。

4. DDLスクリプト生成で使用する「アクション・グループ」を選択します。

5. 「検索」をクリックし、プロシージャを作成する「生成フォルダ」を選択します。

6. フォルダを選択し、「OK」をクリックします。

7. 「フィルタ」チェック・ボックスを使用して、表示する変更のタイプをフィルタ処理します。

8. 「同期化」オプションを選択して、適用する変更内容を選択します。次のアイコンは、変更のタイプを示しています。

- -: データ・モデルには存在するが、データ・サーバーには存在しない要素

- +: データ・サーバーには存在するが、データ・モデルには存在しない要素

- =: データ・モデルとデータ・サーバーの両方に存在するが、プロパティ(列のサイズ変更など)または関連する要素(新規列を含む表など)が異なる要素

9. 「OK」をクリックしてDDLスクリプトを生成します。

Oracle Data Integratorによって、プロシージャにDDLスクリプトが生成され、このプロシージャに対するプロシージャ・エディタが開きます。

マッピングIN/OUTの生成

共通フォーマット・デザイナを使用して集約された特定のモデルまたはデータストアについて、Oracle Data Integratorでは次のオブジェクトを生成できます。

- マッピングIN: これらのマッピングは、他のデータストアまたは属性から集約したモデルのデータストアをロードする際に使用します。元のデータストアからコンポジット・データストアにデータをマージする統合プロセスです。

- マッピングOUT: これらのマッピングは、モデルのデータストアからデータを抽出する際に使用します。これらは、モデルのデータストアをすでにロードしているマッピング(マッピングINを含む)を使用して生成されます。これらのインタフェースによって、統合プロセスが反転され、コンポジット・データストアのデータが元のデータストアに伝播されます。

たとえば、AIH (Active Integration Hub)は、他の複数のアプリケーションから取得した情報を集約します。それは、複数のデータ・モデルに基づいて作成され、ダイアグラムに集約されるコンポジット・データストアで構成されます。AIHは、マッピングINを使用してロードします。また、マッピングOUTを使用して元のシステムにデータを送信できます。

マッピングINを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、マッピングを生成するデータ・モデルまたはデータストアを選択します。

2. 右クリックして「マッピングINの生成」を選択します。Oracle Data Integratorによって、現在のモデルまたはデータストアの作成に使用された元のデータストアと属性が検索されます。マッピングINを生成できるデータストアのリストを含むマッピングINの生成エディタが表示されます

3. マッピングの「最適化コンテキスト」を選択します。このコンテキストによって、生成されたマッピングのフローの表示方法およびKMの自動化された選択肢の調整方法が定義されます。

4. 「検索」ボタンをクリックし、マッピングを生成する「生成フォルダ」を選択します。

5. 「候補データストア」表で、ロードするデータストアの「マッピングの生成」オプションを選択します。

6. 「マッピング名」列の内容を編集して、統合マッピングの名前を変更します。

7. 「OK」をクリックします。マッピングの生成が開始されます。

生成されたマッピングが指定したフォルダに表示されます。

注意:
自動的に生成されるマッピングは、事前定義されたルールを使用し、リポジトリ・メタデータに基づいて作成されます。これらのマッピングは即座に実行できません。実行する前に慎重に確認して変更する必要があります。

注意:
マッピングINの生成時にデータストア候補が見つからない場合は、ロードしようとしているデータストアが他のデータストアまたは属性から作成されていない可能性があります。自動マッピング生成は、他のモデルのデータストアおよび属性から作成されていないデータストアと属性をロードする場合には機能しません。

マッピングOUTを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、マッピングを生成するデータ・モデルまたはデータストアを選択します。

2. 右クリックして「マッピングOUTの生成」を選択します。Oracle Data Integratorによって、それらのデータストアをロードする既存のマッピングが検索されます。マッピングOUTを生成できるデータストアのリストを含むマッピングOUTの生成エディタが表示されます。

3. マッピングの「最適化コンテキスト」を選択します。このコンテキストによって、生成されたマッピングのフローの表示方法およびKMの自動化された選択肢の調整方法が定義されます。

4. 「検索」ボタンをクリックし、マッピングを生成する「生成フォルダ」を選択します。

5. 「候補データストア」で、「生成」および「マッピングの生成」チェック・ボックスを選択し、既存のマッピングのターゲット・データストアからロードするデータストア候補の一部または全部を選択します。

6. 「マッピング名」列の内容を編集して、統合マッピングの名前を変更します。

7. 「OK」をクリックします。マッピングの生成が開始されます。

生成されたマッピングが指定したフォルダに表示されます。

注意:
自動的に生成されるマッピングは、利用可能なメタデータを使用して作成されるため、常に期待どおりのルールをレンダリングするとはかぎりません。これらのマッピングは、実行する前に慎重に確認して変更する必要があります。

注意:
マッピングOUTの生成時にデータストア候補が見つからない場合は、マッピングOUTを生成するように選択したデータストアをロードするマッピングが存在しない可能性があります。データストアに基づくマッピングOUTは、そのデータストアをロードするマッピングから生成されます。データストアをロードする有効なマッピングが存在しない場合、そのデータストアに基づく伝播マッピングは生成できません。

第III部

統合プロジェクトの開発

この部では、Oracle Data Integratorでの統合プロジェクトの開発方法について説明します。

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

- 第6章「統合プロジェクトの作成」

- 第7章「パッケージの作成および使用」

- 第8章「マッピングの作成および使用」

- 第9章「互換性モードの使用」

- 第10章「プロシージャ、変数、順序およびユーザー関数の作成および使用」

- 第11章「シナリオの使用」

- 第12章「ロード計画の使用」

- 第13章「Webサービスの使用方法」

- 第14章「ショートカットの使用」

6 統合プロジェクトの作成

この章では、統合プロジェクトに関係する様々なコンポーネントについて説明し、プロジェクトの開始方法についても説明します。

この章には次の項が含まれます:

- 統合プロジェクトの概要

- 新しいプロジェクトの作成

- ナレッジ・モジュールの管理

- フォルダを使用したプロジェクトの編成

統合プロジェクトの概要

1つの統合プロジェクトに複数のタイプのコンポーネントが含まれることがあります。これらのコンポーネントには、フォルダなどの編成用オブジェクト、マッピングや変数などの開発オブジェクトがあります。統合プロジェクトに関係する様々なコンポーネントの詳細は、「Oracle Data Integratorプロジェクトのコンポーネント」を参照してください。

プロジェクトには、ユーザーの作業に適応するライフ・サイクルも定義されています。プロジェクトの一般的なライフ・サイクルについては、「プロジェクトのライフ・サイクル」を参照してください。

Oracle Data Integratorプロジェクトのコンポーネント

プロジェクトに関係するコンポーネントには、プロジェクトに保持するコンポーネントと、プロジェクトで参照するグローバル・コンポーネントがあります。さらに、プロジェクトでは、モデルやトポロジで定義されているコンポーネントも使用します。

Oracle Data Integratorプロジェクトのコンポーネント

次のコンポーネントはプロジェクト内に格納されます。これらは、デザイナ・ナビゲータの「プロジェクト」アコーディオンにある、そのプロジェクトのノードに表示されます。

フォルダ

フォルダは、プロジェクトの作業を編成する際に役立つコンポーネントです。フォルダには、パッケージ、マッピング、プロシージャおよびサブフォルダが含まれます。

パッケージ

パッケージは、実行ダイアグラム内に編成された一連のステップで構成されるワークフローです。パッケージによって、プロジェクトの他のコンポーネント(マッピング、プロシージャ、変数など)が整理され、参照されます。パッケージの詳細は、第7章「パッケージの作成および使用」を参照してください。

マッピング

マッピングは、再使用可能なデータ・フローです。1つ以上のソース・データストアからの1つ以上のターゲット・データストアのロードを記述した宣言的ルールのセットです。マッピングおよび再使用可能マッピングの詳細は、第8章「マッピングの作成および使用」を参照してください。

プロシージャ

プロシージャは、マッピングの概念に適合しない一連の操作をグループ化した、再使用可能なコンポーネントです。

プロシージャの例:

- 待機してファイルを解凍する

- FTPを介してファイルを一括送信する

- 電子メールを受信する

- データベースをパージする

変数

変数の値はOracle Data Integratorに格納されます。この値は、実行中に変化する可能性があります。

順序

順序は、使用時に自動的に増分される変数です。その値は、前に使用されてから次に使用されるまで持続します。

ユーザー関数

ユーザー関数を使用すると、テクノロジ依存の実装を定義する場合に、カスタマイズされた関数や関数の別名を定義できます。マッピングおよびプロシージャで使用できます。

前述のコンポーネントの詳細は、第10章「プロシージャ、変数、順序およびユーザー関数の作成および使用」を参照してください。

ナレッジ・モジュール

Oracle Data Integratorでは、プロジェクト設計の様々な局面でナレッジ・モジュールを使用します。ナレッジ・モジュールは、特定のテクノロジに関連するコード・テンプレートであり、特定の機能(データのロード、リバースエンジニアリング、ジャーナル化)を提供します。

マーカー

プロジェクトのコンポーネントには、その概要説明や編成を反映するためにフラグを指定できます。フラグは、マーカーを使用して定義します。これらのマーカーは、グループに編成し、プロジェクト内のほとんどのオブジェクトに適用できます。詳細は、第16章「統合プロジェクトの編成およびドキュメント化」を参照してください。

シナリオ

開発が完了したパッケージ、マッピング、プロシージャまたは変数コンポーネントはシナリオにコンパイルされます。シナリオは、本番用の実行単位で、自動的に実行されるようにスケジュールできます。シナリオの詳細は、第11章「シナリオの使用」を参照してください。

グローバル・コンポーネント

グローバル・コンポーネントは、プロジェクト・オブジェクトと類似しています。主な相違点はその有効範囲にあります。グローバル・コンポーネントにはグローバル有効範囲があるため、すべてのプロジェクトで使用できます。グローバル・オブジェクトには、変数、ナレッジ・モジュール、順序、マーカー、再使用可能マッピングおよびユーザー関数が含まれます。

プロジェクトのライフ・サイクル

プロジェクトのライフ・サイクルは、開発チームの方法論や組織によって異なります。統合オブジェクトを作成、使用および保守する際は、次の手順をガイドラインとして考慮してください。

1. 新規プロジェクトを作成し、そのプロジェクトに適したナレッジ・モジュールをインポートします。

2. フォルダ、マーカーおよびドキュメントを使用してプロジェクトの組織と作業を定義します。

3. 再使用可能なコンポーネント(マッピング、プロシージャ、変数、順序)を作成します。単位テストを実行します。

4. これらのコンポーネントをパッケージにまとめます。統合テストを実行します。

5. 作業をシナリオにリリースします。

6. オプションで、シナリオをロード計画に編成します。第12章「ロード計画の使用」を参照してください。

新規プロジェクトの作成

プロジェクトを作成するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンのツールバーにある「新規プロジェクト」をクリックします。

2. プロジェクトの「名前」を入力します。

3. 自動的に生成されたプロジェクト・コードをそのまま使用するか変更します。このコードはこのプロジェクト内のオブジェクトの識別に使用されるため、簡潔な文字列を使用することをお薦めします。たとえば、プロジェクト名がCorporate Datawarehouseの場合は、簡潔なコードとしてCORP_DWHを使用できます。

4. 「ファイル」メニューから「保存」をクリックします。

「プロジェクト」ツリーに、空のフォルダが1つある新規プロジェクトが表示されます。

ナレッジ・モジュールの管理

ナレッジ・モジュール(KM)は、Oracle Data Integratorの統合テクノロジのコンポーネントです。KMには、ODIが特定のテクノロジまたはテクノロジのセットに対する特定の組合せのタスクを実行するために必要な知識が含まれています。

Oracle Data Integratorでは、6つの異なるタイプのナレッジ・モジュールを使用します。

- RKM(リバース・ナレッジ・モジュール)は、特定のテクノロジのデータ・モデルについて、カスタマイズされたリバースエンジニアリングを実行するために使用します。このKMはデータ・モデルで使用します。第3章「データ・モデルおよびデータストアの作成および使用」を参照してください。

- LKM(ロード・ナレッジ・モジュール)は、ソース・システム(ファイル、ミドルウェア、データベースなど)からデータを抽出するために使用します。これらのKMはマッピングで使用されます。第8章「マッピングの作成および使用」を参照してください。

- JKM(ジャーナル化ナレッジ・モジュール)は、変更追跡用にソース・データベースのデータ変更(挿入、更新および削除)のジャーナルを作成するために使用します。このKMは、データ・モデルでチェンジ・データ・キャプチャに対して使用します。第4章「ジャーナル化の使用」を参照してください。

- IKM(統合ナレッジ・モジュール)は、ターゲット表にデータを統合(ロード)するために使用します。これらのKMはマッピングで使用されます。第8章「マッピングの作成および使用」を参照してください。

- CKM(チェック・ナレッジ・モジュール)は、ソースおよびターゲットの制約違反がないことをチェックするために使用します。これらのKMは、データ・モデルの静的チェックおよびマッピングのフロー・チェックで使用します。第3章「データ・モデルおよびデータストアの作成および使用」と第8章「マッピングの作成および使用」を参照してください。

- SKM(サービス・ナレッジ・モジュール)は、データ・サービスの作成に必要なコードを生成するために使用します。このKMはデータ・モデルで使用します。詳細は、『Oracle Data Integratorの管理』のデータ・サービスの生成およびデプロイに関する項を参照してください。

プロジェクトおよびグローバル・ナレッジ・モジュール

ナレッジ・モジュールは、プロジェクト・ナレッジ・モジュールまたはグローバル・ナレッジ・モジュールとして作成して使用できます。グローバル・ナレッジ・モジュールはすべてのプロジェクトで使用できますが、プロジェクト・ナレッジ・モジュールはそのプロジェクト・ナレッジ・モジュールをインポートしたプロジェクトでのみ使用できます。

グローバルKMは「グローバル・オブジェクト」アコーディオンのデザイナ・ナビゲータにリストされ、プロジェクトKMはインポートしたプロジェクトの下に表示されます。ナレッジ・モジュールのインポート方法の詳細は、「オブジェクトのインポート」を参照してください。

ODIには、常に存在し、インポートする必要がない組込みKMも用意されています。すべての組込みKMはLKMまたはIKMタイプで、Oracleテクノロジ、ファイル・テクノロジおよび汎用テクノロジに対応しています。組込みKMの詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

グローバルKMを使用する場合は、次のことに注意してください:

- グローバルKMは、グローバル・オブジェクトのみを参照する必要があります。プロジェクト・オブジェクトは許可されていません。

- グローバルKMにタグを付ける場合、使用できるのはグローバル・マーカーのみです。

- プロジェクトKMからグローバルKMへの変換、またはその逆への変換は許可されません。

- グローバルKMを変更すると、その変更内容はナレッジ・モジュールを使用しているすべてのODIオブジェクトに表示されます。

- グローバルKMを削除するときは注意してください。KMが存在しないと実行エラーが発生します。

- グローバルKMとプロジェクトKMが一緒にリストされる場合は、グローバルKMとプロジェクトKMを区別するために、グローバルKMの名前に接頭辞GLOBALが使用されます。

- グローバルKMとプロジェクトKMが表示される順序は、コンテキストによって変わります:

- マッピング・エディタのKMセレクタのリストには、最初にプロジェクトKM、次にグローバルKMが表示されます。GLOBALまたはPROJECT_CODE接頭辞が使用されます。

- モデル・エディタのKMセレクタのリストには、最初にグローバルKM、次にプロジェクトKMが表示されます。GLOBALまたはPROJECT_CODE接頭辞が使用されます。

ナレッジ・モジュールの命名規則

Oracle Data IntegratorのKMは、KMの選択を容易にするための規則に従って命名されています。この命名規則は、次のとおりです:

ロード・ナレッジ・モジュール

ロード・ナレッジ・モジュールの命名規則は次のとおりです。LKM <ソース・テクノロジ> to <ターゲット・テクノロジ> [(ロード・メソッド)]。

この命名規則で、ソース・テクノロジとターゲット・テクノロジは、このLKMで管理できるデータ移動のソースとターゲットを示します。テクノロジがSQLの場合、このテクノロジはJDBCおよびSQLをサポートする任意のテクノロジです。テクノロジがJMSの場合、このテクノロジはJMS接続をサポートする任意のテクノロジです。

ロード・メソッドは、データを移動する際に使用する技術的なメソッドです。このメソッドは、関係するテクノロジに固有のものです。メソッドが指定されていない場合は、標準のJava接続(JDBCやJMSなど)が技術的なメソッドとして使用され、データはランタイム・エージェントを介してロードされます。ソースまたはターゲット(あるいはその両方)のテクノロジに固有のロード・メソッドが指定されたKMを使用すると、通常はパフォーマンスが向上します。

LKMの例を次に示します。

- LKM Oracle to Oracle (DBLink): Oracle DBLinkを使用して、Oracleデータ・サーバーから別のOracleデータ・サーバーにデータをロードします。

- LKM File to Oracle (SQLLDR): SQLLoaderを使用して、ファイルからOracleデータ・サーバーにデータをロードします。

- LKM SQL to SQL (Built-In): SQLをサポートする異なるデータ・サーバー間でデータをロードします。これは最も汎用的なロード・ナレッジ・モジュールで、ほとんどのデータ・サーバーに対して使用できます。

統合ナレッジ・モジュール

命名規則は次のとおりです。IKM [<staging technology>] to <target technology> [<integration mode>] [(<integration method>)]。

この命名規則で、ターゲット・テクノロジは、データの統合先となるターゲットのテクノロジを示します。IKMでは、ターゲットとステージング領域のサーバーが異なる場合に、ステージング・テクノロジを指定できます。このようなKMを複数テクノロジIKMと呼びます。それらは、ターゲットをステージング領域として使用できない場合に使用します。たとえば、ファイル・テクノロジの場合がこれに該当します。

統合モードは、データ・フローからターゲットにレコードを統合する際に使用するモードです。一般的なモードは次のとおりです。

- 追加(Append): フローからターゲットにレコードを挿入します。挿入する前に、必要に応じてターゲットのすべてのレコードを削除することも可能です。既存のレコードは更新されません。

- 制御付き追加(Control Append): 前述のモードと同じですが、プロセスでデータ・フローがチェックされます。

- 増分更新(Incremental Update): 前述のモードと同じですが、既存のレコードをフローのデータで更新することが可能です。

- 緩やかに変化するディメンション(Slowly Changing Dimension): タイプ2の緩やかに変化するディメンション(SCD)を使用してデータを表に統合します。

統合メソッドは、データをターゲットに統合する際に使用する技術的なメソッドです。このメソッドは、関係するテクノロジに固有のものです。メソッドが指定されていない場合は、標準のJava接続(JDBCやJMSなど)およびSQL言語が技術的なメソッドとして使用されます。特定のテクノロジに固有の統合メソッドが指定されたKMを使用すると、通常はパフォーマンスが向上します。

IKMの例を次に示します。

- IKM Oracle Merge: 増分更新モードを使用して、Oracleステージング領域から同じデータ・サーバーにあるOracleターゲットにデータを統合します。このKMではOracleの表のマージ機能を使用します。

- IKM SQL to File Append: SQL対応のステージング領域からファイルにデータを統合します。追加モードを使用します。

- IKM SQL Incremental Update: SQL対応のステージング領域から同じデータ・サーバーにあるターゲットにデータを統合します。このIKMは、ステージング領域がターゲットと同じデータ・サーバーに存在するすべてのケースに適しており、ほとんどのテクノロジに対して使用できます。

- IKM SQL to SQL Append: SQL対応のステージング領域から別のSQL対応のデータ・サーバーにあるターゲットにデータを統合します。このIKMは、ステージング領域がターゲットと異なるサーバーに存在するケースに適しており、ほとんどのテクノロジに対して使用できます。

チェック・ナレッジ・モジュール

チェック・ナレッジ・モジュールの命名規則は次のとおりです。CKM <ステージング・テクノロジ>。

この命名規則で、ステージング・テクノロジは、チェック対象のデータが存在するステージング領域のテクノロジです。

CKMの例を次に示します。

- CKM SQL: ステージング領域がSQL対応のデータ・サーバーにある場合に統合フローの品質をチェックします。これは最も汎用的なチェック・ナレッジ・モジュールで、ほとんどのテクノロジに対して使用できます。

- CKM Oracle: ステージング領域がOracleデータ・サーバーにある場合に統合フローの品質をチェックします。

リバースエンジニアリング・ナレッジ・モジュール

リバースエンジニアリング・ナレッジ・モジュールの命名規則は次のとおりです。RKM <リバース対象テクノロジ> [(リバース・メソッド)]。

この命名規則で、リバース対象テクノロジは、リバースエンジニアリングするデータ・モデルのテクノロジです。リバース・メソッドは、リバースエンジニアリング・プロセスを実行する際に使用する技術的なメソッドです。

RKMの例を次に示します。

- RKM Oracle: Oracleデータ・モデルをリバースエンジニアリングします。

- RKM Netezza: Netezzaデータ・モデルをリバースエンジニアリングします。

ジャーナル化ナレッジ・モジュール

ジャーナル化ナレッジ・モジュールの命名規則は次のとおりです。JKM <ジャーナル化対象テクノロジ> <ジャーナル化モード> (<ジャーナル化メソッド>)。

この命名規則で、ジャーナル化対象テクノロジは、チェンジ・データ・キャプチャをアクティブ化する対象のテクノロジです。ジャーナル化モードは、一貫性(Consistent)または簡易(Simple)です。これらのモードの詳細は、第4章「ジャーナル化の使用」を参照してください。

ジャーナル化メソッドは、変更を取得するための技術的なメソッドです。指定されていない場合は、取得プロセスを実行するメソッドとしてトリガーが使用されます。

JKMの例を次に示します。

- JKM Oracle to Oracle Consistent (OGG Online): Oracleステージング・サーバーで一貫性セット・ジャーナル化のインフラストラクチャを作成し、Oracleソースからこのステージング・サーバーへデータをレプリケートするためのOracle GoldenGateの構成を生成します。

- JKM Oracle Simple: トリガーを使用して、CDCをOracleに対して簡易モードで有効化します。

- JKM MSSQL Simple: トリガーを使用して、Microsoft SQL Server表の簡易ジャーナル化用のジャーナル化インフラストラクチャを作成します。

サービス・ナレッジ・モジュール

サービス・ナレッジ・モジュールの命名規則は次のとおりです。SKM <データ・サーバー・テクノロジ>。

この命名規則で、データ・サーバー・テクノロジは、Webサービスを使用してアクセスするデータが格納されているテクノロジです。

適切なナレッジ・モジュールの選択

Oracle Data Integratorには、多岐にわたる即時利用可能なナレッジ・モジュールが用意されています。統合プロジェクトを開始する際は、まずODI 12cで導入された組込みKMを使用し、プロジェクトの必要に応じて追加のナレッジ・モジュールをインポートできます。

プロジェクトの設定後に追加のKMをインポートしたり、使用するKMを後で変更することも可能です。次のガイドラインを使用すると、新規プロジェクトの開始時に適切なKMを選択できます。

- 汎用KMを使用してプロジェクトを開始します。SQL KMはほとんどすべてのテクノロジに対して使用できます。使用するソース/ターゲット・テクノロジに慣れていない場合は、標準のSQLを使用する汎用SQL KMでプロジェクトを開始できます。単純なプロジェクトは、汎用KM (LKM File to SQL、LKM SQL to SQL (Built-In)、IKM SQL to SQL Append、IKM SQL Insert、CKM SQL)を使用して開始できます。

- 単純なKMを使用してプロジェクトを開始します。統合対象のテクノロジに慣れていない場合は、複雑な統合メソッドやモードを使用するKMでプロジェクトを開始しないでください。

- パフォーマンス向上のために、ソース/ターゲットの組合せに適したKMを選択します。選択したKMがテクノロジの組合せに固有であればあるほど、パフォーマンスが向上します。最適なパフォーマンスを得るには、ソース/ターゲットの組合せに適合したKMに切り替えて、そのソース/ターゲットの機能を活用してください。

- インフラストラクチャの制限に応じたKMを選択します。セキュリティ上の理由でターゲット・データ・サーバーをステージング領域として使用できない場合は、複数テクノロジIKMをプロジェクトで使用可能にしてください。

- JKMとSKMは必要な場合のみ選択します。チェンジ・データ・キャプチャやデータ・サービスを使用する予定がない場合は、JKMやSKMをインポートしないでください。必要な場合は後でインポートできます。

- KMのドキュメントとオプションを確認します。KMには、有用な情報が記載された説明フィールドがあります。KMの各オプションについても説明されています。すべてのKMの詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

ナレッジ・モジュールのインポートおよび置換

2つの主要な操作を使用して、プロジェクト内のKMを管理できます:

- 新規のプロジェクトを作成する場合、組込みKMを使用できます。新規のKMを使用する場合、プロジェクトKMまたはグローバルKMをインポートする必要があります。ナレッジ・モジュールの有効範囲の詳細は、「プロジェクトおよびグローバル・ナレッジ・モジュール」を参照してください。

- 既存のグローバルKMまたはプロジェクトKMの新規バージョンを使用する場合や、既存のKMを別のKMで置換する必要がある場合は、このKMを置換できます。

この項には次のトピックが含まれます:

- プロジェクト・ナレッジ・モジュールのインポート

- ナレッジ・モジュールの置換

- グローバル・ナレッジ・モジュールのインポート

プロジェクト・ナレッジ・モジュールのインポート

プロジェクト・ナレッジ・モジュールをプロジェクトにインポートするには:

1. デザイナ・ナビゲータの「プロジェクト」アコーディオンで、KMをインポートするプロジェクトを選択します。

2. 右クリックして「インポート」→「ナレッジ・モジュールのインポート」の順に選択します。

3. 「ファイル・インポート・ディレクトリ」を指定します。このディレクトリにある使用可能なKMエクスポート・ファイルのリストが表示されます。ODIインストールに含まれるKMの場所は次のとおりです。

<Oracle_Home>/odi/sdk/xml-reference

4. リストから複数のKMを選択し、「OK」をクリックします。

5. 選択したKMがインポートされ、インポート・レポートに表示されます。

6. 「閉じる」をクリックしてこのレポートを閉じます。

ナレッジ・モジュールがプロジェクトにインポートされます。インポートされたナレッジ・モジュールは、プロジェクトの「ナレッジ・モジュール」ノードの下に、KMタイプ別にグループ化されて表示されます。

注意:
ナレッジ・モジュールは「複製」モードでのみインポートできます。既存のナレッジ・モジュールを置換する場合は、次に説明する「置換のインポート」メソッドを使用します。KMを「複製」モードでインポートし、そのKMがすでにプロジェクトに存在している場合、ODIは接頭辞copy_ofが付いた新しいKMを作成します。

ナレッジ・モジュールの置換

グローバルKMまたはプロジェクトのKMを別のKMで置換し、その新しいKMをすべてのマッピングで自動的に使用する場合は、「置換のインポート」モードを使用する必要があります。

ナレッジ・モジュールを置換モードでインポートするには:

1. デザイナ・ナビゲータで、置換するナレッジ・モジュールを選択します。

2. 右クリックして「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、置換に使用するKMのエクスポート・ファイルを選択します。ODIインストールに含まれるKMの場所は次のとおりです。

<Oracle_Home>/odi/sdk/xml-reference

4. 「OK」をクリックします。

現在のナレッジ・モジュールが新規ナレッジ・モジュールで置換されます。

注意:
ナレッジ・モジュールを別のナレッジ・モジュールで置換する場合、Oracle Data Integratorでは、古いモジュールのオプションと名前が一致するオプションを使用して、新規モジュールのマッピングのオプションが設定されます。ユーザーがマッピングでKMオプションを設定していた場合は、新しいKMに同じ名前のオプションがあればその値が保持されます。新規オプションは、デフォルト値に設定されます。マッピングでこれらのオプションの値を確認することをお薦めします。
構造や動作が異なるKMで現在のKMを置換(たとえば、IKMをRKMで置換)すると、問題が発生する可能性があります。新規KMを使用してマッピングの設計と実行を確認することをお薦めします。

グローバル・ナレッジ・モジュールのインポート

Oracle Data Integratorにグローバル・ナレッジ・モジュールをインポートするには:

1. ナビゲータの「グローバル・オブジェクト」アコーディオンで「グローバル・ナレッジ・モジュール」ノードを選択します。

2. 右クリックして「ナレッジ・モジュールのインポート」を選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、「インポート・モード」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を指定します。このディレクトリにある使用可能なKMエクスポート・ファイルのリストが表示されます。ODIインストールに含まれるKMの場所は次のとおりです。

<Oracle_Home>/odi/sdk/xml-reference

3. インポートするファイル(1つまたは複数)をリストから選択します。

4. 「OK」をクリックします。

すべてのプロジェクトにグローバルKMが表示されます。

ナレッジ・モジュールの暗号化および復号化

ナレッジ・モジュール(KM)またはプロシージャを暗号化すると、重要なコードを保護できます。暗号化されたKMまたはプロシージャは、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたKMまたはプロシージャによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたAES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。

警告:

暗号化されたKMまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保管しておくことをお薦めします。また、各デプロイメントで一意の鍵を使用することをお薦めします。

KMまたはプロシージャを暗号化するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーでプロジェクトを展開し、暗号化するKMまたはプロシージャを選択します。

2. 右クリックして「暗号化」を選択します。

3. 「暗号化オプション」ウィンドウで、次のいずれかのオプションを選択します。

- 個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。

- 新規暗号化鍵を取得します: ODIで新しい鍵を生成します。

4. 「OK」をクリックしてKMまたはプロシージャを暗号化します。新しい鍵の生成を選択した場合は、ウィンドウに新しい鍵も表示されます。このウィンドウで鍵をファイルに保存できます。

KMまたはプロシージャを復号化するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーでプロジェクトを展開し、復号化するKMまたはプロシージャを選択します。

2. 右クリックして「復号化」を選択します。

3. 「KM復号化」または「プロシージャ復号化」ウィンドウで、次のいずれかの操作を実行します。

- 既存の暗号化鍵ファイルを選択します。

- 個人キーに対応する文字列を入力(または貼付け)します。

4. 「OK」をクリックして復号化します。

フォルダを使用したプロジェクトの編成

プロジェクト内のマッピング、プロシージャおよびパッケージは、フォルダとサブフォルダに編成されます。フォルダを使用して、プロジェクトの適切な編成を維持することをお薦めします。フォルダを使用することで、プロジェクトで開発したオブジェクトの検索やメンテナンス・タスクが容易になります。編成の詳細は、第16章「統合プロジェクトの編成およびドキュメント化」を参照してください。

7 パッケージの作成および使用

この章では、パッケージおよびステップの概要について説明します。また、パッケージの作成プロセスを紹介し、パッケージ内でのステップの処理に関する追加情報も提供します。

この章には次の項が含まれます:

- パッケージの概要

- 新規パッケージの作成

- ステップの使用

- ステップの順序の定義

- パッケージの実行

パッケージの概要

パッケージはOracle Data Integratorの大きい実行単位です。パッケージは実行ダイアグラム内に編成された一連のステップで構成されます。

各ステップは、成功または失敗の実行結果となります。ステップは、実行結果(成功または失敗)に従って別のステップに分岐できます。

ステップの概要

表7-1に、様々なステップのタイプを示します。その他の詳細情報の参照先も示しています。

表7-1 ステップのタイプ

タイプ

説明

関連項目

フロー(マッピング)

マッピングを実行します。

マッピング・ステップの追加

プロシージャ

プロシージャを実行します。

プロシージャ・ステップの追加

変数

変数の値を宣言、設定、リフレッシュまたは評価します。

変数ステップ

Oracle Data Integratorツール

ツールボックスから使用可能なこれらのツールは、Oracle Data IntegratorのすべてのAPIコマンドへのアクセスを提供し、オペレーティング・システム・コールを実行します。

Oracle Data Integratorツール・ステップの追加

モデル、サブモデルおよびデータストア

これらのオブジェクトに対してジャーナル化、静的チェックまたはリバースエンジニアリング操作を実行します。

モデル、サブモデルまたはデータストアの追加

図7-1 サンプル・パッケージ

たとえば、図7-1に示されている「Load Customers and Invoice」というパッケージの例は、次のアクションを実行します。

1. なんらかのバックアップ操作を実行する「System Backup」プロシージャを実行します。

2. 顧客グループ・データストアをロードする「Customer Group」マッピングを実行します。

3. 顧客データストアをロードする「Customer」マッピングを実行します。

4. 製品データストアをロードする「Product」マッピングを実行します。

5. 「Last Invoice ID」ステップの変数をリフレッシュし、この変数の値をパッケージで後で使用できるように設定します。

6. 請求書ヘッダー・データストアをロードする「Invoice Headers」マッピングを実行します。

7. 請求書データストアをロードする「Invoices」マッピングを実行します。

8. 前述のいずれかのステップが失敗となると、このパッケージは、Oracle Data Integratorのツールを使用して電子メールを管理者に送信する「OdiSendMail 2」ステップを実行します。

パッケージの作成の概要

パッケージはパッケージ・ダイアグラム・エディタで作成されます。詳細は、「パッケージ・エディタの概要」を参照してください。

パッケージの作成は、次の主な手順で構成されます。

1. 新規パッケージを作成します。詳細は、「新規パッケージの作成」を参照してください。

2. パッケージでステップを使用します(追加、複製、削除など)。詳細は、「ステップの使用」を参照してください。

3. ステップの順序を定義します。詳細は、「ステップの順序の定義」を参照してください。

4. パッケージを実行します。詳細は、「パッケージの実行」を参照してください。

パッケージ・エディタの概要

パッケージ・エディタには、パッケージを設計するための単一の環境が用意されています。図7-2に、パッケージ・エディタの概観を示します。

図7-2 パッケージ・エディタ

表7-2 パッケージ・エディタの各セクション

セクション

図の中の位置

説明

パッケージ・ダイアグラム

中央

マッピング、プロシージャ、データストア、モデル、サブモデル、変数などのコンポーネントにステップを作成するために、デザイナ・ナビゲータからパッケージ・ダイアグラムに、これらのコンポーネントをドラッグします。

このダイアグラムでは、ステップの順序の定義やステップの編成を実行することもできます。

「パッケージ」ツールボックス

パッケージ・ダイアグラムの左側

ツールボックスには、Oracle Data Integratorの使用可能なツールのリストが表示され、このリストからパッケージにツールを追加できます。これらのツールは、タイプ別にグループ化されています。

「パッケージ」ツールバー

パッケージ・ダイアグラムの最上部

パッケージ・ツールバーには、パッケージ内のステップを編成したり、ステップの順序を指定するツールがあります。

「プロパティ」パネル

パッケージ・ダイアグラムの下

このパネルには、パッケージ・ダイアグラムで選択されているオブジェクトのプロパティが表示されます。

新規パッケージの作成

新規パッケージを作成するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーで、パッケージを作成するフォルダの「パッケージ」ノードをクリックします。

2. 右クリックして「新規パッケージ」を選択します。

3. 「新規パッケージ」ダイアログで、パッケージの「名前」と「説明」(オプション)を入力します。「OK」をクリックします。

4. 「概要」タブを使用して、パッケージのプロパティを設定します。

5. 「ダイアグラム」タブを使用してパッケージを設計し、「ステップの使用」の説明に従ってステップを追加します。

6. 「ファイル」メニューから「保存」をクリックします。

ステップの使用

パッケージは、編成された一連のステップです。パッケージの定義の大部分は、このパッケージのステップを使用することで構成されます。

ステップの追加

ステップの追加は、挿入するステップの性質によって異なります。ステップの各タイプの詳細は、表7-1「ステップのタイプ」を参照してください。次に、様々なタイプのステップを追加する手順を示します。

マッピング・ステップの追加

マッピング・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、プロジェクト・ノード、マッピング・ノードの順に展開して、このプロジェクトのマッピングを表示します。

3. マッピングをダイアグラムにドラッグ・アンド・ドロップします。「フロー(マッピング)」ステップ・アイコンがダイアグラムに表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルにマッピングのプロパティが表示されます。

5. プロパティ・パネルで、必要に応じてマッピングのプロパティを変更します。

6. 「ファイル」メニューから「保存」をクリックします。

プロシージャ・ステップの追加

プロシージャ・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、プロジェクト・ノード、プロシージャ・ノードの順に展開して、このプロジェクトのプロシージャを表示します。

3. プロシージャをダイアグラムにドラッグ・アンド・ドロップします。「プロシージャ」ステップ・アイコンがダイアグラムに表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルにプロシージャのプロパティが表示されます。

5. プロパティ・パネルで、必要に応じてプロシージャのプロパティを変更します。

6. 「ファイル」メニューから「保存」をクリックします。

変数ステップ

Oracle Data Integratorには、変数の様々なステップ・タイプがあります。

- 変数の宣言: 変数をパッケージ(またはパッケージ内で使用されるトポロジの要素)で使用する場合は、パッケージに変数の宣言ステップを挿入することをお薦めします。このステップは、パッケージの変数を明示的に宣言します。

- 変数のリフレッシュ: この変数ステップは、変数定義に指定されている問合せを実行して、変数をリフレッシュします。

- 変数の設定: このステップには2つの機能があります。

- 割当てでは、変数の現在の値を設定します。

- 増分では、指定の分量ずつ数値を増減します。

- 変数の評価: この変数ステップ・タイプは、変数の値と指定された値をオペレータに従って比較します。条件を満たすと、評価ステップはtrueとなり、それ以外の場合はfalseとなります。このステップを使用して、パッケージ内を分岐できます。

変数ステップの追加

(任意のタイプの)変数ステップを追加するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、プロジェクト・ノード、「変数」ノードの順に展開して、このプロジェクトの変数を表示します。または、グローバル・オブジェクト・ノード、変数・ノードの順に展開して、グローバル変数を表示します。

3. 変数をダイアグラムにドラッグ・アンド・ドロップします。「変数」ステップ・アイコンがダイアグラムに表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルに変数のプロパティが表示されます。

5. プロパティ・パネルで、必要に応じて変数のプロパティを変更します。「一般」タブで、「タイプ」リストから変数タイプを選択します。

- 「変数の設定」で、「割当て」を選択するか、変数が数値タイプの場合は「増分」を選択します。割当て」では、「値」フィールドに、変数に割り当てる値を入力します(この値に別の変数を指定することもできます)。増分では、「増分」フィールドに、変数を増分する数値の定数を入力します。

- 「変数の評価」で、変数値の比較に使用するオペレータを選択します。「値」フィールドに、変数と比較する値を入力します。この値に別の変数を指定することもできます。

注意:

- 「値」フィールドには、値のリストを指定できます。INオペレータを使用する場合は、セミコロン(;)を使用してリストの値を区切ります。

- 変数の評価ステップは、評価結果に基づいて分岐できます。ステップの分岐の詳細は、「ステップの順序の定義」を参照してください。

6. 「ファイル」メニューから「保存」をクリックします。

Oracle Data Integratorツール・ステップの追加

Oracle Data Integratorには、パッケージで単純な操作を実行する際に使用できるツールが用意されています。ツールは、組込みツール、またはData Integratorツールボックスを拡充できるオープン・ツールにできます。

Oracle Data Integratorツール・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. パッケージの「ツールボックス」から、使用するツールを選択します。オープン・ツールは、「プラグイン」グループに表示されます。

3. パッケージ・ダイアグラムをクリックします。ツールに対応するステップが表示されます。

ヒント:
ツールが選択されている間は、ダイアグラム内で左クリックするとステップが配置され続けます。ステップの配置を停止するには、「パッケージ」ツールバーの「自由選択」ボタンをクリックします。マウス・ポインタが矢印に変わり、ツールが配置されないことを示します。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルにツールのプロパティが表示されます。

5. ツールのパラメータに値を設定します。パラメータの説明は、パラメータを選択すると表示され、またOracle Data Integrator Toolリファレンスでも説明されています。

6. 「コマンド」タブで、このツール・コールのコードを編集できます。

7. 「ファイル」メニューから「保存」をクリックします。

Oracle Data Integratorパッケージでは、次のツールがよく使用されます。

- OdiStartScen: Oracle Data Integratorシナリオを同期または非同期で開始します。OdiStartScenステップを作成するには、デザイナ・ナビゲータからダイアグラムにシナリオを直接ドラッグ・アンド・ドロップします。

- OdiInvokeWebService: Webサービスを呼び出し、レスポンスをXMLファイルに保存します。OdiInvokeWebServiceは、HTTPアナライザ・ツールを使用してツール・パラメータを設定およびテストします。詳細は、「HTTPアナライザの使用」を参照してください。

- OSコマンド: オペレーティング・システム・コマンドをコールします。オペレーティング・システム・コマンドを使用すると、作成したパッケージがプラットフォーム依存となる可能性があります。

Oracle Data Integratorのツールのリストは、Oracle Data Integrator Toolリファレンスを参照してください。

注意:
ステップ・プロパティ・パネルを使用してツールのパラメータを設定する場合は、グラフィカルなヘルパーにより、簡単に使用できる方法で値を選択できます。たとえば、パラメータにプロジェクト識別子が必要な場合は、グラフィカル・マッピングで識別子の表現が再設計され、選択肢としてプロジェクト名のリストが表示されます。「コマンド」タブに切り替えることで、コマンドと識別子を確認できます。

モデル、サブモデルまたはデータストアの追加

モデル、サブモデルおよびデータストアに対してジャーナル化、静的チェックまたはリバースエンジニアリングを実行できます。

チェック、リバース・エンジニアリングまたはジャーナル化ステップをパッケージに挿入するには:

注意:

- 静的チェックを実行するには、モデルにCKMを定義する必要があります。

- ジャーナル化操作を実行するには、モデルにJKMを定義する必要があります。

- パッケージのリバースエンジニアリング・プロセスの実行には、モデル定義に設定されているリバースエンジニアリング・オプションが使用されます。

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「モデル」ツリーから、チェックするモデル、サブモデルまたはデータストアを選択します。

3. このモデル、サブモデルまたはデータストアをダイアグラムにドラッグ・アンド・ドロップします。

4. プロパティ・パネルの「一般」タブで、「チェック」、「リバース・エンジニアリング」または「ジャーナル化」タイプを選択します。

- チェック・ステップの場合、このプロセスでチェックした表からエラーのある行を削除する場合は、「チェック済表からのエラーの削除」を選択します。

- ジャーナル化ステップの場合、ジャーナル化オプションを設定します。これらのオプションの詳細は、第4章「ジャーナル化の使用」を参照してください。

5. 「ファイル」メニューから「保存」をクリックします。

ステップの削除

注意:
パッケージ・ダイアグラムでの削除操作は元に戻すことができません。

ステップを削除するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 削除するステップをダイアグラムで選択します。

3. 右クリックして「ステップの削除」を選択します。または、キーボードの[Delete]キーを押します。

4. 「はい」をクリックして続行します。

ダイアグラムからステップが消去されます。

ステップの複製

ステップを複製するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 複製するステップをダイアグラムで選択します。

3. 右クリックして「ステップの複製」を選択します。

ステップのコピーがダイアグラムに表示されます。

ステップの実行

ステップを実行するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 実行するステップをダイアグラムで選択します。

3. 右クリックして「実行」を選択します。

4. 「実行」ダイアログで、次の実行パラメータを選択します:

- ステップを実行する「コンテキスト」を選択します。

- ステップを実行する「論理エージェント」を選択します。

- 「ログ・レベル」を選択します。

- オプションで、「シミュレーション」を選択します。このオプションでは、データへの実際の影響なしに、実行操作のシミュレーションを実行し、実行レポートを生成します。

5. 「OK」をクリックします。

6. 「セッションを開始しました」ウィンドウが表示されます。

7. 「OK」をクリックします。

ステップの実行は、オペレータ・ナビゲータで確認できます。

ステップのリンクされたオブジェクトの編集

ステップのリンクされたオブジェクトは、ステップの作成元であるマッピング、プロシージャ、変数などのオブジェクトを指します。このオブジェクトは、パッケージ・ダイアグラムで編集できます。

ステップのリンクされたオブジェクトを編集するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 編集するステップをダイアグラムで選択します。

3. 右クリックして「リンクされたオブジェクトの編集」を選択します。

リンクされたオブジェクトのエディタが開きます。

ステップのレイアウトの調整

ダイアグラム内のステップは、読みやすくなるように自動的にまたは手動で再配置できます。

ツールバーの「再編成」ボタンを使用すると、パッケージ内のすべてのステップを自動的に再編成できます。

ダイアグラム内のステップを手動で配置する手順は、次のとおりです。

1. パッケージのツールバー・メニューから「自由選択」ツールを選択します。

2. 次のいずれかの方法を使用して調整するステップを選択します。

- [Ctrl]キーを押しながら各ステップを選択します。

- マウスの左ボタンを押したまま、ダイアグラムで複数のアイテムの周囲にボックスをドラッグします。

3. 選択したステップを調整するには、次のいずれかの方法を使用できます。

- ダイアグラムでステップをドラッグして位置を調整します。

- 右クリックし、コンテキスト・メニューから「垂直方向の位置合せ」または「水平方向の位置合せ」オプションを選択します。

ステップの順序の定義

ステップを作成した後は、データ処理チェーンにおける各ステップの順序を設定する必要があります。このチェーンには、次のルールがあります。

- ステップは、「最初のステップ」として定義された一意のステップで開始します。

- 各ステップには、成功または失敗という2つの終了状態があります。

- 失敗または成功したステップは、別のステップに続けるか、パッケージの終点にできます。

- 失敗した場合の再試行回数を定義できます。

パッケージの始点(最初のステップ)は1つですが、終了ステップは複数設定できます。

失敗条件

次の表に、ステップが失敗状態になる条件を示します。これ以外の状況では、ステップは成功状態で終了します。

注意:
デフォルトでは、オープン・トランザクションは失敗の状態ではロールバックされません。この動作は、物理エージェント・プロパティ「ステップ失敗時にすべてのオープン・トランザクションをロールバック」を使用して変更できます。詳細は、ODI Studioのオンライン・ヘルプを参照してください。

ステップのタイプ

失敗条件

フロー

- マッピング・コマンドでエラーが発生しました。

- エラーの最大許容数または最大許容率に到達しました。

プロシージャ

プロシージャ・コマンドでエラーが発生しました。

変数のリフレッシュ

リフレッシュ問合せの実行時にエラーが発生しました。

変数の設定

変数の設定時にエラーが発生しました(無効な値)。

変数の評価

ステップに定義された条件に一致しません。

変数の宣言

このステップには失敗条件がなく常に成功します。

Oracle Data Integratorツール

Oracle Data Integratorツールのリターン・コードがゼロではありません。このツールがOSコマンドの場合、ゼロ以外のコマンドのリターン・コードが失敗ケースです。

データストア、モデルまたはサブモデルのジャーナル化

ジャーナル化コマンドでエラーが発生しました。

データストア、モデルまたはサブモデルのチェック

チェック・プロセスでエラーが発生しました。

モデルのリバース

リバースエンジニアリング・プロセスでエラーが発生しました。

順序の定義

パッケージの最初のステップを定義するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. ダイアグラムで最初のステップとして設定するステップを選択します。

3. 右クリックして「最初のステップ」を選択します。

ステップのアイコンに、最初のステップであることを示す記号が表示されます。

成功時の次のステップを定義するには:

1. パッケージ・ツールバーのタブで、「成功時の次のステップ」ツールを選択します。

2. マウスを使用して、あるステップから別のステップに線をドラッグします。

3. この操作を繰り返し、成功時の一連の経路に配置するすべてのステップをリンクします。この経路は、「最初のステップ」で定義したステップから開始する必要があります。

経路が正常に設定されたことを示す緑色の矢印が、ステップの間に「OK」ラベル付きで表示されます。変数の評価ステップの場合は、「true」のラベルが付きます。

失敗時の次のステップを定義するには:

1. パッケージ・ツールバーのタブで、「失敗時の次のステップ」ツールを選択します。

2. マウスを使用して、あるステップから別のステップに線をドラッグします。

3. この操作を繰り返し、ワークフロー論理に従ってステップをリンクします。

経路が正常に設定されていないことを示す赤色の矢印が、ステップの間に「ko」ラベル付きで表示されます。変数の評価ステップの場合は、緑色の矢印に「false」のラベルが付きます。

失敗時のパッケージの最終ステップを定義するには:

デフォルトでは、成功または失敗条件の後に別のステップにリンクされていないステップは、この成功または失敗の条件を満たすとパッケージを終了することになります。この動作は、ステップの動作を編集することで設定できます。

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 編集するステップを選択します。

3. プロパティ・パネルで、「拡張」タブを選択します。

4. 「失敗後の処理」または「成功後の処理」で、「終了」を選択します。ダイアグラムで、ステップの後ろのリンクが消去されます。

5. 必要に応じて、ステップの再試行回数と再試行間隔を「試行回数」および「試行間隔」に設定します。

パッケージの実行

パッケージを実行するには:

1. 次のいずれかの方法を使用します。

- デザイナ・ナビゲータのプロジェクト・ノードでプロジェクトを展開し、実行するパッケージを選択します。右クリックして「実行」を選択するか、ODI Studioツールバーの「実行」ボタンをクリックするか、ODIメニュー・バーの「実行」メニューから「実行」を選択します。

- パッケージ・エディタで、エディタの上部にパッケージ名が付いているタブをクリックしてパッケージを選択します。ODI Studioツールバーの「実行」ボタンをクリックするか、ODIメニュー・バーの「実行」メニューから「実行」を選択します。

2. 「実行」ダイアログで、次の実行パラメータを選択します:

- パッケージを実行する「コンテキスト」を選択します。

- パッケージを実行する「論理エージェント」を選択します。

- 「ログ・レベル」を選択します。

- オプションで、「シミュレーション」を選択します。このオプションでは、データへの実際の影響なしに、実行操作のシミュレーションを実行し、実行レポートを生成します。

3. 「OK」をクリックします。

4. 「セッションを開始しました」ウィンドウが表示されます。

5. 「OK」をクリックします。

パッケージの実行は、オペレータ・ナビゲータで確認できます。

8 マッピングの作成および使用

この章では、マッピングを作成および使用する方法について説明します。

この章には次の項が含まれます:

- マッピングの概要

- マッピングの作成

- マッピング・コンポーネントの使用

- データセットを使用したマッピングの作成

- 物理設計

- 再使用可能マッピング

- プロパティ・インスペクタおよび構造パネルを使用したマッピングの編集

- フロー制御および静的制御

- E-LTおよびETLスタイル・マッピングの設計

マッピングの概要

マッピングは、データソース、データ・ターゲット、およびソースからターゲットにデータが流れる変換の論理および物理編成です。ODI 12cの新機能であるマッピング・エディタを使用してマッピングを作成および管理します。

マッピングを開くと、常にマッピング・エディタが開きます。マッピングは、デザイナ・ナビゲータの「プロジェクト」の下にあり、個々のプロジェクトの下のフォルダに編成されます。

マッピングの構成要素

マッピングは、次の部分で構成および定義されています。

- データストア
ソース・データストアのデータはマッピングによって抽出され、ロード・プロセス中にフィルタ処理できます。ターゲット・データストアは、マッピングによってロードされる要素です。データストアはプロジェクタ・コンポーネントとして機能します。

ロード・プロセスのソースおよびターゲットとして使用されるデータストアをマッピングで使用するには、データストアがデータ・モデル内に存在している必要があります。詳細は、第3章「データ・モデルおよびデータストアの作成および使用」を参照してください。

- データセット
オプションで、データセットをマッピング内でソースとして使用できます。データセットとは、マッピングの他の場所で使用されているフロー・メカニズムではなく結合およびフィルタとして宣言されたエンティティ関係によってデータを編成する論理コンテナです。データセットは、ODI 11gインタフェースと同様に動作し、11gインタフェースをODI 12cにインポートした場合、ODIでは、インタフェース論理に基づいて自動的にデータセットが作成されます。データセットはセレクタ・コンポーネントとして機能します。

- 再使用可能マッピング
再使用可能マッピングはモジュラで、保存および再利用可能な、カプセル化されたコンポーネント・フローです。再使用可能マッピングは、別のマッピング内や別の再使用可能マッピング内に配置できます(つまり、再使用可能マッピングはネスト化が可能)。再使用可能マッピングには、他のマッピング・コンポーネントと同様にソースおよびターゲット自体としてデータストアを含めることも可能です。再使用可能マッピングはプロジェクタ・コンポーネントとして機能します。

- その他のコンポーネント
ODIには、ソースとターゲット間でデータを操作するために使用される追加のコンポーネントがあります。これらのコンポーネントは、マッピング・ダイアグラムのコンポーネント・パレットで使用できます。

コンポーネント・パレットでデフォルトで使用可能なコンポーネントは次のとおりです。

- 式

- 集計

- 個別

- 集合

- フィルタ

- 結合

- ルックアップ

- ピボット

- ソート

- 分割

- 副問合せフィルタ

- テーブル・ファンクション

- アンピボット

- コネクタ

コネクタは、マッピング・コンポーネント間のデータのフローを作成します。ほとんどのコンポーネントに入力と出力の両方のコネクタを設定できます。出力コネクタのみがあるデータストアはソースとみなされ、入力コネクタのみがあるデータストアはターゲットとみなされます。複数の入力コネクタまたは出力コネクタをサポートできるコンポーネントもあります。たとえば、分割コンポーネントは、2つ以上の出力コネクタをサポートしているため、データを複数のダウンストリーム・フローに分割できます。

- コネクタ・ポイントは、マッピング内のコンポーネント間の接続を定義します。コネクタ・ポイントは、コンポーネントの入力または出力の単一経路です。

- コネクタ・ポートは、マッピング・ダイアグラムに表示されるコンポーネントの左側や右側にある小さな円です。

マッピング・ダイアグラムで、コネクタ・ポート間が1本の可視線で接続された2つのコンポーネントに1つ以上のコネクタ・ポイントが存在することがあります。このダイアグラムには、2つのコンポーネント間のすべての接続を表す1本の線のみが示されています。プロパティ・インスペクタでその線を選択すると、接続の詳細が表示されます。

- ステージング・スキーマ
オプションで、マッピングのステージング領域や、マッピングの特定の物理マッピング設計のステージング領域を指定できます。ソース・データストアまたはターゲット・データストアとは異なるステージング領域を定義する場合は、マッピングを作成する前に、マッピングの実行コンテキストで正しい物理スキーマと論理スキーマを定義する必要があります。詳細は、第2章「Oracle Data Integratorトポロジの概要」を参照してください。

- ナレッジ・モジュール
ナレッジ・モジュールでは、データがデータ・サーバー間で転送され、データ・ターゲットにロードされる方法を定義します。フローで選択されるナレッジ・モジュール(IKM、LKM、EKMおよびCKM)は、プロジェクトにインポートされているか、グローバル・ナレッジ・モジュールとして使用できる必要があります。

IKMでは、実際の変換およびロードが実行される方法を定義(または指定)できます。

LKMを使用すると、あるデータ・サーバーから別のデータ・サーバーへのデータ転送の実行方法を指定できます。

CKMは、フロー制御として使用される場合、ターゲット・データストアへのレコードのロード時にデータ・フローでのエラーをチェックできます。CKMは、静的制御として使用する場合、表内のエラーをチェックするために使用できます。データが制約を満たしているかどうかを確認するために、モデルに対していつでも静的制御を起動できます。

適切なKMを選択することで、これらのタスクを実行するための戦略を選択できます。たとえば、2つのデータベース間のデータ転送にJDBCを使用するか、または2つのOracleデータベース間の転送である場合にOracleデータベース・リンクを使用するかを決定できます。

詳細は、第6章「統合プロジェクトの作成」を参照してください。

- 変数、順序およびユーザー関数
マッピング内の式で使用する変数、順序およびユーザー関数を、プロジェクトに作成する必要があります。詳細は、第10章「プロシージャ、変数、順序およびユーザー関数の作成および使用」を参照してください。

マッピング・エディタのナビゲート

マッピング・エディタには、マッピングを設計および編集するための単一の環境が用意されています。

マッピングは、デザイナ・ナビゲータのプロジェクトのフォルダ内に編成されます。各フォルダにはマッピング・ノードがあり、その中にすべてのマッピングがリストされています。

マッピング・エディタを開くには、既存のマッピングを右クリックして「開く」を選択するか、マッピングをダブルクリックします。新しいマッピングを作成するには、マッピング・ノードを右クリックして「新規マッピング」を選択します。ODI Studioのメイン・ペインのタブとしてマッピングが開きます。マッピングに対応するタブを選択して、マッピング・エディタを表示します。

図8-1 マッピング・エディタ

マッピング・エディタは、表8-1に説明するセクションで構成されています。

表8-1 マッピング・エディタの各セクション

セクション

図8-1での位置

説明

マッピング・ダイアグラム

中央

マッピング・ダイアグラムには、マッピングの編集可能な論理ビューまたは物理ビューが表示されます。これらのビューは、論理ダイアグラムまたは物理ダイアグラムと呼ばれる場合があります。

「モデル」ツリーからデータストアをダイアグラムにドラッグし、「グローバル・オブジェクト」または「プロジェクト」ツリーから再使用可能マッピングをマッピング・ダイアグラムにドラッグします。コンポーネント・パレットからコンポーネントをドラッグして、様々なデータ操作を定義することもできます。

マッピング・エディタのタブ

マッピング・ダイアグラムの下部中央

マッピング・エディタのタブは、マッピング作成プロセスの順序に従って表示されています。次のタブがあります。

- 概要: マッピングの一般プロパティが表示されます

- 論理: マッピングの論理編成がマッピング・ダイアグラムに表示されます

- 物理: マッピングの物理編成がマッピング・ダイアグラムに表示されます

プロパティ・インスペクタ

下部

選択したオブジェクトのプロパティが表示されます。

プロパティ・インスペクタが表示されない場合は、「ウィンドウ」メニューから「プロパティ」を選択します。

コンポーネント・パレット

右

マッピングの作成に使用できるマッピング・コンポーネントが表示されます。コンポーネント・パレットから論理マッピング・ダイアグラムにコンポーネントをドラッグ・アンド・ドロップできます。

コンポーネント・パレットが表示されない場合は、「ウィンドウ」メニューから「コンポーネント」を選択します。

構造パネル

表示されていない

タブおよび矢印キーを使用してナビゲートできる、マッピングのテキストベースの階層ツリー・ビューが表示されます。

構造パネルは、デフォルトでは表示されません。開くには、「ウィンドウ」メニューから「構造」を選択します。

サムネイル・パネル

表示されていない

マッピングの縮小グラフィックが長方形で表示されます。長方形は、マッピング・ダイアグラムで現在表示している部分を示します。このパネルは、非常に大きなマッピングまたは複雑なマッピングをナビゲートする場合に役立ちます。

サムネイル・パネルは、デフォルトでは表示されません。開くには、「ウィンドウ」メニューから「サムネイル」を選択します。

マッピングの作成

マッピングは標準プロセスに従って作成しますが、ユース・ケースによって異なる場合があります。

マッピング・エディタの論理ダイアグラムを使用すると、ダイアグラムへのコンポーネントのドラッグ、コンポーネント間での接続のドラッグ、これらの接続をまたいだ属性のドラッグ、およびプロパティ・インスペクタを使用したコンポーネントのプロパティを変更して、マッピングを構成できます。論理ダイアグラムが完了したら、物理ダイアグラムを使用して、物理インフラストラクチャ上で統合プロセスを実行する場所および方法を定義できます。マッピングの論理および物理設計が完了したら、それを実行できます。

通常は、次の手順に従ってマッピングを作成します。また、この手順は、最初のマッピングを設計する際のガイドラインとしても使用できます。

1. 新しいマッピングの作成

2. コンポーネントの追加および削除

3. コンポーネントの接続および構成

4. 物理構成の定義

5. マッピングの実行

注意:
プロパティ・インスペクタおよび構造パネルを使用して、ステップ2から5を実行することもできます。詳細は、「プロパティ・インスペクタおよび構造パネルを使用したマッピングの編集」を参照してください。

新しいマッピングの作成

新しいマッピングを作成するには:

1. デザイナ・ナビゲータで、マッピングを作成するプロジェクトのフォルダ内にあるマッピング・ノードを選択します。

2. 右クリックして「新規マッピング」を選択します。「新規マッピング」ダイアログが表示されます。

3. 「新規マッピング」ダイアログで、マッピングの名前を入力します。必要に応じて、「説明」を入力します。新しいマッピングに新しい空のデータセットを含める場合は、空のデータセットの作成を選択します。「OK」をクリックします。

注意:
マッピングの作成後、データセット(空のデータセットを含む)を追加または削除できます。データセットは完全にオプションであり、データセットのすべての動作は、マッピング・エディタで他のコンポーネントを使用して作成できます。
ODI 12cでは、データセットには、前のバージョンのODIのユーザーが使い慣れているエンティティ関係方法を使用してデータ・フローを作成するオプションが用意されています。場合によっては、エンティティ関係ダイアグラムを作成するほうがフロー・ダイアグラムを作成するよりも時間がかからなかったり、あるいあ簡単かつ高速に変更を導入できます。

データセットを含む論理ダイアグラムに基づいて物理ダイアグラムを計算する場合、データセット内のエンティティ関係はODIで自動的にフロー・ダイアグラムに変換され、周囲のフローとマージされます。フローがどのように接続されているかを意識する必要はありません。

新しいマッピングは、ODI Studioのメイン・ペインの新しいタブに開きます。

ヒント:
「マッピング」タブで使用されるデータストア、再使用可能マッピングまたはデータセットのエディタを表示するには、オブジェクトを右クリックして「開く」を選択します。

コンポーネントの追加および削除

コンポーネント・パレットからコンポーネントをドラッグして、論理ダイアグラムにコンポーネントを追加します。デザイナ・ナビゲータからデータストアおよび再使用可能マッピングをドラッグします。

コンポーネントを選択して[Delete]キーを押すか、右クリック・コンテキスト・メニューを使用して「削除」を選択して、コンポーネントをマッピングから削除します。確認ダイアログが表示されます。

ソース・データストアとターゲット・データストアは、マッピングによって抽出およびロードされる要素です。

ソース・データストアとターゲット・データストア間で、マッピングのその他すべてのコンポーネントが調整されます。マッピングが実行されると、データはソース・データストアから、定義したコンポーネントを介して、ターゲット・データストアに流れます。

ダウンストリーム式の保持および削除

該当する場合は、コンポーネントを削除するときに、確認ダイアログのチェック・ボックスを使用して、ダウンストリーム式を保持または削除できます(このような式はコンポーネントの接続時または変更時に作成された可能性があります)。デフォルトでは、ODIはこれらの式を保持します。

この機能を使用すると、すでに完了した作業を破棄することなく、マッピングに対する変更を行うことができます。たとえば、ソース・データストアがターゲット・データストアにマップされると、属性はすべてマップされます。その後、ソース・データをフィルタ処理する必要があることに気付きます。フィルタを追加する場合、1つのオプションとして、2つのデータストア間の接続を削除するが、ターゲット・データストアで設定されている式は維持し、中間にフィルタを接続します。いずれのマッピング式も失われません。

コンポーネントの接続および構成

元のコネクタ・ポートから宛先のコネクタ・ポートにドラッグして、コンポーネント間にコネクタを作成します。コンポーネント間で属性をドラッグし、暗黙的にコネクタを作成することもできます。2つのポート間にコネクタを作成する際に、名前や位置に基づいて自動的に属性をマップするための属性照合ダイアログが表示されることがあります。

属性照合

「属性照合」ダイアログは、マッピング・エディタでコネクタをプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)にドラッグする際に表示されます。「属性照合」ダイアログには、照合メカニズムに基づいて、ソースからターゲット・コンポーネントに属性をマップするための式を自動的に作成するオプションがあります。また、ソースに基づいてターゲットに新しい属性を作成するオプション、またはターゲットに基づいてソースに新しい属性を作成するオプションもあります。

この機能を使用すると、コンポーネント内に別のコンポーネントから導出された一連の属性を簡単に定義できます。たとえば、空の新しいセット・コンポーネントから接続をダウンストリーム・ターゲット・データストアにドラッグできます。「属性照合」ダイアログの「ソースでの属性の作成」オプションを選択したままでいると、セット・コンポーネントにはターゲット・データストアのすべての属性が移入されます。セット・コンポーネントをアップストリーム・コンポーネントに接続すると、アップストリーム属性にマップできるターゲット属性がすでに存在します。

コネクタ・ポイントおよびコネクタ・ポート

ODIコネクタの用語の概要は、「コネクタ」を参照してください。

1つのコンポーネント上のコネクタ・ポートをクリックし、別のコンポーネントのコネクタ・ポートに線をドラッグして、接続を定義できます。接続が許可される場合、ODIは、各コンポーネントで使用されていない既存のコネクタ・ポイントを使用するか、または必要に応じて追加のコネクタ・ポイントを作成します。接続がマッピング・ダイアグラムに表示され、接続された2つのコンポーネントのコネクタ・ポートをつなぐ線が示されます。2つのコンポーネント間に複数の接続があっても、1本の線しか表示されません。

ほとんどのコンポーネントは、マッピング・ダイアグラムでコンポーネントの横に小さい円として表示される、他のコンポーネントへの入力コネクタと出力コネクタの両方を使用できます。使用できる各タイプのコネクタ数が制限されるコンポーネント・タイプや、入力接続か出力接続のどちらか一方しか設定できないコンポーネントもあります。

プロパティ・インスペクタを使用して、コネクタ・ポイントを追加または削除できるコンポーネントもあります。

たとえば、結合コンポーネントにはデフォルトで2つの入力コネクタ・ポイントと、1つの出力コネクタ・ポイントがあります。ただし、複数の入力が許可されます。3つ目の接続を結合コンポーネントの入力コネクタ・ポートにドラッグすると、ODIは3つ目の入力コネクタ・ポイントを作成します。また、結合コンポーネントを選択し、プロパティ・インスペクタの「コネクタ・ポイント」セクションで緑色のプラス・アイコンをクリックして、追加の入力コネクタ・ポイントを追加することもできます。

注意:
すでに接続が最大数になっている入力ポートとの間で接続をドラッグすることはできません。たとえば、ターゲット・データストアで1つの入力コネクタ・ポイントしか許可されない場合、新たな接続を入力コネクタ・ポートにドラッグしようとしても接続は作成されません。

コネクタを削除するには、2つのコネクタ・ポイントの間の線を右クリックして「削除」を選択するか、線を選択して[Delete]キーを押します。

新しい属性の定義

コンポーネントをマッピングに追加する場合、データをソースから中間コンポーネントを介してターゲットに流すために、コンポーネントに属性を作成する必要がある場合があります。通常、新しい属性を定義して、データの変換を実行します。

次の方法を使用して、新しい属性を定義します。

- 「属性照合」ダイアログ: このダイアログは、あるコンポーネントのコネクタ・ポートから別のコンポーネントのコネクタ・ポートに接続をドラッグする際、少なくとも1つのコンポーネントがプロジェクタ・コンポーネントである場合に表示されます。
「属性照合」ダイアログには、ターゲットに属性を作成するオプションが含まれます。ターゲットに一致する名前の属性がすでにある場合、ODIはこれらの属性を自動的にマップします。「位置別」を選択した場合、ODIは最初の属性をターゲット内の既存の属性にマップし、残り(複数存在する場合)をその下に追加します。たとえば、ターゲット・コンポーネントに3つの属性があり、ソースに12の属性がある場合、最初の3つの属性が既存の属性にマップされ、残りの9つは既存のラベルを使用してコピーされます。

- 属性のドラッグ・アンド・ドロップ: 単一(または複数選択した)属性を1つのコンポーネントから別のコンポーネント(の既存の属性の上にではなく、コンポーネント・グラフィックの空白領域)にドラッグ・アンド・ドロップします。ODIは、接続を作成し(まだ存在しない場合)、属性も作成します。

ヒント:
コンポーネントのグラフィックに空白がない場合は、属性上にマウスを置くと、右側にスクロール・バーが表示されます。下部にスクロールし、空白行を表示します。これで、属性を空白領域にドラッグできます。
属性を別の属性にドラッグすると、ODIは、名前が一致しない場合でもその属性を別の属性にマップします。ターゲット・コンポーネントに新しい属性は作成されません。

- プロパティ・インスペクタでの新しい属性の追加: プロパティ・インスペクタの「属性」タブで、緑のプラス・アイコンを使用して、新しい属性を作成します。「属性」表で、新しい属性の名前、データ型およびその他のプロパティを選択または入力できます。次に、他のコンポーネントの属性を新しい属性にドラッグして、新しい属性にマップできます。

注意:
ODIでは、無効なデータ型接続の作成が許可されます。したがって、新しい属性を作成するときは、適切なデータ型を必ず設定する必要があります。たとえば、DATEデータ型の属性を新しい属性にマップする場合、新しい属性もDATE型になるようにする必要があります。
実行中、タイプ不一致エラーがSQLエラーとして捕捉されます。

式および条件の定義

式と条件を使用して、個々の属性をコンポーネントからコンポーネントにマップします。コンポーネント・タイプによって、デフォルトの式と条件が決まり、これらがマッピングの基礎となるコードに変換されます。

たとえば、すべてのターゲット・コンポーネントは属性ごとに1つの式を持ちます。フィルタ、結合またはルックアップ・コンポーネントは、(SQLなどの)コードを使用して、コンポーネント・タイプに適した式を作成します。

ヒント:
ターゲットで式が設定されると、その式により参照されるソース属性が、アップストリーム・ソースでマゼンタとして強調表示されます。たとえば、tgt_empno (をクリックして)選択し、ターゲット列tgt_empnoの式emp.empnoを選択した場合、ソース・データストアempの属性empnoが強調表示されます。
この強調表示機能により、目的の各ターゲット属性に有効な相互参照を含む式があることをすばやく確認できます。式を誤って手動で編集した場合(ソース属性のスペルを間違えた場合など)、相互参照は無効になり、ターゲット属性をクリックしてもソース属性は強調表示されません。

様々なプロパティ・フィールドに表示されるコードを変更して、コンポーネントの式と条件を変更できます。

注意:
通常は手動で式を編集せずに、式エディタを使用することをお薦めします。式エディタからソース属性を選択すると、必ずその式に有効な相互参照が付与されるため、編集エラーを最小限に抑えることができます。詳細は、「式エディタ」を参照してください。

式にはVARCHARやNUMERICなどの戻り型があります。条件の結果の型はブールであるため、条件の結果は常にTRUEまたはFALSEに評価される必要があります。条件は、フィルタ、結合およびルックアップ(セレクタ)の各コンポーネントに必要です。一方、式は、一部の変換の実行や、属性レベルのマッピングの作成のために、データストア、集計および個別(プロジェクタ)の各コンポーネントで使用されます。

各プロジェクタ・コンポーネントには、その属性に対する式を含めることができます。(ほとんどのプロジェクタ・コンポーネントでは1つの属性に1つの式のみ含まれますが、セット・コンポーネントの属性には複数の式を含めることができます。)属性の式を変更した場合は、小さな「f」アイコンが論理ダイアグラムの属性に表示されます。このアイコンは、関数がそこに配置されていることを示す視覚的キューとなります。

ターゲット属性のマッピングを定義するには:

1. マッピング・エディタで、属性のプロパティをプロパティ・インスペクタに表示する属性を選択します。

2. 「ターゲット」タブ(式の場合)または「条件」タブ(条件の場合)で、「式」フィールドまたは「条件」フィールドを変更して、必要な論理を作成します。

ヒント:
ダイアグラム内のコンポーネントの属性を式フィールドにドラッグ・アンド・ドロップすると、完全修飾属性名がコードに自動的に追加されます。

3. オプションで、式が含まれるフィールドをプロパティ・インスペクタで選択するか、フィールド上にマウスを置いてから、フィールドの右に表示される歯車アイコンをクリックすると、高度な「式エディタ」が開きます。
左側の属性は、スコープ内にある(すでに接続されている)属性のみです。このため、属性を持つコンポーネントへのアップストリーム接続またはダウンストリーム接続がないコンポーネントを作成した場合、属性はリストされません。

4. オプションで、式または条件の変更後に、SQLコードのエラーをチェックするためにマッピングを検証することを検討します。論理ダイアグラムの上部にある緑のチェック・マーク・アイコンをクリックします。検証エラーがある場合は、パネルに表示されます。

物理構成の定義

マッピング・エディタの「物理」タブで、マップされたデータのロード戦略と統合戦略を定義します。Oracle Data Integratorでは、マッピングの論理ダイアグラムの構成に応じてフローが自動的に計算されます。データ・フローに対するデフォルトのナレッジ・モジュール(KM)が提案されます。「物理」タブでは、データ・フローを表示し、データのロードおよび統合に使用するKMを選択できます。

物理設計の詳細は、「物理設計」を参照してください。

マッピングの実行

マッピングが作成されると、そのマッピングを実行できます。この項では、マッピングの実行プロセスの要約を示します。統合プロセスの実行の詳細は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

マッピングを実行するには:

1. デザイナ・ナビゲータの「プロジェクト」メニューで、マッピングを右クリックして「実行」を選択します。
または、マッピング・エディタでマッピングを開いて、ツールバーの「実行」アイコンをクリックします。または、「実行」メニューから「実行」を選択します。

2. 「実行」ダイアログで、次の実行パラメータを選択します:

- マッピングが実行されるコンテキストを選択します。コンテキストの詳細は、「コンテキスト」を参照してください。

- 実行する「物理マッピング設計」を選択します。「物理マッピング設計の作成および管理」を参照してください。

- マッピングを実行する論理エージェントを選択します。「ローカル(エージェントなし)」を選択することで、Oracle Data Integrator Studioに組み込まれているエージェントを使用して、オブジェクトを実行することもできます。論理エージェントの詳細は、「エージェント」を参照してください。

- 「ログ・レベル」を選択して、マッピングの実行時にバリデータに表示されるメッセージの詳細を制御します。ロギングの詳細は、『Oracle Data Integratorの管理』のログの管理に関する項を参照してください。

- コードを実際に実行せずにプレビューする場合は、「シミュレーション」ボックスを選択します。この場合、ソース・データストアまたはターゲット・データストア上のデータは変更されません。詳細は、『Oracle Data Integratorの管理』の実行のシミュレーションに関する項を参照してください。

3. 「OK」をクリックします。

4. 「情報」ダイアログが表示されます。セッションが正常に開始されると、「セッションを開始しました」というメッセージが表示されます。

5. 「OK」をクリックします。

注意:

- マッピングを実行すると、「検証結果」ペインが開きます。ここで検証警告やエラーを確認できます。

- オペレータ・ナビゲータの「セッション・リスト」でセッションを表示できます。セッション・ノードを展開し、実行したマッピングを展開して、セッションを確認します。「セッション」アイコンは、セッションがまだ実行中か、完了したか、またはエラーが原因で停止したかを示します。セッションの監視の詳細は、『Oracle Data Integratorの管理』の統合プロセスの監視に関する項を参照してください。

マッピング・コンポーネントの使用

マッピング・エディタの論理ビューで、データストアを他のコンポーネントと結合して、マッピングを設計します。マッピング・ダイアグラムを使用して、データセット、フィルタ、ソートなどのコンポーネントを調整および接続できます。データストアとコンポーネント間に接続を形成するには、これらのオブジェクトに表示されるコネクタ・ポート間で線をドラッグします。

マッピング・コンポーネントは、マッピングでの使用方法を示す2つのカテゴリ(プロジェクタ・コンポーネントとセレクタ・コンポーネント)に分けられます。

プロジェクタ・コンポーネント

プロジェクタは、マッピング内を流れるデータに存在する属性に影響するコンポーネントです。プロジェクタ・コンポーネントでは独自の属性を定義し、式を使用して、前のコンポーネントの属性をプロジェクタの属性にマップします。プロジェクタでは前のコンポーネントから発生した属性は表示されないため、後続のすべてのコンポーネントで使用できるのは、そのプロジェクタの属性のみです。

様々なプロジェクタ・コンポーネントの使用方法を理解するために、次の項を確認してください。

- ソースおよびターゲット・データストア

- 「複数のターゲットの作成」

- 「再使用可能マッピングの追加」

- 集計の作成

- 個別の作成

- 「ピボットの作成」

- セットの作成

- 「副問合せフィルタの作成」

- 「テーブル・ファンクションの作成」

- 「アンピボットの作成」

- 「フラット化コンポーネントの作成」

- 「不規則コンポーネントの作成」

セレクタ・コンポーネント

セレクタ・コンポーネントは、前のコンポーネントの属性を再使用します。結合セレクタおよびルックアップ・セレクタは、前のコンポーネントの属性を結合します。たとえば、データストア・コンポーネントの後に続くフィルタ・コンポーネントでは、そのデータストア・コンポーネントのすべての属性が再使用されます。そのため、セレクタ・コンポーネントでは、独自の属性がダイアグラムやプロパティの一部として表示されず、丸い形で表示されます。(式コンポーネントはこのルールの例外です。)

セレクタ・コンポーネントの属性をマッピング内の別のコンポーネントにマッピングする場合は、属性を選択し、その属性をソースから、一連の接続済セレクタ・コンポーネントを通って、ターゲット・データストアまたは次のプロジェクタ・コンポーネントまでドラッグできます。ODIは、その属性が中間セレクタ・コンポーネントを通って移動するために必要な問合せを自動的に作成します。

次の項では、様々なセレクタ・コンポーネントの使用方法を説明します。

- 式の作成

- フィルタの作成

- 結合およびルックアップの作成

- ソートの作成

- 分割の作成

- マッピングでのデータセットの作成

式エディタ

マッピングで使用するほとんどのコンポーネントは、実際は、データがソースからターゲット・データストアに流れるときにデータに作用する、コード内の式の表現です。これらのコンポーネントを作成または変更する場合は、プロパティ・インスペクタで直接式のコードを編集できます。

より複雑な式で支援が必要な場合は、式エディタと呼ばれる拡張エディタを開くこともできます。(場合によっては、エディタにコンポーネントのタイプに応じたラベルが付いていることがあります。たとえば、フィルタ・コンポーネントでは、エディタはフィルタ条件拡張エディタと呼ばれます。ただし、提供される機能は同じです。)

式エディタにアクセスするには、コンポーネントを選択し、プロパティ・インスペクタでコードが含まれるフィールドを選択するか、フィールド上にマウス・ポインタを置きます。フィールドの右側に歯車アイコンが表示されます。歯車アイコンをクリックして、式エディタを開きます。

たとえば、フィルタ・コンポーネントで歯車アイコンを表示するには、「条件」タブの「フィルタ条件」フィールドを選択するか、フィールド上にマウスを置きます。データストア・コンポーネントで歯車アイコンを表示するには、「ジャーナル化」タブの「ジャーナル化されたデータ・フィルタ」フィールドを選択するか、フィールド上にマウスを置きます。

式エディタの一般的なビュー例を図8-2に示します。

図8-2 式エディタの例

「式」エディタは、次のパネルで構成されています。

- 属性: このパネルは、式エディタの左に表示されます。マッピングの式を編集する場合、このパネルにはスコープ内の属性の名前が含まれます。つまり、現在表示されている属性は、コンポーネントの式で参照できることを意味します。たとえば、コンポーネントがソース・データストアに接続されている場合、そのデータストアのすべての属性がリストされます。

- 式: このパネルは、「式」エディタの中央に表示されます。式の現在のコードが表示されます。ここに直接コードを入力したり、他のパネルから要素をドラッグ・アンド・ドロップできます。

- テクノロジ関数: このパネルは、式の下に表示されます。設定されているテクノロジで対応している言語要素および関数をリストします。

- 変数、順序、ユーザー関数およびodiRef API: このパネルは、テクノロジ関数の右に表示され、次のものが含まれます。

- プロジェクトおよびグローバル変数。

- プロジェクトおよびグローバル順序

- プロジェクトおよびグローバル・ユーザー定義関数

- OdiRef置換メソッド

ツールバーのボタンを使用して、標準的な編集機能(切取り、コピー、貼付け、元に戻す、やりなおし)を使用できます。

ソースおよびターゲット・データストア

マッピングにソースまたはターゲット・データストアを挿入するには:

1. デザイナ・ナビゲータで、「モデル」ツリーを展開し、ソースまたはターゲットとして挿入するデータストアを含むモデルまたはサブモデルを展開します。

2. このデータストアを選択してマッピング・パネルにドラッグします。データストアが表示されます。

3. データストアをソースにするには、データストアの出力(右)コネクタから1つ以上のコンポーネントにリンクをドラッグします。データストアは、少なくとも1つの発信接続を持たないとソースになりません。
データストアをターゲットにするには、コンポーネントからデータストアの入力(左)コネクタにリンクをドラッグします。データストアは、着信接続があるまではターゲットになりません。

データストアを定義した後は、そのデータを表示できます。

データストアのデータをマッピングに表示するには:

1. マッピング・ダイアグラムでデータストアのタイトルを右クリックします。

2. 「データ」を選択します。

データ・エディタが開きます。

複数のターゲットの作成

Oracle Data Integrator 12cで、マッピングに複数のターゲットを作成することは簡単です。論理ダイアグラムで入力はあるが出力がないデータストア・コンポーネントはすべて、ターゲットとみなされます。

ODIでは、マッピングの任意のポイントでコンポーネント出力を複数のフローに分割できます。また、複数の独立フローを持つ単一マッピングを作成でき、これにより、複数マッピングを調整するためのパッケージが不要になります。

多数のコンポーネントの出力ポートを複数のダウンストリーム・コンポーネントに接続できます。これにより、コンポーネントのすべての行が各ダウンストリーム・フローで処理される結果となります。行をルーティングするか、ダウンストリーム・フローで条件付きで処理する必要がある場合は、分割コンポーネントを使用して分割条件を定義することを考慮してください。

関連項目:
分割の作成

ターゲット順序の指定

複数のターゲットを持つマッピングは、デフォルトで、ターゲットへの定義済データ・ロード順序に従います。「ターゲット・ロード順序」プロパティを使用して、部分的または完全な順序を定義できます。順序を明示的に割り当てていないターゲットは、ODIによって任意の順序でロードされます。

注意:
ターゲット・ロード順序は、再使用可能マッピングにも適用されます。再使用可能マッピングにソース・データストアまたはターゲット・データストアが含まれている場合は、親マッピングのターゲット・ロード順序プロパティに再使用可能マッピング・コンポーネントを含めることができます。

複数のターゲットの処理順序は、マッピングの「ターゲット・ロード順序」プロパティで設定できます。

1. 論理ダイアグラムのバックグラウンドをクリックして、マッピングのオブジェクトの選択を解除します。プロパティ・インスペクタにマッピングのプロパティが表示されます。

2. プロパティ・インスペクタで、デフォルトのターゲット・ロード順序を受け入れるか、「ターゲット・ロード順序」フィールドに新しいターゲット・ロード順序を入力します。

注意:
デフォルトのロード順序は、マッピングのターゲット・データストアの主キー/外部キーの関係に基づいて自動的に計算されます。このデフォルトは、変更の必要があれば、それによってロード順序が主キー/外部キーの関係と競合する場合でも変更できます。この場合、マッピングを検証すると、警告が表示されます。

「ターゲット・ロード順序」フィールドを選択するか、フィールドにマウスを置き、歯車アイコンをクリックして、「ターゲット・ロード順序」を開きます。このダイアログには、ターゲットにすることができる、使用可能なすべてのデータストア(およびデータストアを含む再使用可能マッピング)が表示され、1つ以上を「順序付きターゲット」フィールドに移動できます。「順序付きターゲット」フィールドで、右側のアイコンを使用して、処理順序を再調整します。

ヒント:
ターゲット順序は、マッピングに複数のターゲットがあり、ターゲット間に外部キー(FK)関係がある場合に有効です。たとえば、マッピングにEMPおよびDEPTという2つのターゲットがあり、EMP.DEPTNOはDEPT.DEPTNOのFKです。ソース・データに従業員と部門に関する情報があり、従業員に関する行(EMP)をロードする前に、まず部門に関する情報(DEPT)をロードする必要があります。これが確実に行われるようにするには、ターゲット・ロード順序がDEPT, EMPに設定されている必要があります。

再使用可能マッピングの追加

再使用可能マッピングは、プロジェクトのフォルダ内に格納したり、デザイナ・ナビゲータの「グローバル・オブジェクト」ツリー内のグローバル・オブジェクトとして格納できます。

再使用可能マッピングをマッピングに追加するには:

1. 現在のプロジェクト内に格納された再使用可能マッピングを追加するには:
デザイナ・ナビゲータで、「プロジェクト」ツリーを展開し、作業しているプロジェクトのツリーを展開します。再使用可能マッピング・ノードを展開して、このプロジェクト内に格納されているすべての再使用可能マッピングをリストします。

グローバル再使用可能マッピングを追加するには:

デザイナ・ナビゲータで、グローバル・オブジェクト・ノードを展開し、再使用可能マッピング・ノードを展開して、すべてのグローバル再使用可能マッピングをリストします。

2. 再使用可能マッピングを選択し、それをマッピング・ダイアグラムにドラッグします。再使用可能マッピング・コンポーネントが、基礎となる再使用可能マッピングへのインタフェースとしてダイアグラムに追加されます。

集計の作成

集計コンポーネントは、平均、カウント、最大、合計などの集計関数を使用して属性をグループ化および結合するプロジェクタ・コンポーネントです(「プロジェクタ・コンポーネント」を参照)。ODIは、GROUP BY属性として使用される集計関数なしで属性を自動的に選択します。これは、「グループ化基準」プロパティや、「手動のGROUP BY句」プロパティを使用してオーバーライドできます。

集計コンポーネントを作成するには:

1. コンポーネント・パレットから論理ダイアグラムに集計コンポーネントをドラッグ・アンド・ドロップします。

2. 属性がソース・コンポーネントと異なる場合は、集計の属性を定義します。これを行うには、プロパティ・インスペクタの「属性」タブを選択し、緑のプラス・アイコンをクリックして、属性を追加します。「ターゲット」列に新しい属性名を入力し、それらに適切な値を割り当てます。
集計コンポーネントの属性がソース・コンポーネントの属性と同じである場合は、属性照合を使用します(ステップ4を参照)。

3. ソースのコネクタ・ポートから集計コンポーネントのコネクタ・ポートに線をドラッグして、ソース・コンポーネントからの接続を作成します。

4. 「属性照合」ダイアログが表示されます。集計コンポーネントの属性がソース・コンポーネントの属性と同じである場合は、「ターゲットでの属性の作成」ボックスを選択します(「属性照合」を参照)。

5. 必要に応じて、ソースのすべての属性を、属性照合によりマップされていないターゲットにマップし、必要に応じて変換式を作成します(「式および条件の定義」を参照)。

6. プロパティ・インスペクタで、属性が「属性」タブの表にリストされます。必要に応じて、各属性に集計関数を指定します。デフォルトでは、集計関数(合計、カウント、平均、最大、最小など)を使用してマップされないすべての属性は、GROUP BYとして使用されます。
属性をクリックして、集計式を変更できます。たとえば、部門ごとの平均給与を計算する場合は、2つの属性があります。最初の属性はAVG_SALと呼ばれ、式AVG(EMP.SAL)を提供します。2つ目の属性はDEPTNOと呼ばれ、式はありません。グループ化基準がAutoに設定されている場合、生成されたコードのGROUP BY句にDEPTNOが自動的に含まれます。

このデフォルトをオーバーライドするには、指定の属性でプロパティ「グループ化基準」をAutoからYesまたはNoに変更するか、表のセルをダブルクリックし、ドロップダウン・リストから目的のオプションを選択します。

集計コンポーネント全体に対してデフォルト以外のGROUP BY句を設定できます。プロパティ・インスペクタの「一般」タブを選択し、「手動のGROUP BY句」を設定します。たとえば、「手動のGROUP BY句」をYEAR(customer.birthdate)に設定し、誕生年別にグループ化します。

7. オプションで、集計コンポーネントのHAVINGプロパティを設定して、HAVING句を追加します。たとえば、SUM(order.amount) > 1000となります。

個別の作成

個別は、フローに存在する属性のサブセットを予測するプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。各行の値は一意であることが必要で、動作はSQL DISTINCT句のルールに従います。

ソース・データストアから個別の行を選択するには:

1. コンポーネント・パレットから論理ダイアグラムに個別コンポーネントをドラッグ・アンド・ドロップします。

2. 前のコンポーネントから個別コンポーネントに線をドラッグして、前のコンポーネントを個別コンポーネントに接続します。
「属性マッピング」ダイアログが表示されます。「ターゲットでの属性の作成」を選択して、個別コンポーネントのすべての属性を作成します。または、必要に応じて、プロパティ・インスペクタの「属性」タブを使用して、属性を手動でマップできます。

3. 個別コンポーネントは、予測されたすべての属性一致を持つ行をすべてフィルタ処理するようになります。

式の作成

式は、フロー内の前のコンポーネントから属性を継承し、追加の再使用可能な属性を追加するセレクタ・コンポーネント(「セレクタ・コンポーネント」を参照)です。式を使用して、1つのマッピング内に再使用可能な多数の式を定義できます。SQL式を使用して、ソース属性から、属性の名前を変更したり、変換したりできます。動作は、SQL SELECT句のルールに従います。

式コンポーネントの最適な用途は、中間変換が複数回使用される場合です。たとえば、複数のターゲットで使用されるフィールドを事前計算する場合です。

変換が1度だけ使用される場合は、ターゲット・データベースまたは他のコンポーネントで変換を実行することを検討します。

ヒント:
複数のマッピングにわたって式を再使用する場合は、複雑度に応じて、再使用可能マッピングまたはユーザー関数の使用を検討します。「再使用可能マッピング」および「ユーザー関数の使用」を参照してください。

式コンポーネントを作成するには:

1. コンポーネント・パレットから論理ダイアグラムに式コンポーネントをドラッグ・アンド・ドロップします。

2. 前のコンポーネントから式コンポーネントに線をドラッグして、前のコンポーネントを式コンポーネントに接続します。
「属性マッピング」ダイアログが表示されます。「ターゲットでの属性の作成」を選択して、式コンポーネントのすべての属性を作成します。

場合によっては、式コンポーネントがダウンストリーム・コンポーネントの属性と一致する必要がある場合があります。この場合は、最初に式コンポーネントをダウンストリーム・コンポーネントと接続し、「ソースでの属性の作成」を選択して、式コンポーネントにターゲットの属性を移入します。

3. 必要に応じて、プロパティ・インスペクタの「属性」タブを使用して、式コンポーネントに属性を追加します。ダウンストリーム・コンポーネントの複数の式で使用される事前計算済フィールドに属性を追加すると便利な場合があります。

4. 必要に応じて個々の属性の式を編集します(「式および条件の定義」を参照)。

フィルタの作成

フィルタは、フィルタ条件に基づいてデータのサブセットを選択できるセレクタ・コンポーネント(「セレクタ・コンポーネント」を参照)です。動作は、SQL WHERE句のルールに従います。

フィルタは、データセットに配置しても、マッピングにフロー・コンポーネントとして直接配置してもかまいません。

データセットで使用する際、フィルタは1つのデータストアまたは再使用可能マッピングに接続され、データセットからこのコンポーネントのすべてのプロジェクションをフィルタします。詳細は、「データセットを使用したマッピングの作成」を参照してください。

マッピングにフィルタを定義するには:

1. コンポーネント・パレットから論理ダイアグラムにフィルタ・コンポーネントをドラッグ・アンド・ドロップします。

2. 前のコンポーネントからフィルタ・コンポーネントに属性をドラッグします。コネクタは、前のコンポーネントからフィルタにドラッグされ、属性はフィルタ条件で参照されます。
プロパティ・インスペクタの「条件」タブで、フィルタ条件を編集し、式を完了します。たとえば、CUSTOMER表(別名がCUSTOMERのソース・データストア)からNAMEがnullでない顧客を選択する場合、式はCUSTOMER.NAME IS NOT NULLとなります。

ヒント:
「フィルタ条件」フィールドの右にある歯車アイコンをクリックして、フィルタ条件拡張エディタを開きます。歯車アイコンは、「フィルタ条件」フィールドを選択するか、またはフィールド上にマウス・ポインタを置く場合にのみ表示されます。フィルタ条件拡張エディタの詳細は、「式エディタ」を参照してください。

3. オプションで、プロパティ・インスペクタの「一般」タブで、「名前」フィールドに新しい名前を入力します。マッピングに複数のフィルタがある場合は、一意の名前を使用すると役立ちます。

4. オプションで、優先する実行場所を示すように「実行ヒント」を設定します(ヒントなし、ソース、ステージングまたはターゲット)。物理ダイアグラムでは、可能な場合、ヒントに応じたフィルタの実行が特定されます。詳細は、「実行場所の構成」を参照してください。

結合およびルックアップの作成

この項には次のトピックが含まれます:

- 結合について

- ルックアップについて

- 結合またはルックアップの作成

結合について

結合は、複数のフロー間に結合を作成するセレクタ・コンポーネント(「セレクタ・コンポーネント」を参照)です。アップストリーム・コンポーネントの属性は、結合コンポーネントの属性として結合されます。

結合は、データセットに配置しても、マッピングにフロー・コンポーネントとして直接配置してもかまいません。結合は、2つ以上のデータ・フロー(データストア、データセット、再使用可能マッピング、または様々なコンポーネントの組合せ)のデータを結合します。

データセットで使用すると、結合は、選択された結合タイプを使用しているデータストアのデータを結合します。詳細は、「データセットを使用したマッピングの作成」を参照してください。

フロー・コンポーネントとして使用される結合では、データストアやその他のアップストリーム・コンポーネントなど、2つ以上のソースの属性を結合できます。結合条件は、マッピング・ダイアグラム内で、2つ以上のコンポーネントから結合コンポーネントに連続して属性をドラッグすることで形成できます。デフォルトでは、結合条件は、2つの属性間の等結合になります。

ルックアップについて

ルックアップは、駆動フローの値を指定されたルックアップ・フローからデータを戻すセレクタ・コンポーネント(「セレクタ・コンポーネント」を参照)です。結合コンポーネントと同様に、両方のフローの属性が結合されます。

ルックアップは、データセットに配置しても、マッピングにフロー・コンポーネントとして直接配置してもかまいません。

データセットで使用すると、ルックアップは、選択された結合タイプを使用してデータストアのデータを結合している、2つのデータストアまたは再使用可能マッピングに接続されます。詳細は、「データセットを使用したマッピングの作成」を参照してください。

フロー・コンポーネントとして使用される(つまり、データセット内にない)ルックアップは、2つのフローを結合できます。ルックアップ条件は、駆動フロー、ルックアップ・フローの順で属性をルックアップ・コンポーネントにドラッグして作成できます。ルックアップ条件は、2つの属性間の等結合になります。

「複数の一致行」プロパティは、ルックアップによって複数の結果が戻された場合に、ルックアップ結果のどの行をルックアップ結果として選択するかを定義します。指定されたルックアップ条件が複数のレコードに一致した場合、複数の行が戻されます。

次のオプションのいずれかを選択して、ルックアップ操作によって複数の行が戻された場合に実行するアクションを指定できます。

- エラー: 複数行により、マッピングが失敗します。
このオプションは、ルックアップ操作によって複数の行が戻された場合にマッピングの実行が失敗することを示します。

注意:
ODI 12.1.3では、「非推奨 - エラー: 複数行により、マッピングが失敗します。」オプションでEXPRESSION_IN_SELECTオプション値を使用することは推奨されなくなりました。これは、ODI 12.1.2の特定のパッチ適用バージョンとの下位互換性のために用意されています。
このオプションは、「エラー: 複数行により、マッピングが失敗します。」のERROR_WHEN_MULTIPLE_ROWオプションに置き換わりました。

- すべての行(結果行の数が入力行の数と異なる可能性があります)
このオプションは、ルックアップ操作によって複数の行が戻された場合に、すべての行がルックアップ結果として戻されることを示します。

注意:
ODI 12.1.3では、「非推奨 - すべての行(結果行の数が入力行の数と異なる可能性があります)。」オプションでLEFT_OUTERオプション値を使用することは推奨されなくなりました。これは、ODI 12.1.2の特定のパッチ適用バージョンとの下位互換性のために用意されています。
このオプションは、「すべての行(結果行の数が入力行の数と異なる可能性があります)。」のALL_ROWSオプションに置き換わりました。

- 任意の単一行を選択する
このオプションは、ルックアップ操作によって複数の行が戻された場合に、戻された行から任意の1行がルックアップ結果として選択されることを示します。

- 最初の単一行を選択する
このオプションは、ルックアップ操作によって複数の行が戻された場合に、戻された行から最初の1行がルックアップ結果として選択されることを示します。

- n番目の単一行を選択する
このオプションは、ルックアップ操作によって複数の行が戻された場合に、結果行からn番目の行がルックアップ結果として選択されることを示します。このオプションを選択すると「n番目の行番号」フィールドが表示され、ここでnの値を指定できます。

- 最後の単一行を選択してください。
このオプションは、ルックアップ操作によって複数の行が戻された場合に、戻された行から最後の1行がルックアップ結果として選択されることを示します。

「参照属性のデフォルト値および順序基準」表を使用して、複数の行を含む結果セットを順序付けする方法と、ルックアップで入力属性にルックアップ条件に一致するものが見つからなかった場合のデフォルト値を指定します。結果セットの順序と同じ順序で(上から下に)属性が表示されていることを確認します。たとえば、ORDER BY attr2、attr3、attr1のように順序付けを実行する場合、属性は同じ順序でリストされている必要があります。矢印ボタンを使用して属性の位置を変更し、順序を指定できます。

「一致行なし」プロパティは、ルックアップ条件を満たす行がない場合に実行されるアクションを示します。ルックアップ操作によって行が戻されなかった場合に実行するオプションを次のうちから選択できます。

- 戻り行なし
このオプションでは、ルックアップ結果にルックアップ条件を満たす行がない場合、行を戻しません。

- 行を次のデフォルト値とともに戻します
このオプションでは、ルックアップ結果にルックアップ条件を満たす行がない場合に、デフォルト値を含む行を戻します。このオプションの下の「参照属性のデフォルト値および順序基準」表を使用して、各ルックアップ属性のデフォルト値を指定します。

結合またはルックアップの作成

2つのアップストリーム・コンポーネント間に結合またはルックアップを作成するには:

1. コンポーネント・パレットから論理ダイアグラムに結合またはルックアップをドラッグします。

2. 結合に存在する属性またはルックアップ条件を、前のコンポーネントから結合またはルックアップ・コンポーネントにドラッグします。たとえば、ソース・データストアCUSTOMERの属性ID、およびソース・データストアORDERのCUSTIDが結合にドラッグされると、結合条件CUSTOMER.ID = ORDER.CUSTIDが作成されます。

注意:
3つ以上の属性が結合またはルックアップにドラッグされると、ODIは属性を比較し、AND演算子を使用して結合します。たとえば、ソースAおよびBから結合コンポーネントに属性を次の順序でドラッグした場合:

A.FIRSTNAME
B.FIRSTNAME
A.LASTNAME
B.LASTNAME

次の結合条件が作成されます。

A.FIRSTNAME=B.FIRSTNAME AND A.LASTNAME=B.LASTNAME

追加の属性ペアを使用して同様に続行できます。

必要に応じて、条件を作成した後に編集できます。

3. プロパティ・インスペクタの「条件」タブで、結合条件またはルックアップ条件を編集し、式を完了します。

ヒント:
「結合条件」または「ルックアップ条件」フィールドの右にある歯車アイコンをクリックして、式エディタを開きます。歯車アイコンは、条件フィールドを選択するか、または条件フィールド上にマウス・ポインタを置く場合にのみ表示されます。式エディタの詳細は、「式エディタ」を参照してください。

4. オプションで、優先する実行場所を示すように「実行ヒント」を設定します(ヒントなし、ソース、ステージングまたはターゲット)。物理ダイアグラムでは、可能な場合、ヒントに応じたフィルタの実行が特定されます。

5. 結合の場合:
各種ボックス(「相互」、「自然」、「左外部」、「右外部」、「完全外部」(左側のボックスと右側のボックスの両方をチェック)または「内部結合」(すべてのボックスを空のままにする))をチェックして、「結合タイプ」を選択します。結合によって取得される行の説明テキストが更新されます。

ルックアップの場合:

ドロップ・ダウン・リストからオプションを選択して、「複数の一致行」を選択します。「技術的な説明」フィールドは、完全修飾属性名を使用して、ルックアップを表すSQLコードで更新されます。

該当する場合、「参照属性のデフォルト値および順序基準」表を使用して、複数の行が含まれる結果セットを順序付けする方法を指定します。

「一致行なし」プロパティの値を選択して、ルックアップ条件を満たす行がない場合に実行されるアクションを指定します。

6. 結合の場合、オプションで、この結合に順序付き結合構文を使用する場合は、「ANSI構文の生成」ボックスを選択します。
「ANSI構文の生成」を有効化すると「結合順序」ボックスが選択され、結合に順序番号が自動的に割り当てられます。

7. データセット内部の結合の場合、結合順序を定義します。「結合順序」チェック・ボックスを選択し、「ユーザー定義」フィールドに整数を入力します。結合コンポーネントの結合順序番号がより小さい場合は、特定の結合が他の結合の中で最初に処理されることを意味します。結合順序番号により、FROM句での結合の順序が決定します。結合の結合順序番号がより小さい場合は、他の結合よりも早く実行されることを意味します。これは、データセット内に外部結合がある場合に重要となります。
例: マッピングには2つの結合、JOIN1およびJOIN2があります。JOIN1はAおよびBを接続し、その結合タイプはLEFT OUTER JOINです。JOIN2はBとCを接続し、その結合タイプはRIGHT OUTER JOINです。

(A LEFT OUTER JOIN B) RIGHT OUTER JOIN Cを生成するには、結合順序10をJOIN1に割り当て、20をJOIN2に割り当てます。

A LEFT OUTER JOIN (B RIGHT OUTER JOIN C)を生成するには、結合順序20をJOIN1に割り当て、10をJOIN2に割り当てます。

ピボットの作成

ピボット・コンポーネントは、複数の入力行に格納されているデータを単一の出力行に変換するプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。ピボット・コンポーネントを使用すると、ソースからデータを1回抽出し、ソース・データ内で属性別にグループ化されているソース行セットから1行を生成できます。ピボット・コンポーネントは、マッピングのデータ・フローの任意の場所で使用できます。

例: 売上データのピボット

表8-2に、SALESリレーショナル表のサンプル・データを示します。QUARTER属性がとることのできる文字値は4種類あり、それぞれが各四半期に対応しています。すべての売上データは、SALESという1つの属性に含まれます。

表8-2 SALES

YEAR

QUARTER

SALES

2010

Q1

10.5

2010

Q2

11.4

2010

Q3

9.5

2010

Q4

8.7

2011

Q1

9.5

2011

Q2

10.5

2011

Q3

10.3

2011

Q4

7.6

表8-3に、表がピボットされた後のリレーショナル表SALESのデータを示します。それまでQUARTER属性(Q1、Q2、Q3およびQ4)に格納されていたデータは個別の4つの属性(Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Sales)に対応します。前にSALES属性に含まれていた売上データは、各四半期を表す4つの属性間に分散されます。

表8-3 PIVOTED DATA

年

Q1_Sales

Q2_Sales

Q3_Sales

Q4_Sales

2010

10.5

11.4

9.5

8.7

2011

9.5

10.5

10.3

7.6

行ロケータ

ピボット・コンポーネントを使用すると、行ロケータに基づいて複数の入力行が1行に変換されます。行ロケータは、定義した一連の出力属性に対応するようにソースから選択する必要のある属性です。ピボット操作を実行するには、行ロケータを指定する必要があります。

この例では、行ロケータはSALES表の属性QUARTERで、ピボットされた出力データの属性Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Salesに対応します。

ピボット・コンポーネントの使用

マッピングでピボット・コンポーネントを使用するには:

1. ソース・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

2. コンポーネント・パレットから論理ダイアグラムにピボット・コンポーネントをドラッグ・アンド・ドロップします。

3. ソース・データストアから適切な属性をピボット・コンポーネントにドラッグ・アンド・ドロップします。この例では、YEAR属性です。

注意:
行ロケータ属性または出力属性に対応するデータ値が含まれる属性をドラッグしないでください。この例では、QUARTERが行ロケータ属性で、SALESがQ1_Sales、Q2_Sales、Q3_SalesおよびQ4_Sales出力属性に対応するデータ値(売上高)が格納される属性です。

4. ピボット・コンポーネントを選択します。ピボット・コンポーネントのプロパティは、プロパティ・インスペクタに表示されます。

5. ピボット・コンポーネントの名前および説明を入力します。

6. 必要に応じて、ピボット・コンポーネントの集計関数を変更します。デフォルトはMINです。

7. 式を入力するか式エディタを使用して行ロケータを指定します。この例では、SALES表のQUARTER属性が行ロケータであるため、式はSALES.QUARTERとなります。

8. 「行ロケータ値」の下で「+」記号をクリックして行ロケータ値を追加します。この例では、行ロケータ属性QUARTERに指定可能な値はQ1、Q2、Q3およびQ4です。

9. 「属性」の下で、各入力行に対応する出力属性を追加します。必要に応じて、新規属性を追加したり、リストされている属性の名前を変更できます。
この例では、4つの入力行Q1、Q2、Q3およびQ4にそれぞれ対応する4つの新規属性Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Salesを追加します。

10. 必要に応じて、ソースから売上高を取得する各属性の式を変更し、各属性に一致する行を選択します。
この例では、各属性に対する式をSALES.SALESに設定し、それぞれ一致する行をQ1、Q2、Q3およびQ4に設定します。

11. ターゲット・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

12. ピボット・コンポーネントの出力(右)コネクタからターゲット・データストアの入力(左)コネクタへとリンクをドラッグし、ピボット・コンポーネントをターゲット・データストアに接続します。

13. ピボット・コンポーネントの適切な属性をターゲット・データストアにドラッグ・アンド・ドロップします。この例では、YEAR、Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Salesです。

14. 必要に応じて、物理ダイアグラムに移動して新しいKMを割り当てます。
マッピングを保存および実行してピボット操作を実行します。

セットの作成

セット・コンポーネントは、UNION、INTERSECT、EXCEPT、MINUSなどのセット操作を使用して、複数の入力フローを1つに結合するプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。動作は、SQL演算子を反映します。

注意:
PigSetCmdでは、EXCEPTセット操作はサポートされません。

追加の入力フローをセット・コンポーネントに追加するには、新しいフローを接続します。入力フローの数は、「演算子」タブの「入力コネクタ・ポイント」のリストに表示されます。入力フローを削除する場合は、入力コネクタ・ポイントも削除する必要があります。

2つ以上のソースから1つのセットを作成するには:

1. コンポーネント・パレットから論理ダイアグラムにセット・コンポーネントをドラッグ・アンド・ドロップします。

2. 属性がソース・コンポーネントと異なる場合は、セットの属性を定義します。これを行うには、プロパティ・インスペクタの「属性」タブを選択し、緑のプラス・アイコンをクリックして、属性を追加します。「ターゲット」列で新しい属性名を選択し、それらに適切な値を割り当てます。
属性がソース・コンポーネントの属性と同じである場合は、属性照合を使用します(ステップ4を参照)。

3. ソースのコネクタ・ポートからセット・コンポーネントのコネクタ・ポートに線をドラッグして、最初のソースからの接続を作成します。

4. 「属性照合」ダイアログが表示されます。セットの属性がソース・コンポーネントの属性と同じである必要がある場合は、「ターゲットでの属性の作成」ボックスを選択します(「属性照合」を参照)。

5. 必要に応じて、ソースのすべての属性を、属性照合によりマップされていないターゲットにマップし、必要に応じて変換式を作成します(「式および条件の定義」を参照)。

6. マップされたすべての属性が、論理ダイアグラムで黄色の矢印でマークされます。これにより、この属性についてすべてのソースがマップされているわけではないことが示されます。セットに少なくとも2つのソースがあります。

7. このセット・コンポーネントに接続するすべてのソースに対して接続および属性マッピングのステップを繰り返します。完了すると、黄色の矢印がなくなります。

8. プロパティ・インスペクタで、「演算子」タブを選択し、「演算子」列のセルを選択し、適切な集合演算子(UNION、EXCEPT、INTERSECTなど)を選択します。デフォルトでは、UNIONが選択されます。接続されたソースの順番を変更して、セット動作を変更することもできます。

注意:
セット・コンポーネントの属性に「実行ヒント」を設定できますが、セット・コンポーネント自体にも「実行ヒント」プロパティがあります。コンポーネントのヒントは、実際のセット操作(UNION、EXCEPTなど)が実行される優先場所を示し、一方、属性のヒントは、式が実行される優先場所を示します。
一般的なユース・ケースは、セット操作がステージング実行ユニットに対して実行されるが、その式の一部はソース実行ユニットに対して実行できることです。実行ユニットの詳細は、「実行場所の構成」を参照してください。

ソートの作成

ソートは、SQL ORDER BY文を使用して、ソート順序を処理済データセットの行に適用するプロジェクタ・コンポーネントです(「プロジェクタ・コンポーネント」を参照)。

ソース・データストアでソートを作成するには:

1. コンポーネント・パレットから論理ダイアグラムにソート・コンポーネントをドラッグ・アンド・ドロップします。

2. ソートする属性を前のコンポーネントからソート・コンポーネントにドラッグします。複数の属性に基づいて行をソートする必要がある場合は、目的の順序で属性をソート・コンポーネントにドラッグできます。

3. ソート・コンポーネントを選択し、プロパティ・インスペクタで「条件」タブを選択します。「ソーター条件」フィールドは、基礎となるデータベースのSQL ORDER BY文の構文に従います。複数のフィールドは、カンマで区切ってリストでき、ASCまたはDESCを各フィールドの後に追加して、ソートが昇順または降順であるかを定義できます。

分割の作成

分割は、指定した条件に基づいて、1つのフローを2つ以上のフローに分割するセレクタ・コンポーネント(「セレクタ・コンポーネント」を参照)です。分割条件は、必ずしも相互排他である必要はありません。ソース行は、すべての分割条件に照らして評価され、複数の出力フローで有効な可能性があります。

フローが無条件で複数のフローに分割される場合、分割コンポーネントは不要です。複数のダウンストリーム・コンポーネントを、前のコンポーネントの単一発信コネクタ・ポートに接続でき、前のコンポーネントのデータ出力はすべてのダウンストリーム・コンポーネントにルーティングされます。

分割コンポーネントを使用して、前の複数のフローおよびターゲットに行を条件付きでルーティングできます。

マッピングの複数ターゲットに分割を作成するには:

1. コンポーネント・パレットから論理ダイアグラムに分割コンポーネントをドラッグ・アンド・ドロップします。

2. 前のコンポーネントから分割コンポーネントに線をドラッグして、分割コンポーネントを前のコンポーネントに接続します。

3. 分割コンポーネントを各後続コンポーネントに接続します。アップストリーム・コンポーネントまたはダウンストリーム・コンポーネントのいずれかに属性が含まれている場合は、「属性マッピング」ダイアログが表示されます。ダイアログの「接続パス」セクションでは、マップされていない最初のコネクタ・ポイントにデフォルト設定され、必要に応じてコネクタ・ポイントが追加されます。特定のコネクタ・ポイントを使用する必要がある場合は、この選択を変更します。

4. プロパティ・インスペクタで、「分割条件」タブを開きます。「出力コネクタ・ポイント」表で、各ターゲットの行を選択する式を入力します。式を空のままにすると、すべての行が、選択したターゲットにマップされます。「残り」ボックスを選択して、他のいずれのターゲットでも選択されなかったすべての行をマップします。

副問合せフィルタの作成

副問合せフィルタ・コンポーネントは、副問合せの結果に基づいて行をフィルタするプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。行のフィルタに使用できる条件は、EXISTS、NOT EXISTS、INおよびNOT INです。

たとえば、EMPデータストアに従業員データが格納されており、DEPTデータストアに部門データが格納されているとします。副問合せを使用してDEPTデータストアからレコードのセットをフェッチし、その後、いずれかの副問合せ条件を使用してEMPデータストアの行をフィルタできます。

副問合せフィルタ・コンポーネントには2つの入力コネクタ・ポイントと、1つの出力コネクタ・ポイントがあります。この2つの入力コネクタ・ポイントは、ドライバ入力コネクタ・ポイントと副問合せフィルタ入力コネクタ・ポイントです。ドライバ入力コネクタ・ポイントではメイン・データストアが設定され、これを基に全体問合せが実行されます。副問合せフィルタ入力コネクタ・ポイントでは、副問合せで使用されるデータストアが設定されます。この例では、EMPがドライバ入力コネクタ・ポイントで、DEPTが副問合せフィルタ入力コネクタ・ポイントです。

副問合せフィルタ・フィルタ・コンポーネントを使用して行をフィルタするには:

1. コンポーネント・パレットから論理ダイアグラムに副問合せフィルタ・コンポーネントをドラッグ・アンド・ドロップします。

2. 副問合せフィルタ・コンポーネントをソース・データストアおよびターゲット・データストアに接続します。

3. ソース・データストアから入力属性を副問合せフィルタ・コンポーネントにドラッグ・アンド・ドロップします。

4. 副問合せフィルタ・コンポーネントの出力属性をターゲット・データストアにドラッグ・アンド・ドロップします。

5. 「コネクタ・ポイント」タブに移動し、ドライバ入力コネクタ・ポイントおよび副問合せフィルタ入力コネクタ・ポイントの入力データストアを選択します。

6. 副問合せフィルタ・コンポーネントをクリックします。副問合せフィルタ・コンポーネントのプロパティは、プロパティ・インスペクタに表示されます。

7. 「Attributes」タブに移動します。出力コネクタ・ポイント属性がリストされます。ドライバ入力コネクタ・ポイントおよび副問合せフィルタ・コネクタ・ポイントの式を設定します。

注意:
副問合せフィルタ入力ロールが次のいずれかに設定されている場合のみ、副問合せフィルタ入力コネクタ・ポイントの式を設定する必要があります。
IN、NOT IN、=、>、<、>=、<=、!=、<>、^=

8. 「条件」タブに移動します。

9. 「副問合せフィルタ条件」フィールドに式を入力します。副問合せフィルタ入力ロールが「EXISTS」または「NOT EXISTS」に設定されている場合、副問合せフィルタ条件を指定する必要があります。

10. 副問合せフィルタ入力ロールを「副問合せフィルタ入力ロール」ドロップダウン・リストから選択します。

11. グループ比較条件を「グループ比較条件」ドロップダウン・リストから選択します。グループ比較条件は、次の副問合せ入力ロールでのみ使用できます。
=、>、<、>=、<=、!=、<>、^=

12. マッピングを保存し、実行します。

テーブル・ファンクションの作成

テーブル・ファンクション・コンポーネントは、マッピングのテーブル・ファンクションを表すプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。テーブル・ファンクション・コンポーネントを使用すると、入力行セットを操作し、同一または異なるカーディナリティを持つ別の出力行セットを戻すことができます。出力行セットは物理表のように問合せ可能です。テーブル・ファンクション・コンポーネントは、ソース、ターゲットまたはデータ・フロー・コンポーネントとして、マッピングのどこにでも配置できます。

テーブル・ファンクション・コンポーネントには、複数の入力コネクタ・ポイントと、1つの出力コネクタ・ポイントを設定できます。入力コネクタ・ポイント属性はテーブル・ファンクションの入力パラメータとして動作し、出力コネクタ・ポイント属性は戻り値を格納するのに使用されます。

各入力コネクタに対し、入力コネクタ・ポイントに設定される属性タイプに応じてパラメータ・タイプREF_CURSORまたはSCALARを定義できます。

マッピングでテーブル・ファンクション・コンポーネントを使用するには:

1. データベースにテーブル・ファンクションが存在しない場合は作成します。

2. 「マッピング」ノードを右クリックし、「新規マッピング」を選択します。

3. ソース・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

4. コンポーネント・パレットから論理ダイアグラムにテーブル・ファンクション・コンポーネントをドラッグ・アンド・ドロップします。入力コネクタ・ポイントがなく、デフォルト出力コネクタ・ポイントが1つ設定されたテーブル・ファンクション・コンポーネントが作成されます。

5. テーブル・ファンクション・コンポーネントをクリックします。テーブル・ファンクション・コンポーネントのプロパティは、プロパティ・インスペクタに表示されます。

6. プロパティ・インスペクタで「属性」タブに移動します。

7. 「名前」フィールドにテーブル・ファンクションの名前を入力します。テーブル・ファンクションが別のスキーマにある場合は、ファンクション名をSCHEMA_NAME.FUNCTION_NAMEのように入力します。

8. 「コネクタ・ポイント」タブに移動し、「+」記号をクリックして新しい入力コネクタ・ポイントを追加します。各入力コネクタに対して適切なパラメータ・タイプを設定するのを忘れないでください。

注意:
REF_CURSOR属性はそれぞれ、パラメータ・タイプがREF_CURSORに設定された別個の入力コネクタ・ポイントに設定する必要があります。SCALAR属性は、パラメータ・タイプがSCALARに設定された単一の入力コネクタ・ポイントに複数設定できます。

9. 「属性」タブに移動し、(前のステップで作成した)入力コネクタ・ポイントおよび出力コネクタ・ポイントに対して属性を追加します。入力コネクタ・ポイント属性はテーブル・ファンクションの入力パラメータとして動作し、出力コネクタ・ポイント属性は戻り値を格納するのに使用されます。

10. ソース・データストアの必要な属性を、テーブル・ファンクション・コンポーネントの入力コネクタ・ポイントの適切な属性にドラッグ・アンド・ドロップします。ソース・データストアとテーブル・ファンクション・コンポーネント間の接続が作成されます。

11. ターゲット・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

12. テーブル・ファンクション・コンポーネントの出力属性をターゲット・データストアの属性にドラッグ・アンド・ドロップします。

13. マッピングの物理ダイアグラムに移動し、テーブル・ファンクション・コンポーネントが正しい実行ユニット内にあることを確認します。そうでない場合は、テーブル・ファンクションを正しい実行ユニットに移動します。

14. 必要な場合は、新しいKMを割り当てます。

15. マッピングを保存し、実行します。

アンピボットの作成

アンピボット・コンポーネントは、属性にまたがって格納されているデータを複数の行に変換するプロジェクタ・コンポーネント(「プロジェクタ・コンポーネント」を参照)です。

アンピボット・コンポーネントは、ピボット・コンポーネントと逆の処理を実行します。ピボット・コンポーネントと同様に、アンピボット・コンポーネントはマッピングのフローの任意の場所で使用できます。

アンピボット・コンポーネントは、フラット・ファイルなど、行ではなく属性にまたがってデータが格納されている非リレーショナル・データ・ソースからデータを抽出する場合に特に役立ちます。

例: 売上データのアンピボット

表8-4に示す外部表QUARTERLY_SALES_DATAには、フラット・ファイルのデータが含まれています。1行に各年と、各四半期の売上を示す個別の属性が格納されています。

表8-4 QUARTERLY_SALES_DATA

年

Q1_Sales

Q2_Sales

Q3_Sales

Q4_Sales

2010

10.5

11.4

9.5

8.7

2011

9.5

10.5

10.3

7.6

表8-5に、アンピボット操作が実行された後のデータのサンプルを示します。それまで複数の属性(Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Sales)にわたって格納されていたデータが単一の属性(SALES)に格納されています。アンピボット・コンポーネントは単一の属性(Q1_Sales)のデータを2つの属性(QUARTERおよびSALES)に分割します。QUARTERLY_SALES_DATAの1つの行はアンピボット・データの4行(各四半期の売上に対して1行)に対応します。

表8-5 UNPIVOTED DATA

YEAR

QUARTER

SALES

2010

Q1

10.5

2010

Q2

11.4

2010

Q3

9.5

2010

Q4

8.7

2011

Q1

9.5

2011

Q2

10.5

2011

Q3

10.3

2011

Q4

7.6

行ロケータ

行ロケータはソースからの反復データ・セットに対応する出力属性です。アンピボット・コンポーネントでは1つの入力属性が複数行に変換され、行ロケータの値が生成されます。ソースからのデータに対応する他の属性は値ロケータとして参照されます。この例では、属性QUARTERが行ロケータで、属性SALESは値ロケータです。

注意:
アンピボット・コンポーネントを使用するには、アンピボット・コンポーネントの行ロケータ属性および値ロケータ属性を作成する必要があります。
「アンピボット変換」表の値ロケータ・フィールドには、任意の式を移入できます。例:

UNPIVOT_EMP_SALES.Q1_SALES + 100

アンピボット・コンポーネントの使用

マッピングでアンピボット・コンポーネントを使用するには:

1. ソース・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

2. コンポーネント・パレットから論理ダイアグラムにアンピボット・コンポーネントをドラッグ・アンド・ドロップします。

3. ソース・データストアから適切な属性をアンピボット・コンポーネントにドラッグ・アンド・ドロップします。この例では、YEAR属性です。

注意:
値ロケータに対応するデータが格納されている属性をドラッグしないでください。この例では、Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Salesです。

4. アンピボット・コンポーネントを選択します。アンピボット・コンポーネントのプロパティは、プロパティ・インスペクタに表示されます。

5. アンピボット・コンポーネントの名前および説明を入力します。

6. 属性エディタを使用して行ロケータ属性および値ロケータ属性を作成します。この例では、QUARTERおよびSALESという名前の2つの属性を作成する必要があります。

注意:
属性に対して適切なデータ・タイプおよび制約(必要な場合)を定義するのを忘れないでください。

7. プロパティ・インスペクタの「UNPIVOT」の下で、「行ロケータ」ドロップダウン・リストから行ロケータ属性を選択します。この例では、QUARTERです。
行ロケータを選択したため、他の属性は値ロケータとして動作できます。この例では、SALESです。

8. 「UNPIVOT TRANSFORMS」の下で、「+」をクリックして各出力属性の変換ルールを追加します。変換ルールのデフォルト値を編集し、適切な式を指定して必要な論理を作成します。
この例では、各四半期に対して1つ、合わせて4つの変換ルールを追加する必要があります。変換ルールでは、行ロケータ属性QUARTERおよび値ロケータ属性SALESに移入される値が定義されます。QUARTER属性には定数値(Q1、Q2、Q3およびQ4)を移入する必要があり、SALES属性にはソース・データストア属性(Q1_Sales、Q2_Sales、Q3_SalesおよびQ4_Sales)からの値を移入する必要があります。

9. NULLとして定義されている属性に対してデータがない行を生成するには、「INCLUDE NULLS」チェック・ボックスを選択したままにしておきます。

10. ターゲット・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

11. アンピボット・コンポーネントの出力(右)コネクタからターゲット・データストアの入力(左)コネクタへとリンクをドラッグし、アンピボット・コンポーネントをターゲット・データストアに接続します。

12. アンピボット・コンポーネントの適切な属性をターゲット・データストアにドラッグ・アンド・ドロップします。この例では、YEAR、QUARTERおよびSALESです。

13. 必要に応じて、物理ダイアグラムに移動して新しいKMを割り当てます。

14. 「保存」をクリックし、それからマッピングを実行してアンピボット操作を実行します。

フラット化コンポーネントの作成

フラット化コンポーネントは、複雑な構造を持つ入力データを処理し、標準データ型を使用して同じデータのフラット化表現を生成するプロジェクタ・コンポーネントです。

フラット化コンポーネントには、1つの入力コネクタ・ポイントと、1つの出力コネクタ・ポイントがあります。

マッピングでフラット化コンポーネントを使用するには:

1. ソース・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

2. コンポーネント・パレットから論理ダイアグラムにフラット化コンポーネントをドラッグ・アンド・ドロップします。

3. 必要に応じて、物理ダイアグラムに移動して新しいKMを割り当てます。

4. 「保存」をクリックし、それからマッピングを実行してフラット化操作を実行します。

不規則コンポーネントの作成

不規則コンポーネントは、メタ・ピボットを使用して非構造化データを処理するプロジェクタ・コンポーネントです。不規則コンポーネントを使用して、データをデータベース表にロード可能な構造化エンティティに変換できます。

不規則データ・コンポーネントには、コンポーネントの構成に基づいて1つの入力グループと複数の出力グループがあります。

入力グループには、受信データ・セットの名前の部分と値の部分の2つの必須属性があります。3つ目のオプションの属性は、行識別子順序が行セットを説明するために使用されます。

マッピングで不規則コンポーネントを使用するには:

1. ソース・データストアを論理ダイアグラムにドラッグ・アンド・ドロップします。

2. コンポーネント・パレットから論理ダイアグラムに不規則コンポーネントをドラッグ・アンド・ドロップします。

3. 不規則入力グループには、名前と値の2つの属性レベル・マッピングが必要です。

4. 1つ以上の出力グループをダウンストリーム・コンポーネントにマップします。

注意:
場合によっては、デフォルト・グループ以外の追加の属性であるその他は、必要ない可能性があります。

5. 必要に応じて、物理ダイアグラムに移動して新しいKMを割り当てます。

6. 「保存」をクリックし、それからマッピングを実行してフラット化操作を実行します。

データセットを使用したマッピングの作成

データセット・コンポーネントはコンテナ・コンポーネントで、複数のデータソースをグループ化し、関係結合を使用してそれらを結合できます。データセットには次のコンポーネントが含まれます。

- データストア

- 結合

- ルックアップ

- フィルタ

- 再使用可能マッピング: 使用できるのは、入力シグネチャがなく、出力シグネチャが1つの再使用可能マッピングのみです。

データセット内で、あるデータストアから別のデータストアへ属性をドラッグすることで、結合およびルックアップを作成します。関係を結合にするかルックアップにするかを選択するダイアログが表示されます。

注意:
駆動表にはルックアップするためのキーがあり、ルックアップ表には結果を追加するための追加情報があります。
データセットでは、駆動表から属性をルックアップ表にドラッグします。矢印は、ダイアグラムの駆動表からルックアップ表をポイントします。

これに対し、フローベース・ルックアップ(データセット内にないマッピングでのルックアップ)では、駆動およびルックアップ・ソースは、接続が作成される順番で決まります。最初の接続はDRIVER_INPUT1と呼ばれ、2つ目の接続はLOOKUP_INPUT1と呼ばれます。

データストアまたは再使用可能マッピングの属性を、データセットのバックグラウンドにドラッグして、フィルタを作成します。結合、ルックアップおよびフィルタをコンポーネント・パレットからデータセットにドラッグすることはできません。

この項には次のトピックが含まれます:

- フローおよびデータセット・モデリングの相違点

- マッピングでのデータセットの作成

- データセットからフローベース・マッピングへの変換

フローおよびデータセット・モデリングの相違点

データセットは、フィルタおよび結合を使用して関連付けられる1つ以上のソース・データストアを含むコンテナ・コンポーネントです。マッピング内のその他のコンポーネントにとって、データセットは、他のプロジェクタ・コンポーネント(データストアなど)と区別できません。データセット内のフィルタと結合の結果はその出力ポートで表されます。

データセット内では、データソースはフローではなく関係を使用して関連付けられます。これは、エンティティ関係ダイアグラムを使用して表示されます。マッピング・エディタの「物理」タブに切り替えると、データセットは表示されなくなります。ODIは、データの物理フローを、フロー・ダイアグラムがマッピング・エディタの「論理」タブで定義されているとおり厳密にモデル化します。

データセットは、ODI 12cマッピングで使用されるフロー・メタファとは対照的に、ODI 11gのデータソース編成方法を模倣します。プロジェクトをODI 11gからインポートすると、マッピングに変換されるインタフェースには、ソース・データストアを含むデータセットが含まれます。

新しい空のマッピングを作成すると、空のデータセットを含めるかどうかを尋ねられます。この空のデータセットを削除しても問題が発生することはなく、空のデータセットを任意のマッピングにいつでも追加できます。空のデータセットを含めるオプションは、単に便宜を図るために用意されています。

データセットは、マッピングまたは再使用可能マッピング内にのみ存在し、独立したオブジェクトとして個別に設計することはできません。

マッピングでのデータセットの作成

マッピングにデータセットを作成するには、コンポーネント・パレットから論理ダイアグラムにデータセットをドラッグします。次に、デザイナ・ナビゲータの「モデル」セクションからデータストアをデータセットにドラッグできます。データセット内の異なるデータストア間で属性をドラッグして、結合およびルックアップ関係を定義します。

データセットの出力コネクタ・ポイントから、マッピング内の他のコンポーネントの入力コネクタ・ポイントに接続をドラッグして、データ・フローに統合します。

関連項目:
データセット内に結合またはルックアップを作成するには、「結合またはルックアップの作成」を参照してください。

データセットからフローベース・マッピングへの変換

データセットを、親マッピング・フロー・ダイアグラムとマージされるフローベース・マッピング・ダイアグラムに個別に変換できます。

データセットをフローに変換すると、データセットはエンティティ関係設計とともに永久に削除されます。これは、対応するフローベース設計に置き換えられます。変換の結果は元に戻せません。

データセットをフローベース・マッピングに変換する手順は、次のとおりです。

1. マッピング・ダイアグラム内のデータセットを選択します。

2. タイトルを右クリックし、コンテキスト・メニューから「フローへの変換」を選択します。

3. 警告および確認のダイアログが表示されます。変換を実行する場合は「はい」をクリックし、変換を取り消す場合は「いいえ」をクリックします。
データセットがフローベース・マッピング・コンポーネントに変換されます。

物理設計

「物理」タブには、物理サーバーを表す様々な実行ユニット間の実行の配布が表示されます。ODIは、実行ユニットおよび実行グループを含むデフォルトの物理マッピング設計を、論理設計、これらのアイテムのトポロジ、および定義したルールに基づいて計算します。

物理ダイアグラムを使用して、この設計をカスタマイズすることもできます。ダイアグラムを使用して、実行ユニット間でのコンポーネントの移動や、別の実行ユニットを作成するダイアグラムのバックグラウンドへのコンポーネントの移動を行うことができます。複数の実行ユニットを実行グループにグループ化すると、含まれる実行ユニットのパラレル実行が可能になります。

マッピングには複数の物理マッピング設計を含めることができ、それらはダイアグラムの下のタブにリストされます。複数の物理マッピング設計を含めると、同じマッピングに異なる実行計画を作成できます。

新しい物理マッピング・タブを作成するには、新規作成タブをクリックします。

物理マッピング設計を削除するには、削除する物理マッピング設計タブを右クリックし、コンテキスト・メニューから「削除」を選択します。

物理コンポーネントは、ランタイムにマッピングを実行する方法を定義するもので、論理コンポーネントの物理表現です。論理コンポーネントによって、物理コンポーネントに含まれるプロパティのセットは異なります。

この項には次のトピックが含まれます:

- 物理マッピング・ダイアグラムについて

- LKM、IKMおよびCKMの選択

- 実行場所の構成

- マッピングの前後に実行されるコマンドの追加

- セッション内並列性の構成

- ターゲット表の並列ロードの構成

- 一時索引の構成

- ジャーナル化の構成

- 抽出オプションの構成

- 物理マッピング設計の作成および管理

物理マッピング・ダイアグラムについて

物理ダイアグラムには、次のアイテムが表示されます。

- 物理マッピング設計: 物理ダイアグラム全体が1つの物理マッピング設計を表します。バックグラウンドをクリックするか、物理マッピング設計ラベルが付いた白いタブを選択して、物理マッピング・プロパティを表示します。デフォルトでは、ステージング場所はターゲットでコロケートされますが、異なるステージング場所を明示的に選択して、ODIがステージングを異なるホストに自動的に移動するようにできます。
物理ダイアグラム下部の現在の物理マッピング設計タブの横にある小さなタブをクリックして、追加の物理マッピング設計を定義できます。新しい物理マッピング設計がマッピングの論理設計から自動的に作成されます。

- 実行グループ: 黄色いボックスに、同じ実行グループ内でパラレルに実行される、実行ユニットと呼ばれるオブジェクトのグループが表示されます。これらは、通常ソース・グループとターゲット・グループです。

- ソース実行グループ: 同じデータセット内にある、または同じ物理データ・サーバー上に存在するソース・データストアは、物理ダイアグラムで単一のソース実行グループにグループ化されます。ソース実行グループは、同時に抽出できるデータストアのグループを表します。

- ターゲット実行グループ: 同じ物理データ・サーバー上に存在するターゲット・データストアは、物理ダイアグラムで単一のターゲット実行グループにグループ化されます。ターゲット実行グループは、同時書込みが可能なデータストアのグループを表します。

- 実行ユニット: 黄色い実行グループ内にある青いボックスは実行ユニットと呼ばれます。単一の実行グループ内の実行ユニットは、同じ物理サーバー上にありますが、構造は異なる場合があります。

- アクセス・ポイント: ターゲット実行グループでは、データが実行ユニットから別の実行ユニットに流れるときはいつでもアクセス・ポイントがあります(丸いアイコンで表示されます)。ロード・ナレッジ・モジュール(LKM)は、実行ユニットから別の実行ユニットにデータがどのように転送されるかを制御します。
アクセス・ポイントは、データがソース側からターゲット側に移動するときに、(論理ダイアグラムで「実行ヒント」を使用して異なる実行場所を示す場合を除いて)実行ユニット・ペアのターゲット側で作成されます。アクセス・ポイント・ノードをソース側に移動することはできません。ただし、アクセス・ポイント・ノードを空のダイアグラム領域にドラッグすることは可能で、ダイアグラムの元のソースとターゲット実行ユニット間に新しい実行ユニットが作成されます。

- コンポーネント: 結合、フィルタなどのマッピング・コンポーネントも物理ダイアグラムに表示されます。

「物理」タブで次のナレッジ・モジュール(KM)を使用します。

- ロード・ナレッジ・モジュール(LKM): LKMはデータの移動方法を定義します。データをソースからステージング領域に移動するためのLKMをアクセス・ポイントごとに1つ選択します。ステージング領域に対して単一のテクノロジIKMが選択されている場合は、ターゲット実行ユニット内にないステージング領域からターゲットにデータを移動するためにLKMを選択することもできます。アクセス・ポイントを選択して、そのLKMをプロパティ・インスペクタで定義または変更します。

- 統合ナレッジ・モジュール(IKM)およびチェック・ナレッジ・モジュール(CKM): IKMおよびCKMは、データがターゲットに統合される方法を定義します。通常は、1つのIKMと1つのCKMがターゲット・データストアで選択されます。ステージング領域がターゲットと異なる場合は、ステージング領域からターゲットにデータを移動して統合する複数テクノロジIKMを選択できます。ターゲット・データストアを選択して、そのIKMおよびCKMをプロパティ・インスペクタで定義または変更します。

注意:

- マッピングで選択できるのは、プロジェクトまたはグローバルKMリストにすでにインポートされている組込みKMまたはKMのみです。作業を続行する前に、適切なKMをプロジェクトにインポート済であることを確認してください、

- KMとそのオプションの詳細は、KMに関する説明、および『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

LKM、IKMおよびCKMの選択

論理ダイアグラムを作成する際、ODIにより物理ダイアグラムのナレッジ・モジュールが自動的に選択されます。

注意:
ターゲット・データストアの「統合タイプ」プロパティ(有効な値は制御追加、増分更新または緩やかに変化するディメンション)は、KMを選択する際にODIによって参照されます。このプロパティは、表示されるIKM選択を制限するためにも使用されるため、適用可能なIKMのみがリストされます。

物理ダイアグラムを使用して、使用中のKMを変更できます。

使用中のLKMを変更するには:

1. 物理ダイアグラムで、アクセス・ポイントを選択します。このオブジェクトのプロパティ・インスペクタが開きます。

2. 「ロード・ナレッジ・モジュール」タブを選択し、「ロード・ナレッジ・モジュール」リストから異なるLKMを選択します。

3. KMには、ほとんどのユース・ケースで機能するデフォルト・オプションが設定されています。KMオプションは、必要に応じて変更できます。

注意:
同一名のオプションが存在する場合は、あるKMから別のKMに切り替えると、前のKMのオプションが保持されます。ただし、新しいKMに複製されていないオプションは失われます。

使用中のIKMを変更するには:

注意:
ターゲット・ノードで複数接続IKMを使用するには、その実行ユニットのアクセス・ポイントに「LKM SQL複数接続」または「LKMなし」を選択します。別のLKMを選択すると、単一接続IKMのみが選択可能になります。

1. 物理ダイアグラムで、ターゲット・データストアのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。

2. プロパティ・インスペクタで、「統合ナレッジ・モジュール」タブを選択し、「統合ナレッジ・モジュール」リストからIKMを選択します。

3. KMには、ほとんどのユース・ケースで機能するデフォルト・オプションが設定されています。KMオプションは、必要に応じて変更できます。

注意:
同一名のオプションが存在する場合は、あるKMから別のKMに切り替えると、前のKMのオプションが保持されます。ただし、新しいKMに複製されていないオプションは失われます。

使用中のCKMを変更するには:

1. 物理ダイアグラムで、ターゲット・データストアのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。

2. プロパティ・インスペクタで、「チェック・ナレッジ・モジュール」タブを選択し、「チェック・ナレッジ・モジュール」リストからCKMを選択します。

3. KMには、ほとんどのユース・ケースで機能するデフォルト・オプションが設定されています。KMオプションは、必要に応じて変更できます。

注意:
同一名のオプションが存在する場合は、あるKMから別のKMに切り替えると、前のKMのオプションが保持されます。ただし、新しいKMに複製されていないオプションは失われます。

実行場所の構成

マッピング・エディタの「物理」タブで、ステージング領域を変更し、コンポーネントが実行される場所を決定できます。論理ダイアグラムでコンポーネントを使用してマッピングを設計した場合、「実行ヒント」プロパティを使用して優先する実行場所をオプションで設定します。物理ダイアグラムで、ODIは、可能な場合はこれらのヒントに従おうとします。

「物理」タブで実行場所をさらに操作できます。詳細は、次の各項を参照してください。

- 物理ノードの移動

- 式の移動

- 新しい実行ユニットの定義

物理ノードの移動

物理ノードの実行場所を移動できます。ノードを選択し、それをある実行グループから別の実行グループにドラッグします。または、それを物理ダイアグラムの空白領域にドラッグすると、ODIでは、コンポーネントの新しい実行グループが自動的に作成されます。

実行順序を変更できるのは、一部のコンポーネントのみです。物理ダイアグラムでは、次のコンポーネントの順序を変更できます。

- 式

- フィルタ

- 結合

- ルックアップ

式の移動

物理ダイアグラム内の式を移動できます。実行ユニットを選択し、プロパティ・インスペクタで、「式」タブを選択します。式の実行場所が「実行」プロパティに表示されます。プロパティをダブルクリックして、実行場所を変更します。

新しい実行ユニットの定義

コンポーネントをその現在の実行ユニットから物理ダイアグラムの空白領域にドラッグして、新しい実行ユニットを定義できます。新しい実行ユニットおよび実行グループが作成されます。実行ユニットを選択し、プロパティ・インスペクタを使用してそのプロパティを変更します。

マッピングの前後に実行されるコマンドの追加

ODIでは、マッピングの前後に実行されるコマンドを追加できます。これらのコマンドは、ODIでサポートされる言語(SQL、Jython、Groovyなど)です。SQL言語では、マッピング開始コマンドとマッピング終了コマンドはマッピングと同じトランザクションで実行されます。マッピングの物理設計には、この動作を制御する次のプロパティがあります。

プロパティ

説明

マッピング開始コマンド

マッピングの開始時に実行されるコマンド。

マッピング開始コマンドのテクノロジ

このコマンドの実行で使用されるテクノロジ。

マッピング開始コマンドの場所

このコマンドの実行で使用される論理スキーマ。

マッピング終了コマンド

マッピングの終了時に実行されるコマンド。

マッピング終了コマンドのテクノロジ

このコマンドの実行で使用されるテクノロジ。

マッピング終了コマンドの場所

このコマンドの実行で使用される論理スキーマ。

これらのプロパティを表示および設定するには、プロパティ・インスペクタから物理マッピング設計を選択します。

セッション内並列性の構成

ODIエージェントは、指定のホスト上でODIマッピング・ジョブ全体を実行するスケジューラです。2つ以上のロードがある場合、それらを1つずつ実行するか(逐次実行)、同時に実行します(個別のプロセッサ・スレッドを使用した並列実行)。

同じ実行グループ内の実行ユニットは、並列化されます。実行ユニットをそのユニット自身のグループに移動すると、他の実行ユニットと並列実行されなくなり、逐次実行されるようになります。個別の実行グループが実行される順序が選択されます。

システムによる瞬間的リソース使用率を減らすためにロードの逐次実行を選択する一方で、システムによるリソース使用が長引くのを防ぐためにロードの並列実行を選択する場合もあります。

ターゲット表の並列ロードの構成

物理マッピング設計では、ターゲット表のパラレル・ロードを有効にできます。(物理ダイアグラムの下部にあるタブをクリックするか、ダイアグラムの空白領域をクリックして)物理マッピング設計を選択し、プロパティ・インスペクタで「一意の一時オブジェクト名を使用」プロパティのボックスを選択します。

このオプションを使用すると、同じマッピングの複数のインスタンスを同時に実行できます。ソースからステージング領域にデータをロードするために、C$表がステージング・データベースに作成されています。

注意:
ODI 11gでは、C$表の名前は、インタフェースのターゲット表から導出されていました。そのため、同じマッピングの複数インスタンスが同時に実行された場合、様々なセッションのデータが同じC$表にロードされ、競合が発生することがありました。
ODI 12cでは、オプション「一意の一時オブジェクト名を使用」がtrueに設定されている場合、各マッピング実行でグローバルに一意の名前がC$表に生成されます。これにより、競合の発生が回避されます。

一時索引の構成

フィルタ、結合またはデータストアの実行を最適化するためにODIで一時索引を自動的に生成する場合は、物理ダイアグラムでノードを選択します。プロパティ・インスペクタで、「一時索引」タブを選択します。「索引タイプ」フィールドをダブルクリックして、一時索引タイプを選択します。

注意:
一時索引の作成は、フロー全体では時間を要する操作です。実行統計を検討して、索引を使用して短縮できる実行時間と、一時索引の作成に要する時間を比較することをお薦めします。

ジャーナル化の構成

ジャーナル化されたデータのみを使用するように物理ダイアグラムでソース・データストアを構成できます。これは、ソース・データストアの「一般」プロパティの「ジャーナル化されたデータのみ」を有効化することで実行されます。チェック・ボックスは、参照データストアがモデル・ナビゲータでCDCに追加されている場合にのみ使用可能です。

ジャーナル化を有効にできるのは、マッピングごとに1つのデータストアのみです。

ジャーナル化の詳細は、第4章「ジャーナル化の使用」を参照してください。

抽出オプションの構成

物理ダイアグラムの各コンポーネント(アクセス・ポイントとターゲット・データストアは除く)には、プロパティ・インスペクタに抽出オプション・タブがあります。抽出オプションは、指定のコンポーネントに対するSQLの生成方法に影響を与えます。ほとんどのコンポーネントには抽出オプションの空のリストがあり、SQL生成のこれ以上の構成はサポートされていません。

抽出オプションは、抽出オプション・タブの「拡張」サブタブで選択されている抽出ナレッジ・モジュール(XKM)によって決定されます。XKMはODIの一部であり、ユーザーが作成または変更することはできません。

物理マッピング設計の作成および管理

物理ダイアグラム全体が1つの物理マッピング設計を表します。バックグラウンドをクリックするか、物理マッピング設計ラベルが付いた白いタブを選択して、表示された物理マッピング設計の物理マッピング・プロパティを表示します。

物理ダイアグラム下部の現在の物理マッピング設計タブの横にある小さなタブをクリックして、追加の物理マッピング設計を定義できます。新しい物理マッピング設計が自動的に作成され、マッピングの論理設計から生成されます。この物理マッピング設計を変更して、マッピングの一部として保存できます。

たとえば、初期ロードに対してある物理マッピング設計を使用し、チェンジ・データ・キャプチャ(CDC)を使用する増分ロードに対して別の物理マッピング設計を使用できます。この2つの物理マッピング設計は、異なるジャーナル化設定やナレッジ・モジュール設定を持つことができます。

また、物理マッピング設計ごとに異なる最適化コンテキストを使用することもできます。各最適化コンテキストは、多少異なるユーザーのトポロジを表します。ある最適化コンテキストは開発環境を表し、別のコンテキストはテスト環境を表すことができます。これら2つの異なるトポロジに対して適切なKMをそれぞれ選択できます。

再使用可能マッピング

再使用可能マッピングを使用すると、複数ステップによる統合(または統合の一部)を単一コンポーネントにカプセル化できます。これを保存し、他のコンポーネントと同様にマッピング内で使用できます。再使用可能マッピングは、マッピングで何度も使用するデータ操作の類似サブルーチンや同一サブルーチンを作成する作業を回避する場合に便利な方法です。

たとえば、結合コンポーネントの2つの表からデータをロードし、それをフィルタ・コンポーネントおよび個別コンポーネントの順に経由して渡し、ターゲット・データストアに出力できます。このプロシージャを再使用可能マッピングとして保存し、作成または変更する今後のマッピングに配置できます。

再使用可能マッピング・コンポーネントをマッピングに配置した後に、それを選択し、現在のマッピングのみに影響する変更を加えることができます。

再使用可能マッピングは、次のもので構成されています。

- 入力シグネチャおよび出力シグネチャ・コンポーネント: これらのコンポーネントは、再使用可能マッピングへのマップ、または再使用可能マッピングからのマップに使用される属性について説明します。再使用可能マッピングがマッピングで使用される場合、これらは、他のマッピング・コンポーネントで照合できる属性です。

- 標準のマッピング・コンポーネント: 再使用可能マッピングには、データストア、プロジェクタ・コンポーネントおよびセレクタ・コンポーネントを含む、標準のマッピング・コンポーネントをすべて含めることができます。これらを標準マッピングでの場合とまったく同様に使用して、論理フローを作成できます。

標準のマッピング・コンポーネントをシグネチャ・コンポーネントと結合して、データソース、データ・ターゲット、またはマッピング・フローでの中間ステップとしての役割を果たすための再使用可能マッピングを作成できます。標準マッピングで作業する場合、再使用可能マッピングを単一コンポーネントであるかのように使用できます。

再使用可能マッピングの作成

再使用可能マッピングをプロジェクト内で作成したり、グローバル・オブジェクトとして作成できます。再使用可能マッピングを作成するには、次の手順を実行します。

1. デザイナ・ナビゲータ:
プロジェクトを開き、「再使用可能マッピング」を右クリックし、「再使用可能な新しいマッピング」を選択します。

または、「グローバル・オブジェクト」ツリーを展開し、「グローバル再使用可能マッピング」を右クリックして、「再使用可能な新しいマッピング」を選択します。

2. 名前を入力し、オプションで、再使用可能な新しいマッピングに関する説明を入力します。オプションで、デフォルト入力シグネチャの作成またはデフォルト出力シグネチャの作成、あるいはその両方を選択します。これらのオプションにより、空の入力および出力シグネチャが再使用可能マッピングに追加されます。再使用可能マッピングの編集時に、入力および出力シグネチャを後で追加または削除できます。

注意:
これらのシグネチャを使用するためには、それらを再使用可能マッピング・フローに接続する必要があります。

3. コンポーネント・パレットから再使用可能マッピング・ダイアグラムにコンポーネントをドラッグし、デザイナ・ナビゲータからデータストアおよび他の再使用可能マッピングをドラッグして、再使用可能マッピング論理を構築します。標準マッピングを作成する場合と同じすべてのプロセスに従います。

注意:
再使用可能マッピングを編集のために開いている場合、コンポーネント・パレットには、標準のマッピング・コンポーネントに加えて、入力シグネチャ・コンポーネントと出力シグネチャ・コンポーネントが含まれます。

4. 「マッピングの検証」ボタン(緑のチェック・マーク・アイコン)をクリックして、再使用可能マッピングを検証します。エラーが新しいエラー・ペインに表示されます。
再使用可能マッピングの作成が完了したら、「ファイル」をクリックして「保存」を選択するか、または「保存」ボタンをクリックして、再使用可能マッピングを保存します。これで、再使用可能マッピングをマッピング・プロジェクトで使用できるようになります。

プロパティ・インスペクタおよび構造パネルを使用したマッピングの編集

プロパティ・インスペクタを構造パネルとともに使用して、マッピング・エディタの論理ダイアグラムと物理ダイアグラムでのアクションと同じアクションを、グラフィカルでない形式で実行できます。

構造パネルの使用

論理ダイアグラムおよび物理ダイアグラムを使用せずにマッピングを作成および編集する場合は、構造パネルを開く必要があります。構造パネルでは、マッピングの展開可能ツリー・ビューが提供されます。このビューでは、[Tab]キーを使用して移動して、マッピングのコンポーネントを選択できます。構造パネルでコンポーネントまたは属性を選択すると、論理または物理ダイアグラムでコンポーネントを選択した場合と同様に、そのプロパティがプロパティ・インスペクタに表示されます。

構造パネルは、スクリーン・リーダーを使用する場合など、アクセシビリティ要件がある場合に有用です。

構造パネルを開くには、メイン・メニューから「ウィンドウ」を選択し、「構造」をクリックします。ホットキー[Ctrl]+[Shift]+[S]を使用して構造パネルを開くこともできます。

この項には次のトピックが含まれます:

- コンポーネントの追加および削除

- コンポーネントの編集

- 表のカスタマイズ

- 共通タスクでのキーボード・ナビゲーションの使用

コンポーネントの追加および削除

プロパティ・インスペクタ、コンポーネント・パレットおよび構造パネルを使用して、マッピングのコンポーネントを追加または削除できます。

コンポーネントの追加

コンポーネント・パレットおよび構造パネルを使用してコンポーネントをマッピングに追加する手順は、次のとおりです。

1. マッピングをマッピング・エディタで開いた状態で、コンポーネント・パレットを開きます。

2. [Tab]キーを使用して目的のコンポーネントを選択し、[Enter]を押して、選択したコンポーネントをマッピング・ダイアグラムおよび構造パネルに追加します。

コンポーネントの削除

構造パネルを使用してマッピングにコンポーネントを削除するには:

1. 構造パネルで、削除するコンポーネントを選択します。

2. [Ctrl]+[Shift]を押しながら[Tab]を押して、ポップアップ・ダイアログを開きます。[Ctrl]+[Shift]を押したまま、矢印キーを使用して、左の列にナビゲートし、マッピングを選択します。次に、右矢印キーを使用して論理または物理ダイアグラムを選択します。論理ダイアグラムを選択したら、[Ctrl]+[Shift]キーを離します。
または、メイン・メニュー・バーから「ウィンドウ」→「ドキュメント」を選択します。ドキュメント・ウィンドウのリストからマッピングを選択し、ドキュメントに切替えをクリックします。

3. ステップ1で構造パネル内で選択したコンポーネントが、マッピング・ダイアグラムで強調表示されます。[Delete]を押して、コンポーネントを削除します。ダイアログ・ボックスで削除が確認されます。

コンポーネントの編集

構造パネルおよびプロパティ・インスペクタを使用してマッピングのコンポーネントを編集するには:

1. 構造パネルで、コンポーネントを選択します。コンポーネントのプロパティがプロパティ・インスペクタに表示されます。

2. プロパティ・インスペクタで、必要に応じてプロパティを変更します。「属性」タブを使用して、属性を追加または削除します。「コネクタ・ポイント」タブを使用して、マッピングの他のコンポーネントへの接続を追加します。

3. 構造パネルで任意のコンポーネントを展開して、個々の属性をリストします。次に、個々の属性を選択して、それらのプロパティをプロパティ・インスペクタで表示します。

表のカスタマイズ

プロパティ・インスペクタで表をカスタマイズして表示される列を決定する方法は、2つあります。いずれの場合も、構造パネルを開き、プロパティ・インスペクタでプロパティを表示するコンポーネントを選択します。次に、表を含むタブを選択し、次のいずれかの方法を使用します。

- 表のツールバーから「列の選択」アイコン(表の右上隅)をクリックし、次に、ドロップダウン・メニューから、表に表示する列を選択します。現在表示されている列にはチェック・マークが付いています。

- 「表のカスタマイズ」ダイアログを使用します。

1. 表のツールバーから「列の選択」をクリックします。

2. ドロップダウン・メニューから「列の選択」を選択します。

3. 「表のカスタマイズ」ダイアログで、表に表示する列を選択します。

4. 「OK」をクリックします。

共通タスクでのキーボード・ナビゲーションの使用

この項では、プロパティ・インスペクタで使用するキーボード・ナビゲーションについて説明します。

表8-6に、プロパティ・インスペクタで使用する共通タスクおよびキーボード・ナビゲーションを示します。

表8-6 共通タスクでのキーボード・ナビゲーション

ナビゲーション

タスク

矢印キー

ナビゲート: 1つのセルを上、下、左または右に移動します。

[Tab]

次のセルに移動します。

[Shift]+[Tab]

前のセルに移動します。

[Space]

テキストの編集の開始、リストの項目の表示、またはチェック・ボックスの値の変更を行います。

[Ctrl]+[C]

選択内容をコピーします。

[Ctrl]+[V]

選択内容を貼り付けます。

[Esc]

セルへの入力を取り消します。

[Enter]

セルへの入力を完了して次のセルに移動するか、ボタンをアクティブ化します。

[Delete]

選択した内容をクリアします(テキスト・フィールドのみ)。

[Back Space]

アクティブなセル内で、選択した内容を削除するか、前の文字を削除します(テキスト・フィールドのみ)。

[Home]

行の最初のセルに移動します。

[End]

行の最後のセルに移動します。

[Page Up]

列の最初のセルに移動します。

[Page Down]

列の最後のセルに移動します。

フロー制御および静的制御

マッピングでは、2つの制御ポイントを設定できます。フロー制御では、データがターゲットに統合される前に、着信フローでのデータがチェックされます。静的制御では、統合後にターゲット・データストアに対する制約がチェックされます。

IKMには、FLOW_CONTROLを実行するオプションおよびSTATIC_CONTROLを実行するオプションを含めることができます。これらのいずれかを有効化する場合は、ターゲット・データストアに設定されたプロパティである、IKMでのオプションを設定する必要があります。物理ダイアグラムで、データストアを選択し、プロパティ・インスペクタで「統合ナレッジ・モジュール」タブを選択します。フロー制御オプションは、使用可能な場合、「オプション」表にリストされます。オプションをダブルクリックして、変更します。

注意:

- フロー制御は、IKM Oracle InsertなどのコンポーネントKMに対してはサポートされていません。詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』のナレッジ・モジュールに関する項を参照してください。各IKMの説明で、フロー制御がサポートされるかどうかが示されています。

- ODI 11gでは、フロー制御または静的制御が呼び出されたときに使用されるCKMは、インタフェースに定義されていました。ODI 12cは、同じマッピング内で様々なテクノロジの複数ターゲットをサポートしているため、CKMは各ターゲット・データストアに定義されるようになりました。

この項には次のトピックが含まれます:

- フロー制御の設定

- 静的制御の設定

- 更新キーの定義

フロー制御の設定

フロー制御戦略では、データがターゲット・データストアに統合される前に、このデータストアに定義された制約に対してデータをチェックする方法を定義します。これは、チェック・ナレッジ・モジュール(CKM)で定義されます。CKMは、ターゲット・データストアの物理ノードで選択できます。CKMによってチェックされる制約は、「論理」タブのデータストア・コンポーネントのプロパティで指定されます。

マッピングで使用されるCKMを定義するには、「LKM、IKMおよびCKMの選択」を参照してください。

静的制御の設定

統合後制御戦略では、ターゲット・データストアに定義された制約に対してデータをチェックする方法を定義します。このチェックは、データがターゲット・データストアに統合された後に実行されます。これは、CKMで定義されます。統合後制御を実行するには、IKMのSTATIC_CONTROLオプションをtrueに設定する必要があります。統合後制御では、マッピングのターゲット・データストアのデータ・モデルに主キーが定義されている必要があります。

「許容されているエラーの最大数」および「統合エラーのパーセント」設定は、ターゲット・データストア・コンポーネントに設定できます。論理ダイアグラムでデータストアを選択し、プロパティ・インスペクタで「ターゲット」タブを選択します。

統合後制御では、フロー制御と同じCKMを使用します。

更新キーの定義

マッピングで更新機能またはフロー制御機能を使用する場合は、ターゲット・データストアに更新キーを定義する必要があります。

ターゲット・データストア・コンポーネントの更新キーには1つ以上の属性が含まれています。バインドされているデータストアの一意キー、またはキー属性としてマークされている属性のグループである場合があります。更新キーによって、ターゲットへの挿入前に、更新またはチェック対象になる各レコードが識別されます。

一意キーから更新キーを定義するには:

1. マッピング・ダイアグラムで、ターゲット・データストア・コンポーネントのヘッダーを選択します。コンポーネントのプロパティが、プロパティ・インスペクタに表示されます。

2. 「ターゲット」プロパティで、ドロップダウン・リストから「更新キー」を選択します。

注意:

- 受け取ったデータのターゲットであるデータストアの「ターゲット」プロパティのみが表示されます。「ターゲット」プロパティが表示されない場合は、着信接続がデータストアに定義されていません。

- このリストに表示されるのは、このデータストアのモデルに定義されている一意キーのみです。

次の場合は、属性から更新キーを定義することもできます。

- データストアに一意キーがない場合。

- すでに定義したキーに関係なく、キーを指定する場合。

属性から更新キーを定義する場合は、更新キーを構成する各属性を手動で選択します。

属性から更新キーを定義するには:

1. 更新キーが選択されている場合は、選択を解除します。

2. 「ターゲット・データストア」パネルで、更新キーを構成する属性を1つ選択して、プロパティ・インスペクタを表示します。

3. プロパティ・インスペクタの「ターゲット」プロパティで、「キー」ボックスを選択します。キー記号が、マッピング・エディタの論理ダイアグラムに表示されるデータストア・コンポーネントのキー属性の前に表示されます。

4. 更新キーを構成する属性ごとにこの操作を繰り返します。

E-LTおよびETLスタイル・マッピングの設計

関連項目:
E-LTおよびETLの定義と説明は、『Oracle Data Integratorの理解』のE-LTの概要に関する項を参照してください。

E-LTスタイル統合マッピングでは、ターゲット上に存在するステージング領域のデータが、ODIで処理されます。ステージング領域とターゲットは同じRDBMSに配置されます。データはソースからターゲットにロードされます。E-LTスタイル統合マッピングを作成するには、「マッピングの作成」で説明している標準の手順に従ってください。

ETLスタイル・マッピングでは、ターゲットと異なるステージング領域内のデータが、ODIで処理されます。データは最初にソースから抽出され、次にステージング領域にロードされます。ステージング領域でデータ変換が実行され、中間結果がステージング領域の一時表に保存されます。データのロードと変換は標準のELT KMを使用して実行されます。

Oracle Data Integratorには、データをステージング領域からターゲットにロードする方法が2通り用意されています。

- 複数接続IKMの使用

- LKMと単一接続IKMの使用

使用するKM戦略に応じて フローおよび静的制御がサポートされます。詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』の、ETLスタイル・マッピングの設計に関する項を参照してください。

複数接続IKMの使用

複数接続IKMを使用すると、ステージング領域とソースが異なるデータ・サーバーにある場合にターゲットを更新できます。図8-3は、複数接続IKMを使用してターゲット・データを更新する統合マッピングの構成を示しています。

図8-3 複数接続IKMを使用したETLマッピング

複数接続IKMを使用する場合の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

ETLスタイル・マッピングで複数接続IKMを使用するには:

1. 「マッピングの作成」で説明している標準の手順を使用して、マッピングを作成します。ここでは、ETLスタイルに固有の手順のみ説明します。

2. マッピング・エディタの「物理」タブで、目的の物理マッピング設計タブをクリックし、ダイアグラムのバックグラウンドをクリックして、物理マッピング設計を選択します。プロパティ・インスペクタのフィールド「ステージング場所のプリセット」で、ステージング場所を定義します。空のエントリは、ターゲット・スキーマをステージング場所として定義します。ターゲット以外の他のスキーマをステージング場所として選択します。

3. 物理スキーマでアクセス・ポイント・コンポーネントを選択し、プロパティ・インスペクタに移動します。アクセス・ポイントの詳細は、「物理マッピング・ダイアグラムについて」を参照してください。

4. 「LKMセレクタ」リストで、データをソースからステージング領域にロードするLKMを選択します。使用できるLKMを確認するには、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

5. オプションで、KMのオプションを変更します。

6. 物理ダイアグラムで、ターゲット・データストアを選択します。このターゲット・オブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタの「IKMセレクタ」リストで、データをステージング領域からターゲットにロードするETL複数接続IKMを選択します。使用できるIKMを確認するには、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

7. オプションで、KMのオプションを変更します。

LKMと単一接続IKMの使用

専用の複数接続IKMがない場合は、標準のエクスポートLKMを標準の単一接続IKMと組み合せて使用します。図8-4は、エクスポートLKMと単一接続IKMを使用してターゲット・データを更新する統合マッピングの構成を示しています。エクスポートLKMは、フロー表をステージング領域からターゲットにロードするために使用します。単一接続IKMは、データ・フローをターゲット表に統合するために使用します。

図8-4 LKMと単一接続IKMを使用したETLマッピング

この構成(LKM + エクスポートLKM + 単一接続IKM)には、次の制限があります:

- ソースがステージング領域と同じデータ・サーバーにある場合(マッピング・エディタで明示的に選択)、簡易CDCも一貫性CDCもサポートされません

- 一時索引はサポートされません

標準のLKMを単一接続IKMと組み合せて使用する場合の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

ETLスタイル・マッピングでLKMおよび単一接続IKMを使用するには:

1. 「マッピングの作成」で説明している標準の手順を使用して、マッピングを作成します。ここでは、ETLスタイルに固有の手順のみ説明します。

2. マッピング・エディタの「物理」タブで、目的の物理マッピング設計タブをクリックし、ダイアグラムのバックグラウンドをクリックして、物理マッピング設計を選択します。プロパティ・インスペクタのフィールド「ステージング場所のプリセット」で、ステージング場所を定義します。空のエントリは、ターゲット・スキーマをステージング場所として定義します。ターゲット以外の他のスキーマをステージング場所として選択します。

3. 物理スキーマでアクセス・ポイント・コンポーネントを選択し、プロパティ・インスペクタに移動します。アクセス・ポイントの詳細は、「物理マッピング・ダイアグラムについて」を参照してください。

4. プロパティ・インスペクタの「ロード・ナレッジ・モジュール」タブで、「ロード・ナレッジ・モジュール」ドロップダウン・リストからLKMを選択し、ソースからステージング領域にロードします。使用できるLKMを確認するには、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

5. オプションで、KMのオプションを変更します。オプション表の「値」列のセルをダブルクリックして、値を変更します。

6. ターゲット実行ユニットのアクセス・ポイント・ノードを選択します。プロパティ・インスペクタの「ロード・ナレッジ・モジュール」タブで、「ロード・ナレッジ・モジュール」ドロップダウン・リストからLKMを選択し、ステージング領域からソースにロードします。使用できるLKMを確認するには、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

7. オプションで、オプションを変更します。

8. ターゲットのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタの「統合ナレッジ・モジュール」タブで、「統合ナレッジ・モジュール」ドロップダウン・リストから標準の単一接続IKMを選択し、ターゲットを更新します。使用できるIKMを確認するには、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』で、使用しているステージング領域のテクノロジに対応する章を参照してください。

9. オプションで、KMのオプションを変更します。

9 互換性モードの使用

この章では、Oracle Data Integratorを互換性モードで使用する方法について説明します。互換性モードを使用すると、旧バージョンのODIに組み込まれているインタフェースをインポートおよび実行できます。

この章には次の項が含まれます:

- 互換性モードについて

- 互換マッピングの作成

- 内部識別子(ID)について

- リポジトリの再番号付け

互換性モードについて

Oracle Data Integrator 12cは後方互換性機能を備えており、これにより、ODI 11gで作成したインタフェースをインポートおよび実行できます。これらの11g互換マッピングは、次の2つの方法で作成できます。

- アップグレード・アシスタントを使用してODI 12cにアップグレードした場合は、「インタフェースを12cマッピングにアップグレードします - 11g SDKの互換性が失われます」オプションを無効にします

- ODI 11g SDKを使用してマッピングを作成します

アップグレード・アシスタントでの11g SDK互換性フラグの選択解除は、11g SDKを使用して11g互換マッピングを後で変更する場合にのみ必要です。11g SDK互換マッピングは、ODI Studio 12cで表示する場合は読取り専用です。11g SDKは、アップグレードした11g互換マッピングを変更する唯一の方法です。11g互換マッピングを変更する場合、アップグレード・アシスタントを使用して11g SDK互換性を有効化する必要はありません。

11g互換マッピングでは、特別なマッピング・コンポーネントである11g互換データセットを使用して、11gインタフェース動作をエミュレートします。

ODI 12cマッピングの実行とまったく同じ方法で、11g SDK互換マッピングをODI 12cで実行できます。

コンテキスト・メニュー・コマンドを使用して、11g SDK互換マッピングを本当のODI 12cマッピングに変換できます。

ODI 12cマッピングを11g互換性に変換することはできません。

インポートしたインタフェースとの11g SDK互換性の維持

11g互換マッピングをインポートする場合は、11g SDK互換マッピングとしてインポートするか、12cマッピングに変換するかを指定するユーザー・プリファレンスを設定する必要があります。

1. ODI Studioのメニュー・バーから「ODI」を選択し、「ユーザー・インタフェース」、「デザイナ」の順に選択します。

2. オプション「移行されたインタフェース用に11g SDKの互換性を維持」を有効にします。
11gインタフェース・エクスポート・ファイルのインポート時には、このオプションによって、インポートしたインタフェースの互換性が11g SDKか12cのどちらかとして決定されます。

互換マッピングの作成

11g SDK互換マッピングを作成するには次の2つのオプションがあります。

- アップグレード・アシスタントを使用したマッピングの作成

- ODI 12cでの11g SDKを使用したマッピングの作成

アップグレード・アシスタントを使用したマッピングの作成

Oracleアップグレード・アシスタントを使用して、旧バージョンのODIをODI 12cにアップグレードできます。ODIをアップグレードすると、11gインタフェースがデフォルトで12cマッピングに変換されます。

アップグレード・アシスタントでは、オプションの選択を解除することにより11g SDK互換性モードを有効化できます。11g SDK互換性モードでは、ODI 11g SDKを使用して、アップグレード済の11g互換マッピングを変更できます。

ODI 11gインタフェースを11g互換マッピングに変換するには、『Oracle Data Integratorのアップグレード』の第4章「Oracle Data Integrator環境のアップグレード」のタスク6 ODIアップグレード・オプションの選択に関する項で「インタフェースを12cマッピングにアップグレードします - 11g SDKの互換性が失われます」オプションの選択を解除します。

ODI 12cでの11g SDKを使用したマッピングの作成

アップグレード済または標準ODI 12c環境では、ODI 11g SDKを使用して、11g互換マッピングを作成できます。ODI 12cでは、これらのマッピングは読取り専用です。

Oracleアップグレード・アシスタントを使用してODI 12cにアップグレードし、11g互換性モードを有効化した場合は、11g SDKを使用して、11g互換マッピングを変更できます。

11g SDKを使用して11g互換マッピングを作成する場合は、Oracle Data IntegratorのJava APIリファレンスを確認してください。

内部識別子(ID)について

複数の作業リポジトリ間でオブジェクトの一意性を維持するために、ODI 11gではあるメカニズムを使用して、オブジェクト(テクノロジ、データ・サーバー、モデル、プロジェクト、マッピング、KMなど)に対して一意のIDを生成していました。Oracle Data Integrator 11gでは、すべてのオブジェクトが内部IDによって識別されます。内部IDは各オブジェクトの「バージョン」タブに表示されます。

ODI 11gのマスター・リポジトリと作業リポジトリは、それぞれ一意の3桁の内部IDによって識別されます。11gオブジェクトの内部IDは、自動的に増分された数値にリポジトリIDの値を加えて計算されます(<UniqueNumber><RepositoryID>)。

リポジトリIDが3桁より短い場合、欠落している桁には「0」が補足されます。たとえば、リポジトリのIDが5の場合、このリポジトリ内のオブジェクトの内部IDは1005、2005、3005、1234567005などが可能です。同じリポジトリ内で作成されたすべてのオブジェクトは、最後の3桁が同じ(この例では005)になることに注意してください。

この内部IDは、リポジトリのオブジェクト・タイプに対して一意であり、そのオブジェクト・タイプのリポジトリ間でも一意です。これは、内部IDにリポジトリ固有のIDが含まれているためです。

エクスポート/インポートの重要なルールとガイドライン

11gオブジェクトIDの構造により、次のガイドラインに従ってください。

- 各ODI 11g作業リポジトリには、異なる内部IDが常に必要です。同じIDの作業リポジトリには、同じオブジェクトが含まれるとみなされます。

- ODI 11gオブジェクトを11gリポジトリからインポートする場合は、アップグレード・キーを定義する必要があります。アップグレード・キーは、ともに機能するリポジトリのセットを一意に識別する必要があります。

リポジトリの再番号付け

マスター・リポジトリまたは作業リポジトリの再番号付けとは、リポジトリに保存されているオブジェクトのリポジトリIDと内部IDを変更する操作です。この操作は、11g互換性モードであるリポジトリでのみ使用できます。ODI 12cでは、リポジトリには一意のグローバル識別子があり、これらの再番号付けはできません(必要ありません)。

2つのリポジトリが同じIDで作成されている場合は、リポジトリの再番号付けをお薦めします。一方のリポジトリを再番号付けすることで、2つのリポジトリ間でオブジェクトを競合なしでインポート/エクスポートできます。

警告:

リポジトリの再番号付け管理操作では、データベースの再番号付け対象リポジトリのバックアップを作成しておく必要があります。

11g互換リポジトリの再番号付け

1. トポロジ・ナビゲータで、「リポジトリ」パネルを展開します。

2. 「マスター・リポジトリ」ノードまたは「作業リポジトリ」ノードを展開し、再番号付けするリポジトリを右クリックします。

3. 「再番号付け」を選択します。

4. 「リポジトリの再番号付け - ステップ1」ダイアログで、「はい」をクリックします。

5. 「リポジトリの再番号付け - ステップ2」ダイアログで、リポジトリの新しい一意のIDを入力し、「OK」をクリックします。

6. リポジトリおよびそのリポジトリに保存されているすべての詳細(トポロジ、セキュリティ、バージョン管理の詳細など)が再番号付けされます。

10 プロシージャ、変数、順序およびユーザー関数の作成および使用

この章では、プロシージャ、変数、順序およびユーザー関数の使用方法について説明します。これらのコンポーネントの概要についても説明します。

この章には次の項が含まれます:

- プロシージャの操作

- 変数の操作

- 順序の使用

- ユーザー関数の使用

プロシージャの操作

この項では、プロシージャの概要について説明し、Oracle Data Integratorでプロシージャを作成および使用する方法について説明します。

次の各項では、プロシージャを作成および使用する方法について説明します。

- プロシージャの概要

- プロシージャの作成

- プロシージャの使用

- プロシージャの暗号化と復号化

プロシージャの概要

プロシージャは、エージェントが実行できる一連のコマンドです。これらのコマンドは、Oracle Data Integratorでアクセスできるすべてのテクノロジ(OS、JDBC、JMSコマンドなど)に関係しています。

プロシージャは、マッピング・フレームワークに適応しないアクションをグループ化できる、再利用可能なコンポーネントです。プロシージャの使用は、必要な作業がマッピングで実現できない場合のみ検討してください。その場合は、外部プログラムやスクリプトを記述するのではなく、Oracle Data Integratorにコードを挿入し、パッケージからそのコードを実行します。マッピングとは対象的に、プロシージャを使用する場合はすべてのコードを手動で開発する必要があります。

プロシージャは、プロパティを持つタスクで構成されます。各タスクには、ソースに対するコマンドとターゲットに対するコマンドの2つがあります。これらのコマンドはスクリプトで、異なる言語が混在していることもあります。タスクは順番に実行されます。オプションで制御されているコマンドはスキップできる場合があります。これらのオプションによって、コマンドをコマンドのコードと同様に実行するかどうかがパラメータ化されます。

プロシージャ内のコードは、オプションおよびODI置換APIを使用して汎用化できます。

プロシージャを作成する前に、次の点に注意してください。

- プロシージャでデータ変換を実行することは可能ですが、この目的でのプロシージャの使用はお薦めできません。かわりに、マッピングを使用してください。

- データ操作用に特定の繰返しタスクを自動化するには、複雑なプロシージャを記述するよりも、そのタスクをナレッジ・モジュールに変換することを検討してください。詳細は、『Oracle Data Integratorでのナレッジ・モジュールの開発』を参照してください。

- オペレーティング・システム固有のコマンドはできるだけ使用しないでください。このようなコマンドを使用すると、コードはエージェントを実行しているオペレーティング・システムに依存します。2つの異なるオペレーティング・システム(UNIXとWindowsなど)でエージェントが同じプロシージャを実行すると、適切に動作しません。

プロシージャの作成

プロシージャは標準プロセスに従って作成しますが、ユース・ケースによって異なる場合があります。次の手順は、プロシージャの作成に際して一般的に実行する手順です。

1. 新規プロシージャの作成

2. プロシージャのオプションの定義

3. プロシージャのタスクの作成および管理

プロシージャを作成するときは、次のコーディング・ガイドラインを理解することが重要です。

- プロシージャのコードの記述

- 置換APIの使用

- RDBMSトランザクションの処理

- ソース・データとターゲット・データのバインド

新規プロシージャの作成

新規プロシージャを作成するには:

1. デザイナ・ナビゲータで、プロシージャを作成するプロジェクトのフォルダ内にある「プロシージャ」ノードを選択します。

2. 右クリックして「新規プロシージャ」を選択します。

3. 「定義」タブで、プロシージャの「名前」を入力します。

4. プロシージャで同時に複数の接続を管理する場合は、「複数接続」を選択します。
複数接続: あるソース接続に送信されたコマンドによって取得されたデータを、別の(ターゲット)接続に送信されたコマンドで使用する場合は、複数接続プロシージャを選択すると便利です。このデータは、実行エージェントを介して渡されます。「複数接続」を有効にすると、「タスク」の「ターゲット」フィールドと「ソース」フィールドの両方を使用できます(「プロシージャのタスクの作成および管理」を参照)。

一度に1つの接続にアクセスする場合(別の接続にもアクセスできますが、一度に1つの接続のみにアクセスする場合)、「複数接続」ボックスは選択しないままにします。ターゲット・タスクのみ使用されます。

5. 「ターゲット・テクノロジ」を選択します。「複数接続」ボックスを選択した場合は「ソース・テクノロジ」も選択します。新規の各プロシージャ行は、このテクノロジに基づいています。これらのフィールドを空のままにして、各プロシージャ・コマンドにテクノロジを指定することもできます。

注意:
プロシージャを保存する際に、ソース・テクノロジとターゲット・テクノロジの選択は必須ではありません。ただし、関連するコマンドを特定のテクノロジや論理スキーマに関連付ける必要がある場合は、プロシージャの実行に失敗する可能性があります。

6. オプションで、「一意の一時オブジェクト名を使用」および「エラー時に一時オブジェクトを削除」を選択します。

- 一意の一時オブジェクト名を使用: このプロシージャを同時に実行できる場合は、このオプションを有効にして、競合しない一時オブジェクト名を作成します。

- エラー時に一時オブジェクトを削除: セッションでエラーが発生してもクリーン・アップ・タスクを実行するには、このオプションを有効にします。

7. オプションで、このプロシージャの説明を入力します。

8. 「ファイル」メニューから「保存」をクリックします。

新規プロシージャが作成され、プロジェクトのツリーにある「プロシージャ」リストに表示されます。

プロシージャのオプションの定義

プロシージャのオプションは、タスクでパラメータと同様に機能し、コードの再利用性が向上します。

次の3つのタイプのオプションがあります。

- ブール・オプション。この値を使用すると、コマンドを実行するかどうかを個別に決定できます。このオプションは、if文と同じように機能します。

- 「値」オプションは短いテキスト情報を渡す場合に使用し、「テキスト」オプションは長いテキスト情報を渡す場合に使用します。これらのオプションの値は、getOption()置換メソッドを使用してプロシージャのコマンドのコード内でのみリカバリできます。パッケージでプロシージャを使用する場合、その値はステップの中で設定できます。

プロシージャのオプションを作成するには:

1. デザイナ・ナビゲータで、構成するプロシージャをダブルクリックします。プロシージャ・エディタが開きます。

2. 「オプション」タブを選択します。「オプション」表で、「追加オプション」ボタンをクリックして表に行を追加します。各行は1つのオプションを表します。

3. オプションの次のフィールドを編集します。

- 名前: グラフィカル・インタフェースに表示されるオプションの名前。

- タイプ: オプションのタイプ。

- ブール: オプションはブールです(True = 1/False = 0)。これはプロシージャとKMでのみ使用され、タスクの実行が必要かどうかを決定するオプションです。

- テキスト: 英数字型のオプション。サイズは無制限です。このタイプのオプションへのアクセスは、値オプションより低速です。

- 値: 英数字型のオプション。最大250文字です。

- デフォルト値: プロシージャまたはKMのユーザーが値を指定しなかった場合にオプションに設定される値。

- 直接実行値: 様々なオプション値でプロシージャを実行またはテストする場合に使用します。直接実行値のデフォルトは、このオプションの対応するデフォルト値です。デフォルト値は上書きできます。上書きすると、直接実行値に新しいデフォルト値が設定されます(前に変更されていない場合)。オプションの「直接実行値をデフォルトにリセット」コンテキスト・メニュー項目を使用すると、値がデフォルト値にリセットされます。

- 説明: オプションの短い説明(省略可)。ブール・オプションの場合、「タスク」表の行を選択すると、「プロパティ・インスペクタ」の「オプション」タブにこの説明が表示されます。

- ヘルプ: オプションに関する使用上の説明(省略可)。プロシージャの場合、マッピングでプロシージャを選択すると、プロパティ・ペインにこのテキストが表示されます。

注意:
コンテキスト・メニューを表示するには、オプションを右クリックします。このメニューから、オプションを複製したり、直接実行値をデフォルトにリセットできます。

4. 複数のオプションがある場合は、表で順序を設定します。行を選択し、メニュー・バーの上下のボタンを使用してリスト内の位置を変更します。オプションは上から下に順番にチェックされます。

5. プロシージャに必要なオプションごとにこれらの操作を繰り返します。

6. 「ファイル」メニューから「保存」をクリックします。

プロシージャのタスクの作成および管理

ほとんどのプロシージャは、ターゲットでのみコマンドを実行します。場合によっては、プロシージャに、データの読取りとこのデータを使用したアクションの実行が必要になることがあります。このような場合、「ソース」フィールドでデータを読み取るコマンドを指定し、「タスク」タブの「ターゲット」フィールドでそのデータを使用して実行するアクションを指定します。詳細は、「ソース・データとターゲット・データのバインド」を参照してください。ソース・データストアに対してコマンドを実行しない場合は、「ソース」フィールドを空白のままにすることができます。

次のオプションを使用して、プロシージャのタスクを作成および管理します。

- プロシージャのタスクの作成

- タスクの複製

- タスクの削除

- タスクの順序の変更

プロシージャのタスクの作成

1. デザイナ・ナビゲータで、コマンドを作成するプロシージャをダブルクリックします。プロシージャ・エディタが開きます。

2. プロシージャ・エディタで、「タスク」タブに移動します。プロシージャにすでにあるタスクが表にリストされます。

3. 「追加」をクリックします。新しいタスク行が表に作成されます。行のフィールドを編集してタスクを構成します。
使用可能なフィールドは次のとおりです。

注意:

- フィールドが表示されない場合は、「列の選択」ボタンを使用して表の非表示列を表示します。または、プロパティ・インスペクタを開き、タスク行を選択してプロパティ・インスペクタに次のフィールドの一部を表示します。「常に実行」オプションは、プロパティ・インスペクタにのみ表示されます。

- 「トランザクション」、「コミット」および「トランザクション分離」オプションは、トランザクションをサポートするテクノロジでのみ機能します。

- 名前: このタスクの名前を入力します。

- クリーンアップ: プロシージャでエラーが発生してもタスクを実行する場合は、タスクをクリーンアップ・タスクとしてマークします。たとえば、一時オブジェクトを削除するにはクリーンアップ・タスクを使用します。

- エラーの無視: コマンドがエラーを戻してもプロシージャを停止しない場合は、選択する必要があります。このボックスを選択すると、プロシージャ・コマンドによってエラーではなく警告メッセージが生成され、プロシージャは停止しません。

- ソース・トランザクション/ターゲット・トランザクション: コマンドを実行するトランザクション。
「トランザクション」および「コミット」オプションを使用すると、コマンドをトランザクション内で実行できます。詳細は、「RDBMSトランザクションの処理」を参照してください。

- ソースのコミット/ターゲット・コミット: トランザクションのコマンドのコミット・モードを指定します。
「トランザクション」および「コミット」オプションを使用すると、コマンドをトランザクション内で実行できます。詳細は、「RDBMSトランザクションの処理」を参照してください。

- ソース・テクノロジ/ターゲット・テクノロジ: このコマンドのテクノロジ。設定しないと、プロシージャ・エディタで指定されているテクノロジが使用されます。

- ソース・コマンド/ターゲット・コマンド: 実行するコマンドのテキスト。コマンド・フィールドの「...」をクリックして式エディタを開くことができます。
コマンドは、選択したテクノロジに適した言語で入力する必要があります。詳細は、「プロシージャのコードの記述」を参照してください。

置換メソッドを使用してコードを汎用化し、トポロジ情報に依存することをお薦めします。「置換APIの使用」を参照してください。

- ソース・コンテキスト/ターゲット・コンテキスト: 実行の強制コンテキスト。未定義のままにすると、実行コンテキストが使用されます。任意のコンテキストにコードを移植できるようにするには、未定義のままにします。

- ソース論理スキーマ/ターゲット論理スキーマ: コマンド実行用の論理スキーマ。

- ソース・トランザクション分離/ターゲット・トランザクション分離: コマンドのトランザクション分離レベル。

- ログ・カウンタ: このコマンドで処理される行の数を記録するカウンタ(「挿入」、「更新」、「削除」または「エラー」)を示します。ログ・カウンタは、InsertまたはUpdate SQL文で戻される挿入、更新、削除およびエラーの行に対してのみ機能することに注意してください。

ヒント:
プロシージャを実行した後は、オペレータ・ナビゲータにカウンタの結果を表示できます。この結果は、ステップまたはタスクのエディタの「定義」タブにある「レコード統計」セクションに表示されます。

- ログ・レベル: コマンドのログ・レベル。実行時に、このコマンドに生成されたタスクは、この値および実行パラメータに定義されたログ・レベルに基づいてセッション・ログに記録されます。実行パラメータの詳細は、『Oracle Data Integratorの管理』の実行パラメータに関する項を参照してください。

- ログの最終コマンド: ODI実行ログでは、通常、最終タスクのコード処理の前にタスク・コードが書き出されます。このフラグは、事前に処理されたコマンドに加えて最後に処理されたコマンドをログに記録する場合に有効にします。

- オプション: プロパティ・インスペクタの「オプション」ノードは、使用可能なすべてのオプションがリストされた表です。これらのオプションは、プロパティ・インスペクタにのみ表示されます。

- 常に実行: 他のオプション値に関係なく常にこのコマンドを実行する場合は、これを有効にします。

- 他のオプションは表にリストされています。使用可能なオプションは、プロシージャによって異なります。「常に実行」を選択しなかった場合は、選択したタスクに対して実行する個別のオプションを選択できます。

注意:
これらのオプションは、プロパティ・インスペクタにのみ表示されます。タスク・オプションを表示するには、タスク行を選択してからプロパティ・インスペクタで「オプション」タブを選択します。

4. 「ファイル」メニューから「保存」をクリックします。

タスク・リストの既存タスクのコピーを作成できます。

タスクの複製

1. プロシージャの「タスク」タブに移動します。

2. 複製するコマンドを選択します。

3. 右クリックして「複製」を選択します。新規の行がタスクのリストに追加されます。選択したコマンドのコピーが表示されます。

4. 必要な変更を加えて、「ファイル」メニューから「保存」をクリックします。

リストからタスクを削除できます。

タスクの削除

1. プロシージャの「タスク」タブに移動します。

2. 削除するコマンド行を選択します。

3. エディタ・ツールバーで「削除」をクリックするか、行を右クリックしてコンテキスト・メニューから「削除」を選択します。

コマンド行がリストから削除されます。

タスクが実行される順序を変更できます。

タスクは、プロシージャ・エディタの「タスク」タブに表示されている順序で実行されます。この順序の並べ替えが必要になる場合があります。

タスクの順序の変更

1. プロシージャの「タスク」タブに移動します。

2. 移動するコマンド行をクリックします。

3. タスク表のツールバーから、矢印をクリックしてコマンド行を適切な位置に移動します。

プロシージャのコードの記述

式エディタを開いて、プロシージャ内のコードを記述および変更できます。プロシージャ内のコマンドは、いくつかの言語で記述できます。次が含まれます:

- SQL: または、ターゲットのRDBMSでサポートされている言語(PL/SQL、Transact SQLなど)。通常、これらのコマンドには、データ操作言語(DML)またはデータ定義言語(DDL)の文を含めることができます。結果セットを戻すSELECT文またはストアド・プロシージャを使用する場合は、いくつかの制限があります。SQLコマンドを記述するには、次の選択が必要です。

- SQL文をサポートする有効なRDBMSテクノロジ(Teradata、Oracleなど)。

- 文が実行される場所を示す論理スキーマ。この論理スキーマは、実行時に、この文を実行する場所として選択された物理データ・サーバーの場所に変換されます。

- トランザクション処理用の追加情報(RDBMSトランザクションの処理の項を参照)。

- オペレーティング・システム・コマンド: 外部プログラムを実行する場合に便利です。この場合、使用するコマンドは、実行を担当するエージェントのオペレーティング・システムのコマンド・インタプリタから実行される動作と同様に動作する必要があります。この動作では、オブジェクトは、エージェントが実行されているプラットフォームに依存しています。オペレーティング・システム・コマンドを記述するには、現在のステップのテクノロジ・リストから「オペレーティング・システム」を選択します。OdiOSCommandツールは、OSコマンド・インタプリタの呼出しや設定が不要であるため、このような種類の操作に使用することをお薦めします。

- ODIツール: ODIには、特定のタスクを実行するためにプロシージャで使用できる広範囲の組込みツールが用意されています。これらのツールには、ファイル操作、電子メール・アラート、イベント処理などの機能が含まれています。これらのツールの詳細は、オンライン・ドキュメントを参照してください。ODIツールを使用するには、現在のステップのテクノロジ・リストから「ODITools」を選択します。

- スクリプト言語: コマンドはOracle Data Integratorでサポートされている任意のスクリプト言語で記述できます。ODIがデフォルトでサポートしているスクリプト言語はJython、Groovy、NetRexxおよびJava BeanShellで、現在のステップのテクノロジ・リスト・ボックスからアクセスできます。

置換APIの使用

実行のコンテキストに依存しないコマンドをプロシージャに記述する場合は、ODI置換APIの使用をお薦めします。このAPIの詳細は、オンライン・ドキュメントを参照してください。置換APIは通常、次のように使用します。

- getObjectName()を使用して、実行コンテキストに関係なく、現在の論理スキーマにあるオブジェクトの修飾名をハード・コーディングせずに取得します。

- getInfo()を使用して、現在のステップに関する一般情報(ドライバ、URL、ユーザーなど)を取得します。

- getSession()を使用して、現在のセッションに関する情報を取得します。

- getOption()を使用して、プロシージャの特定のオプションの値を取得します。

- getUser()を使用して、プロシージャを実行するODIユーザーに関する情報を取得します。

Oracle Data Integratorの置換メソッドを使用してオブジェクト・プロパティにアクセスする場合、フレックスフィールドのコードを指定すると、Oracle Data Integratorは、そのコードをオブジェクト・インスタンスのフレックスフィールド値で置き換えます。フレックスフィールドの作成および使用方法の詳細は、『Oracle Data Integratorでのナレッジ・モジュールの開発』のフレックスフィールドの使用に関する項を参照してください。

RDBMSトランザクションの処理

Oracle Data Integratorのプロシージャには、複数のステップまたはプロシージャにわたるトランザクション処理に対する拡張メカニズムが含まれています。トランザクション処理はRDBMSステップにのみ適用され、多くの場合、基礎となるデータベースのトランザクション機能に依存しています。たとえば、プロシージャ内では、エラー発生時にコミットまたはロールバックされる一連のステップを定義できます。また、同じサーバー上でステップに対する依存トランザクション・セットを最大10 (0から9)まで定義できます。基礎となるデータベースがトランザクションをサポートしている場合は、トランザクション処理の使用をお薦めします。トランザクションごとにデータベースへの接続が開くことに注意してください。

ただし、このメカニズムを使用する場合、パラレル環境ではセッション全体でデッドロックが発生する可能性があるため、注意が必要です。

ソース・データとターゲット・データのバインド

Oracle Data Integratorにおけるデータ・バインディングはプロシージャ内のメカニズムで、SQL SELECT文で戻されるすべての行に対してアクションを実行できます。

ソース・データとターゲット・データをバインドするには:

1. タスク・プロパティで、マウス・ポインタを「ソース・コマンド」または「ターゲット・コマンド」フィールドの上に置き、右側に表示される歯車アイコンをクリックしてコマンド・エディタを開きます。

2. ソース・コマンド・エディタで、SELECT文を指定します。

3. ターゲット・コマンド・エディタで、アクション・コードを指定します。アクション・コード自体は、INSERT、UPDATE、DELETEの各SQL文、または他のコード(ODIツール・コール、Jython、Groovyなど)のいずれかです。ODIツール構文の詳細は、Oracle Data Integratorツール・リファレンスを参照してください。

ソース結果セットで戻された値は、SELECT文で戻された列名を使用してアクション・コードで参照できます。これらの値をターゲットのINSERT、UPDATEまたはDELETEの各SQL文で使用する場合は常に、値の先頭にコロン(:)を付ける必要があります。これによって、バインド変数として機能します。ターゲット文がDML文でない場合、これらの値は先頭にハッシュ記号(#)を付ける必要があります。これによって、置換変数として機能します。また、「ソース」タブの結果セットがハッシュ記号(#)を使用して「ターゲット」タブに渡されている場合は、「ソース」タブのコマンドから戻された値の数だけターゲット・コマンドが実行されます。

次に、このメカニズムの一般的な使用例を示します。この強力なメカニズムを使用するアプリケーションは他にも多数あります。

例10-1 リモートSQLデータベースからのデータのロード

データをOracle PRODUCT表からTeradata PARTS表に挿入する場合を考えてみます。表10-1に、プロシージャ・ステップでこれを実装する方法の詳細を示します。

表10-1 リモートSQLデータベースからデータをロードするプロシージャの詳細

ソース・テクノロジ

Oracle

ソース論理スキーマ

ORACLE_INVENTORY

ソース・コマンド

select PRD_ID       MY_PRODUCT_ID,
PRD_NAME     PRODUCT_NAME,
from   <%=odiRef.getObjectName("L","PRODUCT","D")%>

ターゲット・テクノロジ

Teradata

ターゲット論理スキーマ

TERADATA_DWH

ターゲット・コマンド

insert into PARTS
(PART_ID, PART_ORIGIN, PART_NAME)
values
(:MY_PRODUCT_ID, 'Oracle Inventory',
:PRODUCT_NAME)

ODIでは、SELECT文で戻されたすべてのレコードが暗黙的にループされ、その値は「:MY_PRODUCT_ID」と「:PRODUCT_NAME」バインド変数にバインドされます。次に、適切なデータ型変換が実行された後、その値を使用してINSERT文がトリガーされます。

ターゲット・テクノロジとソース・テクノロジでそれぞれバッチ更新と配列フェッチがサポートされている場合、ODIでは、すべてのバッチについてメモリー内に配列が準備されます。これによって、トランザクション全体の効率が向上します。

注意:
このメカニズムは、ターゲット表での高速ロードまたは複数ロードに比較して効率が低いことが判明しています。このメカニズムは、非常に少量のデータに対してのみ使用することを検討してください。
このメカニズムの詳細は、ロード戦略でのエージェントの使用に関する項を参照してください。

例10-2 複数の電子メールの送信

データ・ウェアハウスのロード中に問題が発生したときに、電子メールで警告を受信する全ユーザーの情報が記載された表を考えてみます。表10-2で説明するように、これは単一のプロシージャ・タスクを使用して実行できます。

表10-2 複数の電子メールを送信するプロシージャの詳細

ソース・テクノロジ

Oracle

ソース論理スキーマ

ORACLE_DWH_ADMIN

ソース・コマンド

Select FirstName FNAME, EMailaddress EMAIL
From <%=odiRef.getObjectName("L","Operators","D")%>
Where RequireWarning = 'Yes'

ターゲット・テクノロジ

ODITools

ターゲット論理スキーマ

なし

ターゲット・コマンド

OdiSendMail -MAILHOST=my.smtp.com -FROM=admin@mycompany.com "-TO=#EMAIL" "-SUBJECT=Job Failure"
Dear #FNAME,
I'm afraid you'll have to take a look at ODI Operator, because session <%=snpRef.getSession("SESS_NO")%> has just failed!
-Admin

–TOパラメータは、ソースのSELECT文のEmail列から取得された値に置換されます。したがって、OdiSendMailコマンドは、Operators表に登録されているすべてのオペレータに対してトリガーされます。

プロシージャの使用

プロシージャは、次の方法で使用できます。

- デザイナ・ナビゲータで直接プロシージャを実行して、プロシージャの実行をテストします。

- マッピングおよび他の開発アーティファクトとともにパッケージでプロシージャを使用して、データ統合ワークフローを構築します。

- プロシージャのシナリオを生成して、ランタイム環境でこのプロシージャのみ起動するようにします。

プロシージャの実行

プロシージャを実行するには:

1. デザイナ・ナビゲータの「プロジェクト」ビューで、実行するプロシージャを選択します。

2. 右クリックして「実行」を選択します。

3. 「実行」ダイアログで実行パラメータを設定します。詳細は、『Oracle Data Integratorの管理』の実行パラメータに関する項を参照してください。

4. 「OK」をクリックします。

5. 「セッションを開始しました」ウィンドウが表示されます。

6. 「OK」をクリックします。

注意:
実行中に、プロシージャでは、プロシージャ・エディタの「オプション」タブに設定されているオプション値が使用されます。

パッケージでのプロシージャの使用

プロシージャはパッケージ・ステップとして使用できます。パッケージ・ステップでプロシージャを実行する方法の詳細は、「プロシージャ・ステップの追加」を参照してください。パッケージ・ステップでプロシージャを使用する場合、使用するのは作成済プロシージャのコピーではなく、プロシージャへのリンクです。パッケージの外部でこのプロシージャが変更された場合は、このプロシージャを使用するパッケージも変更されます。

注意:
プロシージャの「オプション」タブに設定されているオプション値を使用しない場合は、プロシージャ・ステップの「オプション」タブに新規のオプション値を直接設定します。

プロシージャのシナリオの生成

本番環境でプロシージャを実行するためのシナリオを生成したり、パッケージを作成せずにプロシージャを使用して実行をスケジュールすることができます。生成したシナリオは、このプロシージャを実行する単一ステップのシナリオとなります。プロシージャのシナリオの生成方法については、「シナリオの生成」を参照してください。

プロシージャの暗号化と復号化

ナレッジ・モジュール(KM)またはプロシージャを暗号化すると、重要なコードを保護できます。暗号化されたKMまたはプロシージャは、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたKMまたはプロシージャによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたDES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化操作または復号化操作を実行する際に再利用できます。

警告:

暗号化されたKMまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保管しておくことを強くお薦めします。また、すべての開発作業で一意の鍵を使用することをお薦めします。

プロシージャの暗号化および復号化のステップは、ナレッジ・モジュールの暗号化および復号化のステップと同じです。「ナレッジ・モジュールの暗号化および復号化」に示された手順に従ってください。

変数の操作

この項では、変数の概要について説明し、Oracle Data Integratorで変数を作成および使用する方法について説明します。この項には次のトピックが含まれます:

- 変数の概要

- 変数の作成

- 変数の使用

変数の概要

変数は、単一の値を格納するオブジェクトです。この値には、文字列、数値または日付を使用できます。変数の値はOracle Data Integratorに格納されます。変数はプロジェクト内の複数の場所で使用でき、変数の値は実行時に更新できます。

変数は、そのタイプに応じて次のような特性を備えています。

- 作成時にデフォルト値を定義できます。

- 変数の値は、その変数を使用してシナリオを実行するときにパラメータとして渡すことができます。

- 変数の値は、いずれかのデータ・サーバーで実行された文の結果を使用してリフレッシュできます。たとえば、現在の日時はデータベースから取得できます。

- 変数の値は、パッケージ・ステップで設定または増分できます。

- 変数の値は、初期値からセッションの各ステップ実行後の値まで追跡できます。詳細は、「変数と順序の追跡」を参照してください。

- 変数を評価して、パッケージに条件やブランチを作成できます。

- 変数は、マッピング、プロシージャ、ステップなどの式やコードで使用できます。

変数は、任意の式(SQLなど)、およびリポジトリのメタデータ内で使用できます。変数は、その変数が含まれているコマンドがエージェントまたはグラフィカル・インタフェースによって実行される際に解決されます。

変数は、グローバル変数として作成するか、プロジェクト内に作成できます。どちらで作成するかによって、変数の有効範囲が定義されます。グローバル変数はすべてのプロジェクトで使用できますが、プロジェクト変数は、その変数を定義したプロジェクト内でのみ使用できます。

変数の有効範囲の詳細は、「変数の使用」を参照してください。

次の各項では、変数を作成および使用する方法について説明します。

変数の作成

次の手順で変数を作成します。

1. デザイナ・ナビゲータで、プロジェクト内の「変数」ノードを選択するか、「グローバル・オブジェクト」ビューの「グローバル変数」ノードを選択します。

2. 右クリックして「新規変数」を選択します。変数エディタが開きます。

3. 次の変数パラメータを指定します。

プロパティ

説明

名前

変数の名前。変数が使用される書式で指定します。この名前には、変数が使用されるテクノロジでセパレータ(空白など)と解釈される文字は使用できません。変数名は大/小文字が区別されます。したがって、「YEAR」と「year」は2つの異なる変数とみなされます。変数名は最大400文字に制限されています。

データ型

変数には次のタイプがあります。

- 英数字(整数または10進値を表わすテキストを含む、最大255文字のテキスト)

- 日付 (この書式は、標準仕様のISOの日付と時間の次の書式です。YYYY-MM-DDThh:mm:ssZ)
ここで大文字のTは、日付要素と時間要素の区切りに使用します。例:

2011-12-30T13:49:02は、2011年12月30日の午後1時49分2秒を表します。

- 数値(整数、最大10桁(変数をデジタルとしてリフレッシュすると、デジタル部分が切り捨てられます))

- テキスト(長さの制限なし)

履歴の保持

このパラメータは、変数が保持される値の時間の長さを示します。

- 履歴なし: 変数の値は、セッションの実行中はメモリー内に保持されます。

- 最新の値: Oracle Data Integratorでは、変数によって保持される最新の値がリポジトリに格納されます。

- すべての値: Oracle Data Integratorでは、この変数が持つすべての値の履歴が保持されます。

セキュアな値

変数が記録されないようにする場合は、「セキュアな値」を選択します。これは、変数にパスワードやその他の機密データが含まれている場合に便利です。「セキュアな値」が選択されている場合:

- 変数は追跡されません: 変数はソース・コードまたはターゲット・コードで未解決の状態で表示され、リポジトリでの追跡や履歴化は行われません。

- 「履歴の保持」パラメータは自動的に「履歴なし」に設定され、編集できません。

デフォルト値

デフォルトで変数に割り当てられた値。

説明

変数の詳細な説明。

4. 変数の値を問合せで設定する場合は、次の手順を実行します。

1. 「リフレッシュ中」タブを選択します。

2. コマンドを実行する論理スキーマを選択し、スキーマのテクノロジの言語でコマンド・テキストを編集します。コマンド・テキストは式エディタを使用して編集できます。問合せ式の構文には、getObjectNameなどの置換メソッドを使用することをお薦めします。

3. 「DBMSで問合せをテスト中」をクリックして、式の構文をチェックします。

4. 「リフレッシュ」をクリックし、問合せを即時に実行して変数をテストします。「履歴の保持」パラメータが「すべての値」または「最新の値」に設定されている場合は、変数エディタの「履歴」タブに戻り値を表示できます。変数の値がどのように計算されるかの詳細は、「変数値のリフレッシュに関する注意事項」を参照してください。

5. 「ファイル」メニューから「保存」をクリックします。

デザイナ・ナビゲータの「プロジェクト」または「グローバル・オブジェクト」セクションに変数が表示されます。

ヒント:
変数の参照には、式エディタの使用をお薦めします。式エディタを使用すると、一般的な構文エラーを回避できます。たとえば、式エディタで変数を選択すると、その変数の有効範囲に応じて変数名の先頭に適切なコードが自動的に付きます。変数の参照方法の詳細は、「変数の有効範囲」を参照してください。

変数値のリフレッシュに関する注意事項

- 数値のセッション変数は、デフォルト値なしで定義されることがあります。セッション変数の以前の値がリポジトリ内にも残っていない場合、その変数値は未定義であるとみなされます。このような数値のセッション変数の値の問合せが行われた場合(たとえば、リフレッシュ中に問合せがあった場合)、ODIからは0が結果として返されます。

- 数値以外のセッション変数(日付、英数字、テキストなど)がデフォルト値なしで定義されている場合、このような変数の値の問合せが行われると、「ODI-17506: 変数に値がありません: <var_name>」エラーが発生します。

- ロード計画変数は、デフォルト値および永続的な値を持ちません。開始時に、ロード計画では変数のデフォルト値、または実行コンテキスト内の変数の履歴化された値/最新値は考慮されません。変数の値は、ロード計画の開始時に指定した値、またはロード計画内で設定/リフレッシュした値です。ロード計画変数が起動値として渡されない場合、ロード計画変数の起動値は未定義であるとみなされます。さらに、この変数がリフレッシュされず、ロード計画ステップで上書きされない場合は、ステップ内の変数の値も未定義になります。数値のロード計画変数の値が未定義である場合は、数値のセッション変数と同じように動作し、たとえば値の問合せが行われると、0が返されます。詳細は、「ロード計画での変数の使用」を参照してください。

- 数値以外のロード計画変数については、現在のODIリポジトリの設計では、未定義の値とnullの値の保持を区別できないという制限があります。そのため、数値以外のロード計画変数の値が未定義である場合、現時点では、null値が保持されているものとしてODIで処理されます。

- コマンドや式(SQLテキストなど)で、null値を持つセッション変数またはロード計画変数が参照された場合は、空の文字列(""の二重引用符なしの長さが0の文字列)が、テキストの変数参照の値として使用されます。

変数の使用

再利用可能なパッケージ、または複雑な条件ロジック、マッピングおよびプロシージャが含まれるパッケージを作成する場合は、変数の使用をお薦めします。変数は、ODI内のすべての場所で使用できます。変数の値は、「履歴の保持」パラメータが「すべての値」または「最新の値」に設定されている場合は、ODIリポジトリに永続的に保存されます。または、「履歴の保持」パラメータが「履歴なし」に設定されている場合は、現在のセッションの実行中に限り、変数の値がエージェントのメモリーに保持されます。

この項では、Oracle Data Integratorでの変数の使用方法の概要を説明します。変数は、次のように使用できます。

- パッケージでの変数の使用

- マッピングでの変数の使用

- オブジェクト・プロパティでの変数の使用

- プロシージャでの変数の使用

- 変数内での変数の使用

- データストアのリソース名での変数の使用

- シナリオへの変数の受渡し

- 変数のシナリオの生成

- 変数と順序の追跡

変数の有効範囲

パッケージ、マッピングおよびプロシージャの変数を参照するには、式エディタを使用します。式エディタを使用すると、変数はリポジトリから直接取得されます。

式エディタが使用できない場合は、変数名の先頭にGLOBALまたはPROJECT_CODEを手動で付ける必要があります。

オブジェクト内のMY_VARという変数を参照するには、次のように行います。

- #MY_VAR: この構文を使用する場合は、変数とその変数を参照するオブジェクトは同じプロジェクトに存在している必要があります。変数の値は置換されます。正確に指定するために、変数名の先頭にプロジェクト名を付けた完全修飾構文を使用することを検討してください。

- #MY_PROJECT_CODE.MY_VAR: この構文を使用すると、変数を含むプロジェクトを明示的に示して変数を使用できます。たとえば、グローバル・レベルとプロジェクト・レベルに同じ名前の変数が2つ存在する場合でも、正確に指定できます。変数の値は実行時に置換されます。

- #GLOBAL.MY_VAR: この構文を使用すると、グローバル変数を参照できます。変数の値はコード内で置換されます。詳細は、グローバル・オブジェクトに関する項を参照してください。

- ハッシュ(#)ではなくコロン(:)を使用: 変数の先頭にハッシュ記号ではなくコロンを付けると、変数をSQLバインド変数として使用できます。ただし、この構文はSQL DML文にのみ適用され、OSコマンドやODI APIコールには適用されないという制約があります。さらに、バインド変数を使用すると、パフォーマンスが低下する場合があります。実行時に最適なパフォーマンスを得るには、#文字を先頭に付けたODI変数の使用をお薦めします。

- 先頭にコロン(:)が付いたODI変数を参照すると、RDBMSエンジンで実行計画を決定するときに変数の名前が置換されません。変数が置換されるのは、RDBMSでリクエストが実行されるときです。このメカニズムをバインディングと呼びます。バインディング・メカニズムを使用する場合、RDBMSでは変数が使用される列の定義で指定されたタイプと同じタイプのデータが使用されるとみなされるため、文字列を格納する変数をデリミタ(引用符など)で囲む必要はありません。
たとえば、変数TOWN_NAME = :GLOBAL.VAR_TOWN_NAMEを使用する場合は、VARCHAR型が使用されるとみなされます。

- 先頭に#文字が付いたODI変数を参照すると、テクノロジでコードが実行される前に、変数の名前が値で置換されます。変数参照は一重引用符で囲む必要があります(例: TOWN = '#GLOBAL.VAR_TOWN')。変数のこの参照モードは、OSコマンド、SQLおよびODI APIコールに対して機能します。

パッケージでの変数の使用

変数は、次のような様々な目的でパッケージ内で使用できます。

- 変数の宣言: 変数をパッケージで(またはパッケージ内で使用されるトポロジの特定の要素で)使用する場合は、そのパッケージに変数の宣言ステップを挿入することを強くお薦めします。このステップは、パッケージの変数を明示的に宣言します。変数の宣言ステップの作成方法については、「変数ステップの追加」を参照してください。値を設定、リフレッシュまたは評価するためにパッケージで明示的に使用する他の変数は、宣言する必要がありません。

- SQL SELECT文からの変数のリフレッシュ: 変数のリフレッシュ・ステップでは、変数値を計算するコマンドまたは問合せを再実行できます。変数のリフレッシュ・ステップの作成方法については、「変数ステップの追加」を参照してください。

- 変数の値の割当て: 「割当て」タイプの変数の設定ステップでは、変数の現在の値を設定します。
Oracle Data Integratorでは、次の方法で変数に値を割り当てることができます。

- SQL SELECT文から変数値を取得する方法: 変数の作成時に、変数値を取得するSQL文を定義します。たとえば、変数NB_OF_OPEN_ORDERSを作成し、SQL文をselect COUNT(*) from <%=odiRef.getObjectName("L","ORDERS","D")%> where STATUS = 'OPEN'に設定できます。
次に、パッケージで変数をドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数のリフレッシュ」オプションを選択します。これによって、実行時にODIエージェントがSQL文を実行し、結果セットの最初の戻り値を変数に割り当てます。

- パッケージに値を明示的に設定する方法: パッケージの有効範囲内で、変数に値を手動で割り当てることもできます。変数をパッケージにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の設定」および「割当て」オプションを選択し、設定する値を指定します。

- 値を増分する方法: 増分が適用されるのは、数値データ型を使用して定義された変数のみです。数値変数をパッケージにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の設定」および「増分」オプションを選択し、任意の増分を指定します。増分値には正の数または負の数を指定できます。

- 実行時に値を割り当てる方法: 変数を含むパッケージから生成されたシナリオを開始するときに、その変数の値を設定できます。これを行うには、StartScenarioコマンドでVARIABLE=VALUEリストを指定します。Oracle Data Integratorツール・リファレンスのAPIコマンドOdiStartLoadPlanに関する項、および『Oracle Data Integratorの管理』のコマンドラインからのシナリオの実行に関する項を参照してください。
変数の割当てステップの作成方法については、「変数ステップの追加」を参照してください。

- 数値の増分: 「増分」タイプの変数の設定ステップでは、指定した量のみ数値を増減します。変数の設定ステップの作成方法については、「変数ステップの追加」を参照してください。

- 条件ブランチの値の評価: 変数の評価ステップはIF-ELSEステップと同様に機能します。比較の結果に基づいて、パッケージ内の変数およびブランチの現在値をテストします。たとえば、変数EXEC_A_AND_BがYESに設定されている場合のみ、マッピングAとBを実行し、そうでない場合はマッピングBとCを実行するとします。これを行うには、変数をパッケージ・ダイアグラムにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の評価」タイプを選択します。パッケージの変数を評価することによって、再利用可能で複雑なワークフローを柔軟に設計できます。変数の評価ステップの作成方法については、「変数ステップの追加」を参照してください。

マッピングでの変数の使用

変数は、次の2つの方法でマッピング内で使用できます。

1. ナレッジ・モジュールのテキスト・オプションの値として使用する方法

2. フィルタ条件や結合条件など、Oracle Data Integratorのあらゆる式で使用する方法

変数の値を式のテキストに置換するには、変数名の前に#文字を追加します。エージェントまたはグラフィカル・インタフェースによって、実行前にコマンドの変数の値が置換されます。

次に、YEARというグローバル変数の使用例を示します。

Update CLIENT set LASTDATE = sysdate where DATE_YEAR = '#GLOBAL.YEAR' /* DATE_YEAR is CHAR type */
Update CLIENT set LASTDATE = sysdate where DATE_YEAR = #GLOBAL.YEAR /* DATE_YEAR is NUMERIC type */

SQL言語のバインド変数メカニズムも使用できますが、あまり効率的ではありません。これは、リレーショナル・データベース・エンジンでは、問合せの実行計画の作成時に変数の値を認識できないためです。このメカニズムを使用するには、変数の先頭に「:」文字を付けて、検索対象のデータ型が変数のデータ型に適合するようにします。例:

update CLIENT set LASTDATE = sysdate where DATE_YEAR =:GLOBAL.YEAR

フィルタまたは結合式に使用される日付型変数には、"バインド変数"メカニズムを使用する必要があります。次の例は、フィルタを示しています。

SRC.END_DATE > :SYSDATE_VAR

変数SYSDATE_VARは、リフレッシュ問合せselect sysdate from dualを持つ"日付"型変数です

日付変数に置換メソッドが使用される場合、RDBMS固有の変換関数を使用して、文字列を日付形式に変換する必要があります。

式エディタでは、ほとんどの式に変数をドラッグ・アンド・ドロップできます。

表10-3 マッピングでの変数の使用例

タイプ

式

属性式

'#PRODUCT_PREFIX' || PR.PRODUCT_CODE

現在のプロジェクトのPRODUCT_PREFIX変数をPRODUCT_CODEに連結します。変数の値は置換されて文字列を戻すため、変数を一重引用符で囲む必要があります。

結合条件

CUS.CUST_ID = #DEMO.UID * 1000 + FF.CUST_NO

DEMOプロジェクトのUID変数の値に1000を乗算し、CUST_NO列を加算してから、CUST_ID列に結合します。

フィルタ条件

ORDERS.QTY between #MIN_QTY and #MAX_QTY

MIN_QTYとMAX_QTYのしきい値に従って注文をフィルタ処理します。

オプション値

TEMP_FILE_NAME: #DEMO.FILE_NAME

FILE_NAME変数をTEMP_FILE_NAMEオプションの値として使用します。

オブジェクト・プロパティでの変数の使用

トポロジのリソース名やスキーマ名などのグラフィカル・モジュールのフィールドでは、変数を置換変数として使用することも可能です。この場合、Oracle Data Integratorのグラフィカル・モジュールのフィールドでは、変数の完全修飾名(例: #GLOBAL.MYTABLENAME)を直接使用する必要があります。

この方法を使用すると、実行時の次のような要素をパラメータ化できます。

- ファイルや表の物理名(データストアの「リソース」フィールド)、またはその場所(トポロジの物理スキーマのスキーマ(データ))

- 物理スキーマ

- データ・サーバーURL

プロシージャでの変数の使用

表10-4に示すように、変数はプロシージャのコード内で使用できます。

表10-4 プロシージャでの変数の使用例

ステップID:

ステップのタイプ

ステップ・コード

説明

1

SQL

Insert into #DWH.LOG_TABLE_NAME

Values (1, 'Loading Step Started', current_date)

実行時にのみ名前が判明するログ表に行を追加します。

2

Jython

f = open('#DWH.LOG_FILE_NAME', 'w')

f.write('Inserted a row in table %s' % ('#DWH.LOG_TABLE_NAME') )

f.close()

LOG_FILE_NAME変数で定義されるファイルを開き、行を挿入したログ表の名前を書き込みます。

プロシージャでは、できるだけ、変数ではなくオプションを使用することを検討してください。オプションは入力パラメータと同様に機能します。したがって、パッケージ内のプロシージャを実行するときは、オプション値を適切な値に設定できます。

表10-4の例では、ステップ1のコードは次のように記述します。

Insert into <%=snpRef.getOption("LogTableName")%>
Values (1, 'Loading Step Started', current_date)

次に、プロシージャをパッケージ・ステップとして使用するときは、LogTableNameオプションの値を#DWH.LOG_TABLE_NAMEに設定します。

Groovyスクリプトを使用している場合、"#varname"や"#GLOBAL.varname"のように、変数名を二重引用符(")で囲む必要があります。そうしないと、変数はODI変数値に置き換えられません。

変数内での変数の使用

表10-5に示すように、他の変数値に依存する変数を使用すると便利な場合があります。

表10-5 別の変数内での変数の使用例

変数名

変数の詳細

説明

STORE_ID

英数字変数。パラメータとしてシナリオに渡されます。

店舗のIDを指定します。

STORE_NAME

英数字変数。

SELECT文:

Select name
From <%=odiRef.getObjectName("L","STORES","D")%>
Where id='#DWH.STORE_ID'||'#DWH.STORE_CODE'

現在の店舗の名前は店舗表から導出されます。この店舗表は、STORE_ID変数とSTORE_CODE変数の連結によって戻された値によってフィルタ処理された表です。

表10-5の場合、次のようにしてパッケージを構築します。

1. STORE_ID変数をドラッグ・アンド・ドロップして宣言します。これによって、実行時にこの変数をシナリオに渡すことができます。

2. STORE_NAME変数をドラッグ・アンド・ドロップして、その値をリフレッシュします。このステップを実行すると、エージェントは適切なSTORE_ID値を使用して問合せの選択を実行し、対応するSTORE_NAME値を取得します。

3. これらの変数を使用する他のマッピングまたはプロシージャをドラッグ・アンド・ドロップします。

"バインド変数"メカニズムを使用して、他の"日付"型変数を参照する"日付"型変数のリフレッシュ問合せを定義する必要があります。例:

VAR1"日付"型変数は、リフレッシュ問合せselect sysdate from dualを持ちます

VAR_VAR1"日付"型変数は、リフレッシュ問合せselect :VAR1 from dualを持つ必要があります

データストアのリソース名での変数の使用

ソースまたはターゲット・データストアの名前が動的である場合があります。一般的な例には、接頭辞と動的な接尾辞(現在日付など)で構成されたファイル名を使用して、フラット・ファイルをデータ・ウェアハウスにロードする場合があります。たとえば、3月26日の注文ファイルの名前はORD2009.03.26.datになります。

以前に宣言されている変数を使用できるのは、シナリオ内のデータストアのリソース名のみであることに注意してください。

ロード・マッピングを開発するには、次のステップを実行します。

1. DWHプロジェクトにFILE_SUFFIX変数を作成し、そのSQL SELECT文でcurrent_date (または実際のファイル接尾辞の書式に一致する適切な日付変換)を選択するように設定します。

2. モデル内にORDERSファイル・データストアを定義し、そのリソース名をORD#DWH.FILE_SUFFIX.datに設定します。

3. マッピングでファイル・データストアを通常どおりに使用します。

4. 次のようにパッケージを設計します。

1. FILE_SUFFIX変数をドラッグ・アンド・ドロップしてリフレッシュします。

2. ORDERSデータストアを使用するすべてのマッピングをドラッグ・アンド・ドロップします。

これで、実行時に、ソース・ファイル名が適切な値に置換されます。

注意:
データストアのリソース名の変数は、そのプロジェクト・コードを使用して完全修飾する必要があります。
このメカニズムを使用しているときは、デザイナ内からデータストアのデータを表示できません。

サーバーURLでの変数の使用

異なる場所ごとにコンテキストを使用するよりも、データ・サーバーのURL定義に変数を使用するほうが適切な場合があります。たとえば、ソースの数が多い(100以上)場合や、トポロジが外部の別の表に定義されている場合は、サーバーの定義のURLに含まれる変数を参照できます。

Oracleデータベースでホストされ、店舗で使用している250のソース・アプリケーションからウェアハウスをロードする場合を考えてみます。店舗ごとに1つのコンテキストを定義する方法も可能ですが、この方法ではトポロジが複雑になり、保守が困難になります。かわりに、店舗に接続するためのすべての物理情報を参照する表を定義し、データ・サーバーの定義のURLに変数を使用できます。例10-3に、Oracle Data Integratorでの実装方法を示します。

例10-3 サーバーの定義のURLでの変数の参照

1. 次のように、StoresLocation表を作成します。

表10-6 StoresLocation表

店舗ID

店舗名

店舗URL

アクティブ

1

Denver

10.21.32.198:1521:ORA1

YES

2

San Francisco

10.21.34.119:1525:SANF

NO

3

New York

10.21.34.11:1521:NY

YES

...

...

...

...

2. EDWプロジェクトに次の3つの変数を作成します。

- STORE_ID: 入力パラメータとして現在の店舗IDを使用します。

- STORE_URL: SELECT文select StoreUrl from StoresLocation where StoreId = #EDW.STORE_IDを使用して、現在の店舗IDに対する現在のURLをリフレッシュします。

- STORE_ACTIVE: SELECT文select IsActive from StoresLocation where StoreId = #EDW.STORE_IDを使用して、現在の店舗IDに対する現在のアクティビティ・インジケータをリフレッシュします。

3. 全店舗用に1つの物理データ・サーバーを定義し、そのJDBC URLを次のように設定します。
jdbc:oracle:thin:@#EDW.STORE_URL

4. 店舗からデータをロードするためのパッケージを定義します。
入力変数STORE_IDを使用して、StoresLocation表のSTORE_URL変数とSTORE_ACTIVE変数の値をリフレッシュします。STORE_ACTIVEがYESに設定されている場合は、次の3ステップがトリガーされます。マッピングでは、STORE_URL変数の値に従って、エージェントが存在するソース・データストアを参照します。

New York店についてUNIXでこのシナリオを開始するには、次のオペレーティング・システム・コマンドを発行します。

startscen.sh LOAD_STORE 1 PRODUCTION "EDW.STORE_ID=3"

すべての店舗についてLOAD_STOREシナリオを並行してトリガーする場合は、次のように単一のSELECT/アクション・コマンドを使用するプロシージャを作成する必要があります。

表10-7 SELECT/アクション・コマンド

ソース・テクノロジ

Oracle (StoresLocation表を含むデータ・サーバーのテクノロジ)。

ソース論理スキーマ

StoresLocation表を含む論理スキーマ。

ソース・コマンド

Select StoreId
From StoresLocation

ターゲット・テクノロジ

ODITools

ターゲット論理スキーマ

なし

ターゲット・コマンド

SnpsStartScen "-SCEN_NAME=LOAD_STORE" "-SCEN_VERSION=1" "-SYNC_MODE=2" "-EDW.STORE_ID=#StoreId"

LOAD_STOREシナリオは、適切なSTORE_ID値を使用してすべての店舗に対して実行されます。店舗に対応するURLが設定されます。

詳細は、『Oracle Data Integratorの管理』のソースおよびターゲット・データのバインドに関する項およびエージェントの管理に関する項を参照してください。

接続時または切断時のコマンドでの変数の使用

接続時または切断時のSQLコマンドには変数を使用できます。詳細は、『Oracle Data Integratorの管理』のデータ・サーバーの作成(詳細設定)に関する項を参照してください。

シナリオへの変数の受渡し

動作をカスタマイズするために変数をシナリオに渡すこともできます。これを行うには、シナリオを実行するOSコマンド行で変数の名前とその値を渡します。詳細は、『Oracle Data Integratorの管理』のコマンドラインからのシナリオの実行に関する項を参照してください。

変数のシナリオの生成

変数をリフレッシュするために単一ステップのシナリオを生成できます。

変数のシナリオを生成する方法については、「シナリオの生成」を参照してください。

変数と順序の追跡

変数と順序を追跡すると、実行済のセッション中に使用されたOracle Data Integratorユーザー変数の実際の値を判断できます。また、変数の追跡機能では、変数がソース/ターゲット操作で使用されたのか、または評価ステップなどの内部操作で使用されたのかも判断できます。

変数の追跡は複数のレベルで実行および構成されます:

- 変数を定義するときに、変数が記録されないようにする場合は「セキュアな値」を選択します。これは、変数にパスワードやその他の機密データが含まれている場合に便利です。「セキュアな値」を選択すると、変数は追跡されません。変数はソース・コードまたはターゲット・コードに未解決の状態で表示され、リポジトリでの追跡や履歴化は行われません。詳細は、「変数の作成」を参照してください。

- セッションの実行時または再開時には、「実行」または「セッションの再開」ダイアログで「ログ・レベル6」を選択すると、変数の追跡を有効にできます。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されています。

- オペレータ・ナビゲータで実行結果を確認する場合、次を行えます:

- セッション・ステップ・エディタまたはセッション・タスク・エディタの「変数値と順序値」セクションで、追跡された変数と順序を表示します。

- セッション・タスク・エディタで、実行のソース/ターゲット操作を確認します。解決済の変数値および順序値とともにコードを表示するには、セッション・タスク・エディタの「コード」タブで「値の表示/非表示」をクリックします。解決済の変数値には置換モードの変数(#VARIABLE)のみ表示され、変数値が表示される場合、コードが読取り専用であることに注意してください。

変数と順序の追跡は、デバッグ目的に役立ちます。オペレータ・ナビゲータでのエラーの分析方法および変数追跡の有効化方法の詳細は、『Oracle Data Integratorの管理』の失敗したセッションの処理に関する項を参照してください。

変数の追跡は、ODI StudioセッションとODIコンソール・セッションで使用できます。

Oracle Data Integratorで変数を追跡する場合は、次の点に注意してください:

- セッション中に変数がとる値ごとに追跡できます。

- 追跡されたすべての変数の値は、ステップ・レベルおよびタスク・レベルで表示できます。これには変数がステップまたはタスクによって変更された場合も含まれ、ステップ・エディタまたはタスク・エディタに変数の名前と新しい値が表示されます。

- ステップまたはタスクのソース・コードとターゲット・コードは、解決済の変数値および順序値とともに表示することも、変数名と順序名を表示して変数値は非表示にすることもできます。変数値が表示されている場合、コードは読取り専用になることに注意してください。

- 「セキュアな値」として定義された変数(パスワードなど)は、解決済のコード・リストにも変数リストにも表示されません。セキュアな変数は、リフレッシュされても、リポジトリに値が保持されません。また、セキュアな変数のリフレッシュは、2つのセッション間では機能しません。

- セッションがパージされると、そのセッションについて追跡されるすべての変数値もセッションとともにパージされます。

- バインド変数(:VARIABLE_NAME)とネイティブ順序(:<SEQUENCE_NAME>_NEXTVAL)はソース・コードとターゲット・コードで値が解決されず、置換された変数と順序(#VARIABLE_NAMEと#<SEQUENCE_NAME>_NEXTVAL)のみが解決されます。

- 追跡された値は、セッションがエクスポートまたはインポートされるときに、セッションの一部としてエクスポートおよびインポートされます。

順序の使用

この項では、順序の概要について説明し、Oracle Data Integratorで順序を作成および使用する方法について説明します。この項には次のトピックが含まれます:

- 順序の概要

- 順序の作成

- 順序およびID列の使用

- 順序の拡張

順序の概要

順序は、使用されるたびに自動的に増分する変数です。次の使用までの間、値はリポジトリに格納されるか、外部RDBMS表内で管理されます。順序には、文字列、リスト、タプルまたはディクショナリを使用できます。

Oracle Data Integratorの順序は、RDBMSエンジンからネイティブ順序をマップしたり、RDBMSエンジンにネイティブ順序が存在しない場合に順序をシミュレートすることを目的にしています。ネイティブ以外の順序の値は、リポジトリに格納するか、外部RDBMS表のセル内で管理できます。

順序は、グローバル順序として作成するか、またはプロジェクト内で作成することが可能です。グローバル順序はすべてのプロジェクトに共通ですが、プロジェクト順序はそれを定義したプロジェクト内でのみ使用できます。

Oracle Data Integratorでは3つのタイプの順序がサポートされています。

- 標準順序: 現在の値がリポジトリに格納されます。

- 特定の順序: 現在の値がRDBMS表のセルに格納されます。Oracle Data Integratorは、値を読み取り、行をロックして(同時更新の場合)、最後の増分後に行を更新します。

- ネイティブ順序: RDBMSが管理する順序をマップします。

標準順序および特定の順序については、次の点に注意してください。

- Oracle Data Integratorでは、複数ユーザー管理に使用される順序をロックしますが、順序の再開位置については処理しません。つまり、SQL文のROLLBACKでは、トランザクションの開始時の値に順序を戻すことはできません。

- Oracle Data Integratorの標準順序および特定の順序は、一部のRDBMSで順序が存在しないことを補う目的で開発されています。ネイティブ順序が存在する場合は、その順序を使用してください。これによって、エージェントとデータベース間の対話が減少するため、処理速度が向上する可能性があります。

- 標準順序と特定の順序の値(#<SEQUENCE_NAME>_NEXTVAL)は追跡できます。ネイティブ順序の追跡時にのみ発生する悪影響は、ネイティブ順序値が、追跡目的でアクセスされるときにもう一度増分されることです。詳細は、「変数と順序の追跡」を参照してください。

次の各項では、順序を作成および使用する方法について説明します。

順序の作成

順序を作成する手順は、順序タイプによって異なります。該当する項を参照してください。

- 標準順序の作成

- 特定の順序の作成

- ネイティブ順序の作成

標準順序の作成

標準順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「グローバル・オブジェクト」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「標準順序」を選択します。

4. 「増分」に入力します。

5. 「ファイル」メニューから「保存」をクリックします。

デザイナ・ナビゲータの「プロジェクト」または「グローバル・オブジェクト」セクションに順序が表示されます。

特定の順序の作成

順序値を特定のデータ・スキーマ内の表に格納する場合、このオプションを選択します。

特定の順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「グローバル・オブジェクト」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「特定の順序」を選択します。

4. 「増分」の値を入力します。

5. 次の順序パラメータを指定します。

スキーマ

順序表を含む論理スキーマ

表

順序値を含む表

列

順序値を含む列の名前

単一行を取得するフィルタ

順序表に複数の行が含まれている場合に、Oracle Data Integratorで表内の特定の行を検索できるようにフィルタを入力します。このフィルタによって、データ・サーバーのSQL構文が取得されます。
例: CODE_TAB = '3'

フィルタは、式エディタを使用して編集できます。「DBMSで問合せをテスト中」をクリックして、式の構文をチェックします。

6. 「ファイル」メニューから「保存」をクリックします。

デザイナ・ナビゲータの「プロジェクト」または「グローバル・オブジェクト」セクションに順序が表示されます。

注意:
Oracle Data Integratorで特定の順序の値にアクセスする場合、スキーマで実行される問合せは、SELECT 列 FROM 表 WHERE フィルタの形式となります。

ネイティブ順序の作成

順序がデータベース・エンジンに実装される場合、このオプションを選択します。位置および増分は、データベース・エンジンによって完全に処理されます。

ネイティブ順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「グローバル・オブジェクト」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「ネイティブ順序」を選択します。

4. ネイティブ順序を含む論理スキーマを選択します。

5. 「ネイティブ順序名」に入力するか、「参照」ボタンをクリックして、データ・サーバーから取得されたリストから順序を選択します。

6. 「参照」ボタンをクリックした場合は、「ネイティブ順序選択」ダイアログで「コンテキスト」を選択して、論理スキーマのこのコンテキストでの順序リストを表示します。

7. いずれかの順序を選択して、「OK」をクリックします。

8. 「ファイル」メニューから「保存」をクリックします。

デザイナ・ナビゲータの「プロジェクト」または「グローバル・オブジェクト」ツリーに順序が表示されます。

順序およびID列の使用

順序を増分するには、エージェントがデータを1行ずつ処理する必要があります。したがって、多数のレコードを処理する場合に順序を使用することはお薦めできません。このような場合は、データベース固有の順序(Teradata、IBM DB2、Microsoft SQL ServerのID列、またはOracleの順序など)を使用します。

順序は、Oracle Data Integratorのすべての式で使用できます。例:

- コンポーネント属性の「式」プロパティ

- フィルタ・コンポーネントの「フィルタ条件」プロパティ

- 結合コンポーネントの「結合条件」プロパティ

順序は、次のいずれかとして使用できます。

- 置換された値。#<SEQUENCE_NAME>_NEXTVAL構文を使用します。

- SQL文のバインド変数。:<SEQUENCE_NAME>_NEXTVAL構文を使用します。

置換された値として順序を使用する場合

順序は、#<SEQUENCE_NAME>_NEXTVAL構文を使用して、すべての文で使用できます。

この構文を使用すると、コマンドの実行前に順序値が1回のみ増分され、その値でコマンドのテキストが置換されます。順序値はすべてのレコードで同一になります。

バインド変数として順序を使用する場合

順序は、KMまたはプロシージャのターゲット・コマンドのSQL文の場合のみ、:<SEQUENCE_NAME>_NEXTVAL構文で使用できます。

この構文を使用すると、順序値が増分され、ターゲットSQLコマンドのバインド変数として渡されます。順序値は、コマンドによるレコードの処理ごとに増分されます。順序タイプに応じて動作が異なります。

- ネイティブ順序は常に、レコードが処理されるたびに増分されます。

- 標準順序および特定の順序は、ランタイム・エージェントによって解決され、レコードがエージェントを経由した場合のみ増分されます。このような順序を使用するKMまたはプロシージャのコマンドでは、ターゲット・コマンドで単一のINSERT/UPDATE...SELECTを使用するのではなく、ソース・コマンドでSELECT文を使用し、ターゲット・コマンドでINSERTまたはUPDATE文を使用する必要があります。

注意:
行ごとに順序が増分するのは、次の場合のみです。

- ステージング領域がターゲット上にない場合

- アクセス・ポイントでLKM SQL Multi-Connectを使用する場合

- ターゲット・データストアでIKM SQL to SQL Control AppendなどのマルチテクノロジIKMを使用する場合

例:

- SQL文insert into fac select :NO_FAC_NEXTVAL, date_fac, mnt_facでは、SQL文が10,000行を処理した場合でも、標準順序または特定の順序の値が増分されるのは1回のみです。これは、エージェントが各レコードを処理するのではなく、データベース・エンジンにコマンドを送信するのみであるためです。ネイティブ順序は行ごとに増分されます。

- 行ごとに標準順序または特定の順序の値を増分するには、データがエージェントを経由する必要があります。これを行うには、ソース・コマンドでSELECTを実行し、ターゲット・コマンドでINSERTを実行するKMまたはプロシージャを使用します。

SELECT date_fac, mnt_fac /* on the source connection */

INSERT into FAC (ORDER_NO, ORDER_DAT, ORDER_AMNT) values (:NO_FAC_NEXTVAL, :date_fac, :mnt_fac) /* on the target connection */

順序の有効範囲

変数とは異なり、順序の有効範囲はコード内で明示的に宣言する必要はありません。

標準順序および特定の順序を使用する際のヒント

表に挿入された各行で順序が確実に更新されるには、各行がエージェントで処理される必要があります。この動作を保証するには、次の手順を実行します。

1. ターゲットで実行される順序を格納するマッピングを作成します。

2. 挿入に対してのみアクティブになるようにマッピングを設定します。順序に対する更新はサポートされません。

3. 増分更新のIKMを使用する場合は、順序が移入される列が使用中の更新キーに含まれていないことを確認します。たとえば、データストアの主キーをロードするために順序を使用する場合は、マッピングの更新キーとして代替キーを使用する必要があります。

4. Oracle Data Integratorの順序をバインド構文(:<SEQUENCE_NAME>_NEXTVAL)で使用する場合は、IKMによってすべてのデータがエージェント経由で転送されるようにデータ・フローを構成する必要があります。これは、生成された統合ステップをオペレータでチェックすることにより検証できます。異なる接続では、単一のSELECT...INSERT文ではなく個別のINSERTコマンドとSELECTコマンドを実行する必要があります。

順序の制限

順序には次の制限があります。

- 順序とともにマップされた列では、not nullをチェックできません。

- 同様に、順序を参照している主キーまたは代替キーでは、静的制御およびフロー制御を実行できません。

ID列

一部のデータベースでは、増分する一意の値が自動的に移入されるID列をネイティブで提供しています。

ID列を移入する場合は、次の手順を実行する必要があります。

1. ID列をロードするマッピングは、空白および非アクティブにする必要があります。挿入または更新に対してアクティブにしないでください。

2. 増分更新のIKMを使用する場合は、使用中の更新キーにID列が含まれていないことを確認します。ID列が主キーに含まれている場合は、マッピングの更新キーとして代替キーを定義する必要があります。

ID列の制限

ID列には次の制限があります。

- ID列ではnot nullをチェックできません。

- ID列を含む主キーまたは代替キーでは、静的制御およびフロー制御を実行できません。

順序の拡張

Oracle Data Integratorの順序が、CURRVAL演算子をサポートするように拡張されました。図10-1に示されているように、式エディタで、「ODIオブジェクト」パネルにリストされている各順序に対してNEXTVALおよびCURRVAL演算子が表示されるようになりました。

ネイティブ順序の現在の値を使用する前に、次のことを行ってください。

- テクノロジでネイティブ順序がサポートされていることを確認します。たとえば、MySQLではネイティブ順序はサポートされていません。

- ローカル順序の現在の値マスクを構成します。

- リモート順序の現在の値マスクを構成します。

- 非バインド・モードでの現在の順序値を構成します。

図10-1 式エディタの拡張: 順序

ユーザー関数の使用

この項では、ユーザー関数の概要について説明し、Oracle Data Integratorでユーザー関数を作成および使用する方法について説明します。この項には次のトピックが含まれます:

- ユーザー関数の概要

- ユーザー関数の作成

- ユーザー関数の使用

ユーザー関数の概要

ユーザー関数を使用すると、マッピングまたはプロシージャで使用できるカスタマイズされた関数を定義できます。同一で複雑な変換パターンを異なるマッピング内の異なるデータストアに割り当てる必要がある場合は、プロジェクトでユーザー関数を使用することをお薦めします。ユーザー関数によって、コードの共有や再利用が促進され、異なるターゲット・プラットフォーム間における開発作業の維持や移植が容易になります。

ユーザー関数は1つ以上のテクノロジに実装され、マッピング、結合、フィルタおよび条件で使用できます。「ユーザー関数の使用」を参照してください。

関数は、グローバル関数として作成するか、またはプロジェクト内に作成できます。グローバル関数はすべてのプロジェクトに共通で、プロジェクト内の関数はそれが定義されているプロジェクトに関連付けられます。

ユーザー関数は別のユーザー関数を呼び出すことができます。ただし、ユーザー関数がその関数自体を再帰的に呼び出すことはできません。

注意:
集計関数はユーザー関数でサポートされていません。集計関数コードは作成されますが、GROUP BY式は生成されません。

次の各項では、ユーザー関数を作成および使用する方法について説明します。

ユーザー関数の作成

ユーザー関数を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「ユーザー関数」ノードを選択するか、「グローバル・オブジェクト」ビューの「グローバル・ユーザー関数」ノードを選択します。

2. 右クリックして「新規ユーザー関数」を選択します。ユーザー関数エディタが開きます。

3. 次の各フィールドに値を入力します。

- 名前: ユーザー関数の名前。たとえば、NullValueと指定します。

- グループ: ユーザー関数のグループ。存在しないグループ名を入力すると、関数の保存時にそのグループ名で新規グループが作成されます。

- 構文: 式エディタに表示されるユーザー関数の構文。関数の引数はこの構文で指定する必要があります。たとえば、NullValue($(variable), $(default))と指定します。

4. 「ファイル」メニューから「保存」をクリックします。

デザイナ・ナビゲータの「プロジェクト」または「グローバル・オブジェクト」ツリーに関数が表示されます。実装が含まれていないため、まだ使用できません。

実装を作成するには:

1. デザイナ・ナビゲータで、実装を作成するユーザー関数をダブルクリックします。ユーザー関数エディタが開きます。

2. ユーザー関数エディタの「実装」タブで「実装の追加」をクリックします。「実装」ダイアログが開きます。

3. 「実装構文」フィールドに、実装のコードを入力します。たとえば、nvl($(variable), $(default))と入力します。

4. 実装のリンクされたオブジェクトの各ボックスを選択します。

5. 新規テクノロジでこの構文を使用する場合は、「新しいテクノロジを自動的に含む」を選択します。

6. 「OK」をクリックします。

7. 「ファイル」メニューから「保存」をクリックします。

実装を変更するには:

1. ユーザー関数エディタの「実装」タブで、実装を選択して「編集」をクリックします。

2. ユーザー関数の「実装」タブで、実装を選択して「実装の編集」をクリックします。「実装」ダイアログが開きます。

3. この実装の実装構文およびリンクされたテクノロジを変更します。

4. 新規テクノロジでこの構文を使用する場合は、「新しいテクノロジを自動的に含む」を選択します。

5. 「OK」をクリックします。

6. 「ファイル」メニューから「保存」をクリックします。

実装を削除するには:

ユーザー関数の「実装」タブで、実装を選択して「実装の削除」をクリックします。

特定のテクノロジでユーザー関数を使用可能にするには:

1. 特定のテクノロジのテクノロジ・エディタを開きます。

2. 「言語」列で、テクノロジの言語を選択します。

3. 「デフォルト」を選択します。

4. 「定義」タブのテクノロジ・タイプ・リストから対応するテクノロジが選択されていることを確認します。Oracle Data Integrator APIは、ユーザー関数では機能しません。

ユーザー関数の使用

ユーザー関数は、Oracle Data Integratorのすべての式で使用できます。例:

- コンポーネント属性の「式」プロパティ

- フィルタ・コンポーネントの「フィルタ条件」プロパティ

- 結合コンポーネントの「結合条件」プロパティ

ユーザー関数は、その構文を指定して直接使用できます。たとえば、NullValue(CITY_NAME, 'No City')と指定します。

ユーザー関数は、1つ以上のテクノロジに実装されます。たとえば、Oracleのnvl(VARIABLE,DEFAULT_VALUE)関数は、VARIABLEまたはDEFAULT_VALUE (VARIABLEがnullの場合)の値を戻しますが、これと同等の関数を持たないテクノロジも存在するため、次の式で置換する必要があります。

case when VARIABLE is null
then DEFAULT_VALUE
else VARIABLE
end

ユーザー関数では、NullValue(VARIABLE,DEFAULT_VALUE)という関数を宣言し、前述の構文に対応する2つの実装を定義できます。実行時に、関数が実行されるテクノロジに応じて、NullValue関数はいずれかの構文で置換されます。

次の例では、様々なテクノロジに応じたコードに変換されるユーザー関数の実装方法を示します。

日付を指定すると月の名前を戻すユーザー関数を定義する場合を考えてみます。この関数は、Oracle、TeradataまたはMicrosoft SQL Serverで実行するときにマッピングで使用できます。表10-8に、この関数をユーザー関数として実装する方法を示します。

表10-8 様々なテクノロジに応じたコードに変換されるユーザー関数(例1)

関数名

GET_MONTH_NAME

関数構文

GET_MONTH_NAME($(date_input))

説明

date_inputに指定された日付から月の名前を取得します。

Oracleでの実装

Initcap(to_char($(date_input), 'MONTH'))

Teradataでの実装

case
when extract(month from $(date_input)) = 1 then 'January'
when extract(month from $(date_input)) = 2 then 'February'
when extract(month from $(date_input)) = 3 then 'March'
when extract(month from $(date_input)) = 4 then 'April'
when extract(month from $(date_input)) = 5 then 'May'
when extract(month from $(date_input)) = 6 then 'June'
when extract(month from $(date_input)) = 7 then 'July'
when extract(month from $(date_input)) = 8 then 'August'
when extract(month from $(date_input)) = 9 then 'September'
when extract(month from $(date_input)) = 10 then 'October'
when extract(month from $(date_input)) = 11 then 'November'
when extract(month from $(date_input)) = 12 then 'December'
end

Microsoft SQLでの実装

datename(month, $(date_input))

これで、属性式、フィルタ条件および結合条件を作成するためにマッピングでこの関数を安全に使用できます。Oracle Data Integratorでは、式の実行場所に応じて適切なコードが生成されます。

様々なテクノロジに応じてコードに変換されるユーザー関数の別の例として、次のマッピングを定義します。

substring(GET_MONTH_NAME(CUSTOMER.LAST_ORDER_DATE), 1, 3)。Oracle Data Integratorでは、実行テクノロジに応じて次のようなコードが生成されます。

表10-9 様々なテクノロジに応じたコードに変換されるユーザー関数(例2)

Oracleでの実装

substring(Initcap(to_char(CUSTOMER.LAST_ORDER_DATE 'MONTH')) , 1, 3)

Teradataでの実装

substring(case    when extract(month from CUSTOMER.LAST_ORDER_DATE) = 1 then 'January'       when extract(month from CUSTOMER.LAST_ORDER_DATE) = 2 then 'February'      ...end, 1, 3)

Microsoft SQLでの実装

substring(datename(month, CUSTOMER.LAST_ORDER_DATE) , 1, 3)

関数は、グローバル関数として作成するか、またはプロジェクト内に作成できます。グローバル関数はすべてのプロジェクトに共通で、プロジェクト内の関数はそれが定義されているプロジェクトに関連付けられます。

ユーザー関数は別のユーザー関数を呼び出すことができます。

11 シナリオの使用

この章では、シナリオの処理方法について説明します。シナリオは、ソース・コンポーネント(マッピング、パッケージ、プロシージャ、変数)を本番に移行するために設計されます。シナリオは、このコンポーネント用のコード(SQL、シェルなど)の生成結果として作成されます。

この章には次の項が含まれます:

- シナリオの概要

- シナリオの生成

- シナリオの再生成

- シナリオ・グループの生成

- シナリオおよびロード計画の同時実行の制御

- シナリオのエクスポート

- 本番へのシナリオのインポート

- シナリオの暗号化および復号化

シナリオの概要

コンポーネントが完成し、テストした後は、その実際の状態に対応するシナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオのコード(生成された言語)は確定されます。確定後に、シナリオの作成の基となったコンポーネントが変更された場合でも、シナリオが変更されることはありません。

パッケージ、プロシージャ、マッピングまたは変数のシナリオを生成できます。プロシージャ、マッピングまたは変数用に生成されるシナリオは、プロシージャの実行、マッピング、または変数のリフレッシュを行う単一ステップのシナリオです。

シナリオ変数は、シナリオで使用される変数であり、シナリオの開始時にその動作をパラメータ化するために設定する必要があります。

生成されたシナリオは、作業リポジトリに格納されます。このシナリオは、エクスポートして別のリポジトリ(リモートまたはリモート以外)にインポートし、様々なコンテキストで使用できます。シナリオを作成できるのは開発作業リポジトリからのみですが、開発作業リポジトリと実行作業リポジトリの両方にインポートできます。

シナリオは、オペレータ・ナビゲータとデザイナ・ナビゲータの両方で「ロード計画とシナリオ」セクションに表示されます。シナリオは、デザイナ・ナビゲータの「プロジェクト」セクションのプロジェクト内にも表示されます。

シナリオはバージョン管理することもできます。詳細は、第17章「バージョン・コントロールの使用」を参照してください。

シナリオは、Oracle Data Integrator Studioのコマンド行から起動でき、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。シナリオ実行およびシナリオのスケジュールの詳細は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

シナリオの生成

オブジェクトに対するシナリオの生成では、本番環境でのデプロイおよび実行に使用する、このオブジェクト用のコードがコンパイルされます。

シナリオを生成するには:

1. デザイナ・ナビゲータで、プロジェクトの下にある、シナリオを生成するパッケージ、マッピング、プロシージャまたは変数をダブルクリックします。対応するオブジェクト・エディタが表示されます。次に、「ODI」メニューで、「生成」→「シナリオ」を選択します。「新規シナリオ」ダイアログが表示されます。
あるいは、デザイナ・ナビゲータからパッケージ、マッピング、プロシージャまたは変数を右クリックして、「シナリオの生成...」を選択します。「新規シナリオ」ダイアログが表示されます。

2. シナリオの「名前」および「バージョン」を入力します。この名前は、オペレーティング・システム・コマンドで使用できるように、自動的に大文字に変換され、特殊文字はアンダースコアに置換されます。
シナリオの「名前」および「バージョン」フィールドは、次の値を使用して事前設定されます。

- 名前: そのコンポーネントに生成した最後のシナリオと同じ名前

- バージョン: バージョン番号が自動的に増分されます(前の数値バージョンが存在しない場合は001に設定されます)。

そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

注意:
新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。このパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開してシナリオ・ノードを選択します。

3. 「OK」をクリックします。

4. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。

- すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択します。

- 選択した変数をパラメータとして使用する場合は、「選択済を使用」を選択します

- すべての変数の選択を解除する場合は、「なし」を選択します。

5. 「OK」をクリックします。

シナリオは「シナリオ」タブに表示されます。また、プロジェクトの下にあるソース・オブジェクトの「シナリオ」ノードの下に表示されます。

シナリオの再生成

既存のシナリオを同じ名前とバージョン番号で再生成できます。再生成では、ソース・オブジェクトの内容から生成したシナリオで既存のシナリオを置換できます。既存のシナリオに関連付けられているスケジュールは保持されます。

シナリオを再生成するには:

1. デザイナ・ナビゲータの「プロジェクト」セクションまたは「ロード計画とシナリオ」セクションで、シナリオを選択します。

2. 右クリックして「再生成」を選択します。

3. 「OK」をクリックします。

注意:
シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。

シナリオ・グループの生成

プロジェクトまたはフォルダにグループ化されたパッケージ、マッピング、プロシージャおよび変数のセットが完成し、テストした後、シナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオ・グループを生成するには:

1. オブジェクトのグループが含まれているプロジェクトまたはフォルダを選択します。

2. 右クリックして「すべてのシナリオを生成」を選択します。

3. 「シナリオ・ソース・オブジェクト」セクションで、シナリオを生成するオブジェクトのタイプを選択します。

4. 「マーカー・フィルタ」セクションで、マーカー・グループのマーカーに従って、生成するコンポーネントをフィルタ処理できます。

5. シナリオの「生成モード」を選択します。

- 置換: オブジェクトごとに、最終バージョンのシナリオを、同じ内部ID、名前およびバージョンの新しいシナリオで上書きします。セッション、シナリオ・レポートおよびスケジュールは削除されます。オブジェクトに対するシナリオが存在していない場合は、バージョン番号001のシナリオが作成されます。

- 再生成: オブジェクトごとに、最終バージョンのシナリオを、同じ内部ID、名前およびバージョンの新しいシナリオで上書きします。スケジュール、セッション、シナリオ・レポート、変数選択および同時実行制御設定が保持されます。オブジェクトに対するシナリオが存在していない場合、このモードではシナリオは作成されません。

- 作成: 各オブジェクトに対して、最終バージョンのシナリオと同じ名前で、バージョン番号が自動的に増分された新しいシナリオが作成されます。オブジェクトに対するシナリオが存在していない場合は、オブジェクト名に基づいて命名されたバージョン番号001のシナリオが作成されます。

注意:
そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。
新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。このパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開してシナリオ・ノードを選択します。

「作成」生成モードを選択すると、バージョン番号が自動的に増分されます(前の数値バージョンが存在しない場合は001に設定されます)。

- ショートカットが実際のオブジェクトであるものとしてシナリオを生成する場合は、「すべての下層オブジェクトがマテリアライズされるものとしてシナリオを生成」を選択します。

6. 「OK」をクリックします。

7. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択するか、「選択済を使用」を選択してパラメータ変数をチェックします。

シナリオおよびロード計画の同時実行の制御

デフォルトでは、同じシナリオまたはロード計画の2つのインスタンスを同時に実行できます。

この状況は複数の場合に発生します。例:

- シナリオ実行ステップを含むロード計画が2つ以上のインスタンスで実行されているために、シナリオ実行ステップが2つ以上のロード計画インスタンスで同時に実行される可能性がある場合。

- シナリオがコマンドラインから、ODI Studioから、またはエージェントでのスケジュールに従って実行されるが、すでに同じシナリオの別のインスタンスが同じエージェント、別のエージェントまたはODI Studioセッションで実行されている場合。

同じシナリオまたはロード計画の同時実行は、すべてのリモート・エージェントおよび内部エージェントにわたって適用されます。

シナリオまたはロード計画の複数のインスタンスを同時に実行することは、特にジョブでデータの書込みが行われる場合、お薦めしません。同時実行は、同時実行制御オプションを使用して制御できます。

ODIは、特定のシナリオまたはロード計画を、名前およびバージョンではなく内部IDで識別します。このため、同じ内部IDを持つシナリオまたはロード計画は、再生成後または変更後も同じシナリオまたはロード計画として処理されます。反対に、シナリオを削除してから、同じ名前およびバージョン番号で新しいシナリオを生成すると、別のシナリオが生成されます(別の内部IDを持つため)。

同時実行制御はシナリオまたはロード計画に対していつでも有効化または無効化できますが、すでに実行中のセッションおよび新しく開始されるセッションには次のような影響があります。

- 同時実行制御を無効から有効に切り替えると、すでに実行中のジョブおよびキューに入っているジョブは実行中ジョブとしてカウントされ、新しいジョブ発行はジョブ発行時の同時実行制御設定を使用して処理されます。

- シナリオまたはロード計画の同時実行制御を有効から無効に切り替えると、すでに発行されて待機状態にあるジョブ(または後で再開されるジョブ)は元の同時実行制御設定値を保持するため、実行中のジョブとキューに入っているジョブを実行中ジョブとみなして待機します。
ただし、同時実行制御が無効になった状態で新しいジョブが発行されると、すでに待機中のジョブよりも先に実行されることがあります。その結果、ポーリングの時点で、同時実行制御が有効になっていない状態で開始された実行中ジョブがシステムで検出されると、待機中のジョブが遅延する可能性があります。また、待機中のジョブが最終的に実行を開始した後も、後で発行されて同時に実行されている制御対象外のジョブによる影響を受けることがあります。

シナリオまたはロード計画の同時実行を制限するには、次の手順を実行します。

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータでシナリオまたはロード計画を右クリックし、「開く」を選択して開きます。

2. 「定義」タブを選択し、同時実行制御オプションを変更します。

- このシナリオまたはロード計画の複数のインスタンスの同時実行を許可しない場合は、「同時実行の制限」チェック・ボックスを有効にします。「同時実行の制限」が無効になっている(チェックされていない)場合、制限はなく、このシナリオまたはロード計画の複数のインスタンスを同時に実行できます。

- 「同時実行の制限」が有効になっている場合、目的の「違反動作」を設定します。

- 実行エラーの発生: シナリオまたはロード計画のインスタンスがすでに実行中の場合、別のインスタンスを実行しようとすると、セッションは作成されますが、即時に終了され、同時実行制御エラーの原因となった現在実行中のセッションを特定する実行エラー・メッセージが表示されます。

- 実行の待機: シナリオまたはロード計画のインスタンスがすでに実行中の場合、追加の実行は待機ステータスになり、システムは実行の順番の到来をポーリングします。セッションのステータスは、現在実行中のセッションと、実行中インスタンスの完了後の実行の順番を待機しているすべての同時セッション(ある場合)を反映するように定期的に更新されます。
このオプションを選択した場合、「待機ポーリング間隔」で、実行中インスタンスが完了したかどうかをシステムでチェックする頻度を設定します。「待機ポーリング間隔」は、「実行の待機」を選択した場合にのみ入力できます。

待機ポーリング間隔を指定しない場合、実行中エージェントのデフォルトが使用されます(ODI 12.1.3では、デフォルト・エージェントの値は30秒です)。

3. 「保存」をクリックして変更を保存します。

シナリオのエクスポート

エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。

単一のシナリオ、またはシナリオのグループをエクスポートできます。

1つの単一シナリオのエクスポートについては、「1つのODIオブジェクトのエクスポート」を参照してください。

シナリオ・グループをエクスポートするには:

1. シナリオのグループが含まれているプロジェクトまたはフォルダを選択します。

2. 右クリックして「すべてのシナリオのエクスポート」を選択します。「すべてのシナリオのエクスポート」ダイアログが開きます。

3. 「すべてのシナリオのエクスポート」ダイアログで、エクスポート・パラメータを次のように指定します。

パラメータ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。
「エクスポート・ディレクトリ」を指定しない場合、エクスポート・ファイルは「デフォルトのエクスポート・ディレクトリ」に作成されることに注意してください。

子コンポーネント・エクスポート

このオプションを選択すると、エクスポート対象のオブジェクトにリンクされたオブジェクトもエクスポートされます。これらのオブジェクトは、ツリー内でエクスポートされたオブジェクトの下に表示されるオブジェクトです。このオプションは選択されたままにしておくことをお薦めします。詳細は、「子コンポーネントを伴うオブジェクトのエクスポート」を参照してください。

既存のファイルを警告なしで置換します

このオプションを選択すると、既存のファイルがエクスポートのファイルで置換されます。

4. シナリオをエクスポートするオブジェクトのタイプを選択します。

5. 暗号化オプションを設定します。エクスポートしたシナリオでパスワードなどの機密データを保持および暗号化する場合は、エクスポート・キーを設定します。機密データをインポートして復号化する場合、後でこのシナリオをインポートするときにこのエクスポート・キーを入力する必要があります。

6. 拡張オプションを設定します。この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

7. パラメータ

説明

XMLバージョン

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのパラメータxmlバージョン <?xml version="1.0" encoding="ISO-8859-1"?>

文字セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。
<?xml version="1.0" encoding="ISO-8859-1"?>

Java文字セット

ファイル生成に使用されるJava文字セット。

8. 「OK」をクリックします。

XML形式のエクスポート・ファイルが指定した場所に作成されます。

本番へのシナリオのインポート

デザイナから生成したシナリオをエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、シナリオを別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

開発リポジトリへのシナリオのインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

シナリオをインポートする方法は、次の2通りあります。

- 「インポート」では、標準のオブジェクト・インポート・メソッドが使用されます。このインポート・プロセス時に、エクスポートしたシナリオに関連付けられているスケジュールをインポートするかどうかを選択できます。

- 「置換のインポート」では、既存のシナリオがエクスポート・ファイルの内容で置換されます。他のオブジェクトからこのシナリオへの参照は保持されます。元のシナリオのセッション、シナリオ・レポートおよびスケジュールは削除され、エクスポート・ファイルのスケジュールで置換されます。

シナリオは、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、第17章「バージョン・コントロールの使用」を参照してください。

シナリオのインポート

1つ以上のシナリオをOracle Data Integratorにインポートするには:

1. オペレータ・ナビゲータで、「シナリオ」パネルを選択します。

2. 右クリックして「インポート」→「シナリオのインポート」の順に選択します。

3. 「インポート・タイプ」の値を選択します。インポート・タイプの詳細は、第18章「エクスポートおよびインポート」を参照してください。

4. 「ファイル・インポート・ディレクトリ」を指定します。

5. シナリオとともにエクスポートされたスケジュールもインポートする場合は、「スケジュールのインポート」オプションを選択します。

6. インポートするシナリオを「インポートするファイルを選択します」リストから1つ以上選択します。

7. 「OK」をクリックします。

シナリオは作業リポジトリにインポートされます。また、オペレータ・ナビゲータの「シナリオ」ツリーに表示されます。この作業リポジトリが開発リポジトリの場合、これらのシナリオは、そのソースのパッケージ、マッピング、プロシージャまたは変数にも関連付けられます。

シナリオの置換

エクスポートしたシナリオでシナリオを置換する場合は、「置換のインポート」モードを使用します。

シナリオを置換モードでインポートするには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、置換するシナリオを選択します。

2. シナリオを右クリックして、「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、シナリオのエクスポート・ファイルを指定します。

4. 「OK」をクリックします。

異なるリポジトリからのシナリオの使用

シナリオは、生成された作業リポジトリとは異なる作業リポジトリから操作する必要がある場合があります。

例

次に、このタイプのプロセスが発生する組織の例を2つ示します。

- 企業に、同じソフトウェア・アプリケーションを使用する代理店が多数ある場合。IT本部では、データを中央データ・センターに一元化するパッケージとシナリオを開発します。これらのシナリオは、各代理店で同様に実行されるように設計されます。

- 企業に、ソフトウェア・アプリケーションの開発、調整および運用を目的とした3つの別個のIT環境が存在している場合。この企業のプロセスでは、完全に独立した環境が要求されるため、リポジトリを共有できません。

前提条件

この組織の前提条件は、各環境(サイト、代理店または環境)に作業リポジトリをインストールしていることです。この作業リポジトリに関連付けられるマスター・リポジトリのトポロジには、論理アーキテクチャの観点から互換性がある必要があります(同じ論理スキーマ名)。物理アーキテクチャで記述される接続特性は、異なっていてもかまいません。

一部のプロシージャまたはマッピングでコンテキスト・コードを明示的に指定する場合は、ターゲット・トポロジに同じコンテキスト・コードが含まれる必要があることに注意してください。トポロジ(つまり、物理アーキテクチャと論理アーキテクチャ)は、開発のマスター・リポジトリからエクスポートし、ターゲット・リポジトリにインポートすることもできます。この操作は、トポロジ・モジュールを使用して実行します。この場合、物理トポロジ(サーバーのアドレス)は、シナリオを操作する前にパーソナライズする必要があります。トポロジのインポートでは、ターゲット・リポジトリにすでに存在するデータ・サーバーは変更されず、単に新規データ・サーバーが参照されることにも注意してください。

異なる作業リポジトリからシナリオを操作するには:

1. 元のリポジトリからシナリオをエクスポートします(右クリックして「エクスポート」)

2. シナリオ・エクスポート・ファイルをターゲット環境に転送する

3. ターゲット環境でデザイナ・ナビゲータを開く(ターゲット・リポジトリに接続)

4. エクスポート・ファイルからシナリオをインポートする

シナリオの暗号化および復号化

シナリオを暗号化すると、重要なコードを保護できます。暗号化されたシナリオは実行できますが、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたシナリオによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたDES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。

警告:

暗号化されたシナリオまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保管しておくことを強くお薦めします。

シナリオを暗号化するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、暗号化するシナリオを選択します。

2. 右クリックして「暗号化」を選択します。

3. 「暗号化オプション」ダイアログで、次のいずれかの操作を実行します。

- 個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。

- 新規暗号化鍵を取得します: 新しい鍵を生成します。

4. 「OK」をクリックしてシナリオを暗号化します。新しい鍵の生成を選択した場合は、ダイアログに新しい鍵も表示されます。「保存」をクリックして、鍵をファイルに保存します。

注意:
文字数が少なすぎる個人キーを入力すると、キー・サイズが無効であるというエラーが発生します。

シナリオを復号化するには:

1. 復号化するシナリオを右クリックします。

2. 「復号化」を選択します。

3. 「シナリオ復号化」ダイアログで、次のいずれかの操作を実行します。

- 既存の暗号化鍵ファイルを選択します。

- 個人キーに対応する文字列を入力(または貼付け)します。

復号化が完了するとメッセージが表示されます。

12 ロード計画の使用

この章では、ロード計画の概要について説明します。ロード計画の作成方法について説明し、ロード計画の使用方法に関する情報を提供します。

この章には次の項が含まれます:

- ロード計画の概要

- ロード計画の作成

- ロード計画の実行

- 本番でのロード計画の使用

ロード計画の概要

Oracle Data Integratorは、大規模データ・ウェアハウスへのデータ移入に使用されることがよくあります。このようなユース・ケースでは、一般的に、何百ものシナリオを使用して、何千もの表にデータが移入されます。これらのシナリオの実行は、ソースからターゲットへのデータ・スループットが、バッチ・ウィンドウ内で最も効率的になるような方法で編成する必要があります。ロード計画は、このようなユース・ケースについて、シナリオの実行を順次ステップおよびパラレル・ステップの階層に編成するために役立ちます。

ロード計画は、Oracle Data Integratorの実行可能オブジェクトであり、並列または順次で、条件付きで実行可能なステップの階層を含めることができます。この階層のリーフ・ノードはシナリオです。パッケージ、マッピング、変数およびプロシージャは、シナリオの形式で実行用のロード計画に追加できます。詳細は、「ロード計画の作成」を参照してください。

ロード計画では複数のレベルで変数の設定と使用が可能です。詳細は、「ロード計画での変数の使用」を参照してください。また、ロード計画では、シナリオがエラーで終了した場合の例外処理戦略もサポートされています。詳細は、「ロード計画の例外および再開可能の処理」を参照してください。

ロード計画は、コマンド行、Oracle Data Integrator Studio、Oracle Data IntegratorコンソールまたはWebサービス・インタフェースから開始、停止および再開できます。また、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。ロード計画を実行すると、ロード計画インスタンスが作成されます。このロード計画インスタンスを実行する各試行は、別々のロード計画実行です。詳細は、「ロード計画の実行」を参照してください。

ロード計画は本番環境で変更でき、本番のニーズに応じてステップを有効または無効にできます。ロード計画オブジェクトは、デザイナ・ナビゲータとオペレータ・ナビゲータで設計および表示できます。開発作業リポジトリに接続している場合は様々な設計操作(作成、編集、削除など)を実行できますが、実行作業リポジトリでは一部の設計操作は使用できません。詳細は、「ロード計画ステップの編集」を参照してください。

作成したロード計画は作業リポジトリに格納されます。ロード計画は、エクスポートして別のリポジトリにインポートし、異なるコンテキストで実行できます。また、バージョニングすることもできます。詳細は、「ロード計画のエクスポート、インポートおよびバージョニング」を参照してください。

ロード計画は、デザイナ・ナビゲータおよびオペレータ・ナビゲータの「ロード計画とシナリオ」アコーディオンに表示されます。ロード計画実行は、オペレータ・ナビゲータの「ロード計画実行」アコーディオンに表示されます。

ロード計画実行ライフ・サイクル

ロード計画の実行時またはスケジュール時に、このロード計画実行に使用する変数値、コンテキストおよび論理エージェントを指定します。

ロード計画を実行すると、ロード計画インスタンスと最初のロード計画実行が作成されます。このロード計画インスタンスは、元のロード計画から切り離されており、ロード計画実行はこのインスタンスの最初の実行試行に対応します。実行が再開されると、このロード計画インスタンスの下に新しいロード計画実行が作成されます。この結果、ロード計画インスタンスの各実行試行は、別々のロード計画実行としてログに保持されます。

詳細は、「ロード計画の実行」を参照してください。

1つのロード計画インスタンスにつき1つの実行のみが許可され、それが最後のロード計画インスタンス実行である必要があります。ただし、シナリオと同様に、ロード計画の同時実行制御設定に応じて、(ロード計画の内部IDにより決定された)同じロード計画の複数のインスタンスを同時に実行することも可能です。

ODIによる同時実行の処理の詳細は、「シナリオおよびロード計画の同時実行の制御」を参照してください。

パッケージ、シナリオおよびロード計画の相違点

ロード計画は、Oracle Data Integratorの最大の実行可能オブジェクトです。そのステップではシナリオが使用されます。実行可能オブジェクトがロード計画で使用される場合、そのオブジェクトはシナリオに自動的に変換されます。たとえば、パッケージはロード計画ではシナリオの形式で使用されます。ロード計画自体はロード計画に追加できないことに注意してください。ただし、OdiStartLoadPlanツールを使用して、別のロード計画を開始するシナリオ実行ステップの形式でシナリオを追加することは可能です。

ロード計画は、パッケージまたはシナリオの代替オブジェクトではなく、パッケージおよびシナリオの実行を上位レベルで編成するために使用されます。

パッケージとは異なり、ロード計画は、並列性、再開可能および例外処理をネイティブでサポートします。ロード計画は本番にそのまま移行されるのに対して、パッケージはシナリオの形式で移行されます。また、ロード計画は本番環境で作成できます。

ロード計画インスタンスとロード計画実行はセッションに類似しています。相違点は、セッションは、再開時に新規実行が既存のセッションを上書きする点です。これに対し、新規ロード計画実行は既存のロード計画実行を上書きせず、このロード計画インスタンスに対する前のロード計画実行の後に追加されます。ロード計画インスタンスは実行時に変更できないことに注意してください。

ロード計画の構造

ロード計画は、一連の複数タイプのステップで構成されます。各ステップには、複数の子ステップを含めることができます。ステップ・タイプに応じて、ステップを並列または順次で、条件付きで実行できます。デフォルトで、ロード計画には空のルート・シリアル・ステップが含まれます。このルート・ステップは必須であり、ステップ・タイプは変更できません。

表12-1に、ロード計画ステップの様々なタイプと使用可能な子ステップを示します。

表12-1 ロード計画ステップ

タイプ

説明

使用可能な子ステップ

シリアル・ステップ

その子ステップのシリアル実行を定義します。子ステップには順序が設定され、子ステップは前の子ステップが終了した後でのみ実行されます。

ルート・ステップはシリアル・ステップです。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

パラレル・ステップ

その子ステップのパラレル実行を定義します。子ステップは、優先度順に即時に開始されます。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

シナリオ実行ステップ

シナリオの実行を開始します。

このタイプのステップには子ステップを設定できません。

Caseステップ

Whenステップ

Elseステップ

これらのステップの組合せによって、変数の値に基づいた条件ブランチが可能になります。

注意: Caseステップの下に複数のWhenステップがある場合は、条件を満たす最初に有効なWhenステップが実行されます。条件を満たすWhenステップがない場合、またはCaseステップにWhenステップが含まれていない場合は、Elseステップが実行されます。

Caseステップの場合

- Whenステップ

- Elseステップ

Whenステップの場合

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

Elseステップの場合

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

例外ステップ

ステップ階層の関連ステップで例外が発生した場合に実行されるステップのグループを定義します。同じ例外ステップをステップ階層内の複数のステップに関連付けることができます。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

図12-1に、Oracle Data Integratorで作成されたロード計画のサンプルを示します。このサンプルのロード計画では、データ・ウェアハウスがロードされます。

- 複数のディメンションが並列してロードされます。ロードされるのは、LOAD_TIME_DIM、LOAD_PRODUCT_DIM、LOAD_CUSTOMER_DIMの各シナリオ、地理的ディメンション、およびODI_VAR_SESS1変数の値に応じてCUST_NORTHシナリオまたはCUST_SOUTHシナリオです。

- 地理的ディメンションは一連の3つのシナリオ(LOAD_GEO_ZONE_DIM、LOAD_COUNTRIES_DIM、LOAD_CITIES_DIM)で構成されます。

- これらのディメンションがロードされた後、2つのファクト表が並列してロードされます(LOAD_SALES_FACTシナリオとLOAD_MARKETING_FACTシナリオ)。

図12-1 ロード計画のサンプル

ロード計画エディタの概要

ロード計画エディタは、ロード計画を設計するための単一の環境を提供します。図12-2では、ロード計画エディタの概要を示しています。

図12-2 ロード計画エディタの「ステップ」タブ

ロード計画ステップは、ロード計画エディタの「ステップ」タブで追加、編集および編成します。ステップ階層表では、ロード計画のステップの編成を定義します。この表の各行はステップを表し、その主なプロパティが表示されます。

パッケージ、統合マッピング、変数、プロシージャ、またはシナリオなどのコンポーネントをデザイナ・ナビゲータからステップ階層表にドラッグして、これらのコンポーネントのシナリオ実行ステップを作成できます。

ステップ追加ウィザードまたはクイック・ステップ・ツールを使用して、このロード計画にシナリオ実行ステップや他のタイプのステップを追加することもできます。詳細は、「ロード計画ステップの追加」を参照してください。

ステップ階層表の上部にある「ロード計画」エディタのツールバーには、ロード計画のステップを作成、編成および順序付けするためのツールが用意されています。図12-2は、様々なツールバー・コンポーネントの詳細を示しています。

表12-2 「ロード計画」エディタのツールバー

アイコン

名前

説明

検索

ステップ階層表でステップを検索します。

すべて展開

ステップ階層表内のすべてのツリー・ノードを開きます。

すべて縮小

ステップ階層表内のすべてのツリー・ノードを閉じます。

ステップの追加

「ステップの追加」メニューを開きます。ステップ追加ウィザードまたはクイック・ステップ・ツールのいずれかを選択して、ステップを追加できます。詳細は、「ロード計画ステップの追加」を参照してください。

ステップの削除

選択したステップおよびそのすべての子ステップを削除します。

並べ替え矢印: 上に移動、下に移動、外に移動、内に移動

並べ替え矢印を使用して、選択したステップを必要な位置に移動します。

ステップ階層表の下にあるプロパティ・パネルには、ステップ階層表で選択したオブジェクトのプロパティが表示されます。

ロード計画の作成

この項では、ODI Studioで新規ロード計画を作成する方法について説明します。

1. 新規ロード計画を作成します。詳細は、「新規ロード計画の作成」を参照してください。

2. ロード計画にステップを追加し、ロード計画の順序を定義します。詳細は、「ロード計画ステップの順序の定義」を参照してください。

3. 例外の処理方法を定義します。詳細は、「ロード計画の例外および再開可能の処理」を参照してください。

新規ロード計画の作成

ロード計画は、デザイナ・ナビゲータまたはオペレータ・ナビゲータから作成できます。

新規ロード計画を作成するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、「ロード計画とシナリオ」アコーディオンのツールバーにある「新規ロード計画」をクリックします。ロード計画エディタが表示されます。

2. ロード計画エディタで、このロード計画に対して「名前」、「フォルダ名」および「説明」に値を入力します。

3. オプションで、次のパラメータを設定します:

- ログ・セッション: ロード計画によって開始されるセッションに対するセッション・ログの保持方法を選択します。可能な値は次のとおりです。

- 常時: 常にセッション・ログを保持します(デフォルト)。

- なし: セッション・ログを保持しません。「失敗したステップから再開」または「失敗したタスクから再開」として構成されているシナリオ実行ステップの場合、再開のためにセッション全体を保持する必要があるため、エージェントはパラメータが「エラー」に設定されている場合と同様に動作します。

- エラー: セッションがエラー状態で完了した場合のみ、セッション・ログを保持します。

- ログ・セッション・ステップ: ロード計画によって開始される各セッションのセッション・ステップに対するログの保守方法を選択します。このプロパティは、セッション・ログを保持する場合のみ適用されます。可能な値は次のとおりです。

- シナリオ設定別: シナリオ設定に応じてセッション・ステップ・ログが保持されます。パッケージから作成されたシナリオの場合、「ジャーナルへのステップのログ」という拡張ステップ・プロパティでステップを保持するかどうかを指定できます。他のシナリオでは、すべてのステップが保持されます(デフォルト)。

- なし: セッション・ステップ・ログを保持しません。「失敗したステップから再開」または「失敗したタスクから再開」として構成されているシナリオ実行ステップの場合、再開のためにセッション全体を保持する必要があるため、エージェントはパラメータが「エラー」に設定されている場合と同様に動作します。

- エラー: ステップがエラー状態の場合のみ、セッション・ステップ・ログが保持されます。

- セッション・タスクのログ・レベル: セッションのログ・レベルを選択します。この値は、単位シナリオの開始時の「ログ・レベル」の値に対応します。デフォルトは5です。シナリオ実行ステップが「失敗したステップから再開」または「失敗したタスクから再開」として構成されている場合、再開のためにセッション全体を保持する必要があるため、このパラメータは無視されます。

- キーワード: このロード計画から開始されるセッションに対して設定されるキーワードのカンマ区切りのリストを入力します。これらのキーワードによって、セッション・フォルダや自動分類によるODIログの編成が容易になります。これらのキーワードは、子ステップのレベルで上書きできることに注意してください。詳細は、『Oracle Data Integratorの管理』のログの管理に関する項を参照してください。

4. オプションで、「同時実行コントローラ」のオプションを変更します。

- このロード計画の複数のインスタンスの同時実行を許可しない場合は、「同時実行の制限」チェック・ボックスを有効にします。「同時実行の制限」が無効になっている(チェックされていない)場合、制限はなく、このロード計画の複数のインスタンスを同時に実行できます。

- 「同時実行の制限」が有効になっている場合、目的の「違反動作」を設定します。

- 実行エラーの発生: ロード計画のインスタンスがすでに実行中の場合、別のインスタンスを実行しようとすると、セッションは作成されますが、即時に終了され、同時実行制御エラーの原因となった現在実行中のセッションを特定する実行エラー・メッセージが表示されます。

- 実行の待機: ロード計画のインスタンスがすでに実行中の場合、追加の実行は待機ステータスになり、システムは実行の順番の到来をポーリングします。セッションのステータスは、現在実行中のセッションと、実行中インスタンスの完了後の実行の順番を待機しているすべての同時セッション(ある場合)を反映するように定期的に更新されます。
このオプションを選択した場合、「待機ポーリング間隔」で、実行中インスタンスが完了したかどうかをシステムでチェックする頻度を設定します。「待機ポーリング間隔」は、「実行の待機」を選択した場合にのみ入力できます。

待機ポーリング間隔を指定しない場合、実行中エージェントのデフォルトが使用されます(ODI 12.1.3では、デフォルト・エージェントの値は30秒です)。

5. 「ステップ」タブを選択し、「ロード計画ステップの順序の定義」の説明に従ってステップを追加します。

6. ロード計画に条件ブランチが必要な場合、またはシナリオで変数が使用される場合は、「変数」タブを選択し、「ロード計画の変数の宣言」の説明に従って変数を宣言します。

7. ロード計画ステップが失敗した場合に使用される例外ステップを追加するには、「例外」タブを選択し、「例外フローの定義」の説明に従って例外ステップを定義します。

8. 「ファイル」メニューから「保存」をクリックします。

ロード計画が「ロード計画とシナリオ」アコーディオンに表示されます。関連するロード計画とシナリオを、ロード計画とシナリオ・フォルダにグループ化して、ロード計画を編成できます。

ロード計画ステップの順序の定義

ロード計画は、子ステップを階層に編成したものです。この階層では、ステップの条件付き処理が並列または順次で行えます。

実行フローは2つのステージで構成できます:

- 設計時。ステップ階層の定義時に構成できます。

- ロード計画にステップを追加する際に、ステップ・タイプを選択します。ステップ・タイプによって、使用可能な子ステップとこれらの子ステップの実行方法が定義されます。実行方法には、並列、順次、変数の値に基づく条件付き(Caseステップ)があります。ステップ・タイプの詳細は、表12-1「ロード計画ステップ」を参照してください。

- ロード計画にステップを追加する際に、ステップの挿入位置も決定します。子ステップを追加、選択したステップの後に兄弟ステップを追加、または選択したステップの前に兄弟ステップを追加できます。詳細は、「ロード計画ステップの追加」を参照してください。

- また、ステップを必要な位置にドラッグするか、またはステップ表のツールバーにある矢印を使用して、ロード計画ステップの順序を再編成することもできます。詳細は、表12-2「ロード計画エディタのツールバー」を参照してください。

- 設計時および実行時。ステップを有効または無効にして構成できます。ステップ階層表で、ステップを有効または無効にできます。あるステップを無効にすると、そのすべての子ステップも無効になることに注意してください。無効にしたステップとそのすべての子ステップは、ロード計画の実行時に実行されません。

この項には次のトピックが含まれます:

- ロード計画ステップの追加

- ロード計画ステップの編集

- ステップの削除

- ステップの複製

ロード計画ステップの追加

ロード計画ステップを追加するには、ステップ追加ウィザードを使用するか、または特定のステップ・タイプ用のクイック・ステップ・ツールを選択します。また、オブジェクト(シナリオ、パッケージなど)をコンテナ・ステップにドラッグ・アンド・ドロップして、ロード計画ステップを作成することもできます。ステップは、選択したステップの子として作成されます。ロード計画ステップの様々なタイプの詳細は、表12-1「ロード計画ステップ」を参照してください。シナリオ実行ステップを作成するには、パッケージ、マッピング、変数、プロシージャまたはシナリオなどのコンポーネントを、デザイナ・ナビゲータからステップ階層表にドラッグすることもできます。Oracle Data Integratorによって、挿入したコンポーネントに対するシナリオ実行ステップが自動的に作成されます。

追加したロード計画ステップは、必要最小限の設定でステップ階層に挿入されます。ロード計画ステップの構成方法の詳細は、「ロード計画ステップの編集」を参照してください。

ステップ追加ウィザードを使用したロード計画ステップの追加

ステップ追加ウィザードを使用してロード計画ステップを挿入するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表のステップを選択します。

3. ロード計画エディタのツールバーで、「ステップの追加」→「ステップ追加ウィザード」の順に選択します。

4. ステップ追加ウィザードで、次の項目を選択します。

- 「ステップ・タイプ」。使用可能なステップ・タイプは、シリアル、パラレル、シナリオ実行、Case、WhenおよびElseです。様々なステップ・タイプの詳細は、表12-1「ロード計画ステップ」を参照してください。

- 「ステップの場所」。このパラメータは、ステップが追加される場所を定義します。

- 子ステップを選択に追加: 選択したステップの下にステップが追加されます。

- 兄弟ステップを選択の後に追加: 選択したステップの後に同じレベルでステップが追加されます。

- 兄弟ステップを選択の前に追加: 選択したステップの前に同じレベルでステップが追加されます。

注意:
現在の選択に対して有効な値のみが「ステップ・タイプ」および「ステップの場所」に表示されます。

5. 「次へ」をクリックします。

6. 追加しているステップ・タイプに対する表12-3の指示に従います。

表12-3 ステップの追加ウィザードのアクション

ステップのタイプ

説明と必須作業

シリアル・ステップまたはパラレル・ステップ

新しいロード計画ステップのステップ名を入力します。

シナリオ実行ステップ

1. 「ルックアップ・シナリオ」ボタンをクリックします。

2. 「ルックアップ・シナリオ」ダイアログで、ロード計画に追加するシナリオを選択し、「OK」をクリックします。
または、実行可能オブジェクトに対するシナリオを作成してこのシナリオを使用するには、「実行可能なオブジェクト・タイプ」選択ボックスで該当するオブジェクト・タイプを選択した後、このシナリオ実行ステップで実行する実行可能オブジェクトを選択し、「OK」をクリックします。新しいシナリオ名とバージョンを入力し、「OK」をクリックします。該当するオブジェクトに対する新規シナリオが作成され、このシナリオ実行ステップで使用されます。

ヒント: 設計時に、まだ存在していないシナリオを使用してシナリオ実行ステップを作成する場合があります。この場合、既存のシナリオを選択するかわりに、シナリオ名とバージョン番号を直接入力して、「終了」をクリックします。後で、「シナリオ実行ステップの変更」ウィザードを使用してシナリオを選択できます。詳細は、「シナリオ実行ステップのシナリオの変更」を参照してください。

バージョン番号-1を使用すると、文字列の字句ソート順序に基づいてシナリオの最新バージョンが使用されます。

3. 「ステップ名」にはシナリオの名前が自動的に移入され、「バージョン」フィールドにはシナリオのバージョン番号が移入されます。オプションで、ステップ名を変更します。

4. 「次へ」をクリックします。

5. 「ロード計画に追加」列で、ロード計画変数に追加するシナリオ変数を選択します。シナリオで特定の変数が起動パラメータとして使用されている場合、その変数はロード計画変数に自動的に追加されます。
詳細は、「ロード計画での変数の使用」を参照してください。

Case

1. 条件ブランチに使用する変数を選択します。リストからいずれかのロード計画変数を選択するか、または「ルックアップ変数」をクリックして新規変数をロード計画に追加し、追加した変数をこのCaseステップに使用します。
詳細は、「ロード計画での変数の使用」を参照してください。

2. 「ステップ名」に変数のステップ・タイプと名前が自動的に設定されます。オプションで、ステップ名を変更します。
詳細は、「ロード計画ステップの編集」を参照してください。

When

1. WHEN句の評価で使用する演算子を選択します。可能な値は次のとおりです。

- より小さい(<)

- 以下(<=)

- 異なる(<>)

- 等しい(=)

- より大きい(>)

- 以上(>=)

- Nullでない

- NULLである

2. WHEN句の評価で使用する「値」を入力します。

3. 「ステップ名」には、使用される演算子が自動的に設定されます。オプションで、ステップ名を変更します。
詳細は、「ロード計画ステップの編集」を参照してください。

Else

「ステップ名」には、ステップ・タイプが自動的に移入されます。オプションで、ステップ名を変更します。

詳細は、「ロード計画ステップの編集」を参照してください。

7. 「終了」をクリックします。

8. ステップがステップ階層に追加されます。

注意:
ステップを必要な位置にドラッグするか、またはステップ表のツールバーにある並べ替え矢印を使用してステップ階層のステップを移動して、ロード計画ステップの順序を再編成できます。

クイック・ステップ・ツールを使用したロード計画ステップの追加

クイック・ステップ・ツールを使用してロード計画ステップを挿入するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層で、子ステップを作成するロード計画ステップを選択します。

3. ステップのツールバーで、「ステップの追加」を選択し、追加するステップ・タイプに対応するクイック・ステップのオプションを選択します。表12-4に、クイック・ステップ・ツールのオプションを示します。

表12-4 クイック・ステップ・ツール

クイック・ステップ・ツールのオプション

説明と必須作業

選択したステップの子としてシリアル・ステップを追加します。デフォルト値が使用されます。これらの値は、ステップ階層表またはプロパティ・インスペクタで変更できます。詳細は、「ロード計画ステップの編集」を参照してください。

選択したステップの子としてパラレル・ステップを追加します。デフォルト値が使用されます。これらの値は、ステップ階層表またはプロパティ・インスペクタで変更できます。詳細は、「ロード計画ステップの編集」を参照してください。

選択したステップの子としてシナリオ実行ステップを追加します。表12-3のシナリオ実行ステップに関する指示に従います。

選択したステップの子としてCaseステップを追加します。表12-3のCaseステップに関する指示に従います。

選択したステップの子としてWhenステップを追加します。表12-3のWhenステップに関する指示に従います。

選択したステップの子としてElseステップを追加します。表12-3のElseステップに関する指示に従います。

注意:
クイック・ステップ・ツールでは、現在の選択項目に対して有効なステップ・タイプのみが有効になります。

ロード計画ステップの編集

ロード計画ステップを編集するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、変更するロード計画ステップを選択します。プロパティ・インスペクタにステップのプロパティが表示されます。

3. 必要に応じて、ロード計画ステップのプロパティを編集します。

次の操作は、ステップ編集時の一般的なタスクです:

- シナリオ実行ステップのシナリオの変更

- シナリオ実行ステップの拡張オプションの設定

- シナリオ実行ステップのリンクされたオブジェクトを開く

- Caseステップのテスト変数の変更

- 例外および再開動作の定義

- シナリオの再生成

- シナリオの最新バージョンへのリフレッシュ

シナリオ実行ステップのシナリオの変更

シナリオを変更するには:

1. 「ステップ」または「例外」タブのステップ階層表で、シナリオ実行ステップを選択します。

2. プロパティ・インスペクタの「ステップ・プロパティ」セクションで、「ルックアップ・シナリオ」をクリックします。「シナリオ実行ステップの変更」ウィザードが開きます。

3. 「シナリオ実行ステップの変更」ウィザードで、「ルックアップ・シナリオ」をクリックし、表12-3のシナリオ実行ステップに対応する指示に従います。

シナリオ実行ステップの拡張オプションの設定

プロパティ・インスペクタで、シナリオ実行ステップの次のプロパティを設定できます:

- 優先度: シナリオを並列して開始する必要がある場合のこのステップの優先度。0から100 (100が最も高い優先度)の整数値です。デフォルトは0です。シナリオ実行ステップの優先度は、実行中のロード計画内のすべての実行可能シナリオの間で評価されます。優先度が最も高いシナリオ実行ステップが最初に実行されます。

- コンテキスト: ステップ実行に使用されるコンテキスト。デフォルト・コンテキストは、ロード計画の実行時に「ロード計画の開始」ダイアログで定義されるロード計画コンテキストです。コンテキストのみを指定して、論理エージェントの値を指定しない場合、ステップは、ロード計画を開始した同じ物理エージェントで開始されますが、この指定したコンテキスト内で開始されます。

- 論理エージェント: ステップ実行に使用される論理エージェント。デフォルトでは、ロード計画の実行時に「ロード計画の開始」ダイアログで定義される論理エージェントが使用されます。論理エージェントのみを設定してコンテキストを設定しない場合、ステップは、ロード計画の開始時に指定したコンテキストで解決された、指定の論理エージェントに対応する物理エージェントで開始されます。論理エージェント値を指定しない場合、ステップは、ロード計画を開始した同じ物理エージェントで開始されます(ステップにコンテキストを指定しているかどうかは関係ありません)。

シナリオ実行ステップのリンクされたオブジェクトを開く

シナリオ実行ステップは、パッケージ、マッピング、変数、プロシージャまたはシナリオに対して作成できます。シナリオ実行ステップが作成されると、元のオブジェクトのオブジェクト・エディタを開いてシナリオ実行ステップを編集できます。

シナリオ実行ステップのリンクされたオブジェクトを表示および編集するには:

1. 「ステップ」または「例外」タブのステップ階層表で、シナリオ実行ステップを選択します。

2. 右クリックして「リンクされたオブジェクトを開く」を選択します。

リンクされたオブジェクトのオブジェクト・エディタが表示されます。

Caseステップのテスト変数の変更

WHEN文で定義されたテストの評価に使用する変数を変更するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表で、Caseステップを選択します。

2. プロパティ・インスペクタの「ステップ・プロパティ」セクションで、「ルックアップ変数」をクリックします。「Caseステップの変更」ダイアログが開きます。

3. 「Caseステップの変更」ダイアログで、「ルックアップ変数」をクリックし、表12-3「ステップの追加ウィザードのアクション」のCaseステップに対応する指示に従います。

例外および再開動作の定義

例外および再開の動作は、ステップ階層表のステップに設定できます。詳細は、「ロード計画の例外および再開可能の処理」を参照してください。

シナリオの再生成

特定のロード計画ステップのシナリオをその子ステップのシナリオも含めてすべて再生成するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表から、ロード計画ステップを選択します。

2. 右クリックして「再生成」を選択します。このオプションは、バージョン番号が-1のシナリオには使用できないことに注意してください。

3. 「OK」をクリックします。

注意:
シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。

シナリオの最新バージョンへのリフレッシュ

特定のロード計画ステップのシナリオ・ステップをその子ステップのシナリオも含めてすべて変更し、シナリオのバージョンを各シナリオに使用可能な最新バージョンに設定するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表から、ロード計画ステップを選択します。

2. 右クリックして「シナリオを最新バージョンにリフレッシュ」を選択します。最新のシナリオ・バージョンは、シナリオ作成タイムスタンプによって決定されることに注意してください。ODIエージェントの実行中の最新のシナリオの決定では、シナリオ・バージョン文字列の値がアルファベットの昇順でソートされ、そのリストの最後のシナリオが選択されます。

注意:
このオプションは、バージョン番号が-1のシナリオには使用できません。

3. 「OK」をクリックします。

ステップの削除

ステップを削除するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、削除するステップを選択します。

3. ロード計画エディタのツールバーで、「ステップの削除」選択します。

ステップとその子ステップがステップ階層表から削除されます。

注意:
ステップ階層表での削除操作は元に戻すことができません。

ステップの複製

ステップを複製するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、複製するステップを右クリックして「選択の複製」を選択します。

3. 子ステップも含めたこのステップのコピーが作成され、元のステップの後の兄弟ステップとしてステップ階層表に追加されます。

これで、このステップを移動および編集できます。

ロード計画での変数の使用

ロード計画で使用するプロジェクト変数とグローバル変数は、ロード計画エディタでロード計画変数として宣言されます。これらの変数はすべてのステップで自動的に使用可能になり、その値がロード計画ステップに渡されます。

変数の値は、ロード計画の開始時に起動パラメータとしてロード計画に渡されます。ステップ・レベルでは、変数値を設定するか、またはリフレッシュを強制的に実行して、ステップとその子ステップの変数値を上書きできます。

注意:
ロード計画変数は、プロジェクト変数およびグローバル変数のコピーです。このため、元のプロジェクト変数およびグローバル変数の定義に対する変更が、すでにロード計画で作成された対応する変数に自動的に伝播されることはありません。右クリック・コンテキスト・メニューの「変数定義のリフレッシュ」オプションを使用して、ロード計画変数の定義を、対応するプロジェクト変数またはグローバル変数からの現在の値で更新できます。
ロード計画変数は元のプロジェクト変数またはグローバル変数のコピーであるため、ロード計画で元のプロジェクト変数またはグローバル変数のデフォルト値や、実行コンテキストにおける変数の履歴/最新値が考慮されることはありません。変数の値は、ロード計画の開始時に指定した値、またはロード計画内で設定/リフレッシュした値です。

変数は、シナリオ実行ステップ(変数の値は起動パラメータとしてシナリオに渡されます)、または条件付きブランチのCase/When/Elseステップで使用できます。

この項には次のトピックが含まれます:

- ロード計画の変数の宣言

- ステップの変数値の設定

ロード計画の変数の宣言

ロード計画変数を宣言するには:

1. ロード計画エディタを開き、「変数」タブに移動します。

2. ロード計画エディタのツールバーから、「変数の追加」を選択します。「ルックアップ変数」ダイアログが表示されます。

3. 「ルックアップ変数」ダイアログで、ロード計画に追加する変数を選択します。

4. 変数は、ロード計画エディタの「変数」タブと各ステップのプロパティ・インスペクタに表示されます。

ステップの変数値の設定

ステップ内の変数の値は、親ステップの値から継承されます。つまり、最終的にはロード計画の開始時に変数に指定した値から継承されます。

ElseステップとWhenステップを除く各ステップの場合、変数値を上書きすることもでき、このステップとその子ステップに使用される値を変更することもできます。

特定のステップで上書きまたはリフレッシュされた変数値は、その値が子孫分岐で再度上書きまたはリフレッシュされるまで、そのステップのすべての子孫に対して使用可能です。同様に、特定のステップで上書きまたはリフレッシュされた変数値が兄弟ステップや親ステップの値に影響を与えることはありません。

ステップ・レベルで変数値をオーバーライドするには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、変数値を上書きするステップを選択します。

3. プロパティ・インスペクタで、「変数」セクションに移動します。このロード計画に対して定義されている変数がこの変数表にリストされます。次の変数パラメータを変更できます。
このステップとすべての子ステップの変数値を指定する場合は、「上書き」を選択します。変数値の上書きを選択すると、次のいずれかを実行できます。

- 「値」フィールドに新しい変数値を設定できます。

- 「リフレッシュ」を選択して、ステップの実行前にこの変数をリフレッシュできます。「リフレッシュ」オプションを選択できるのは、変数値をリフレッシュするために「問合せの選択」が定義されている変数のみです。

注意:
グローバル変数またはプロジェクト変数のリフレッシュSQLが変更された場合、対応するロード計画変数の変数リフレッシュSQLは自動的に更新されません。ロード計画変数のリフレッシュSQLを更新するには、ロード計画エディタの「変数」タブでロード計画変数を右クリックすると表示されるコンテキスト・メニューから「変数定義のリフレッシュ」オプションを選択します。

ロード計画の例外および再開可能の処理

ロード計画には、実行フローでエラーを処理するために、例外と再開可能の2つの機能が用意されています。

例外

例外ステップには、ロード計画エディタの「例外」タブで定義されたステップの階層が含まれます。

特定の例外ステップをロード計画の1つ以上のステップに関連付けることができます。ロード計画のステップでエラーが発生した場合は、関連付けられている例外ステップが自動的に実行されます。

必要に応じて、失敗したステップの親ステップに対して例外を生成するように設定できます。例外を生成すると、親ステップが失敗するため、親ステップの例外ステップを実行できます。

再開可能

ロード計画実行が失敗後に再開されるとき、失敗したロード計画ステップは、「再開タイプ」パラメータに応じて再開されます。たとえば、パラレル・ステップでそのすべての子ステップを再開するか、または失敗した子ステップのみを再開するかを定義できます。

この項には次のトピックが含まれます:

- 例外フローの定義

- 例外処理の使用

- 再開動作の定義

例外フローの定義

例外ステップは、ロード計画エディタの「例外」タブで作成および定義します。

このタブには、例外ステップのリストが含まれます。各例外ステップは、ロード計画ステップの階層に存在します。「例外」タブは、ロード計画エディタの「ステップ」タブに類似しています。主な相違点は次のとおりです。

- 例外ステップ階層にルート・ステップはありません。各例外ステップは、個別のルート・ステップになります。

- シリアル、パラレル、シナリオ実行およびCaseの各ステップには、「ステップ」タブで同じプロパティを設定できますが、例外処理のプロパティ・グループは設定されません。エラーが発生した例外ステップによって他の例外ステップを生成することはできません。

例外ステップは、ステップ追加ウィザードを使用するか、またはロード計画エディタのツールバーで「ステップの追加」→「例外ステップ」を選択することによって、クイック・ステップ・ツールで作成できます。デフォルトで、例外ステップは、「例外」というステップ名で作成されます。この名前は、ステップ階層表またはプロパティ・インスペクタで変更できます。

ステップ追加ウィザードを使用して例外ステップを作成するには:

1. ロード計画エディタを開き、「例外」タブに移動します。

2. ロード計画エディタのツールバーで、「ステップの追加」→「ステップ追加ウィザード」の順に選択します。

3. ステップ追加ウィザードで、「ステップ・タイプ」リストから「例外」を選択します。

注意:
「ステップ・タイプ」には、現在の選択項目に対して有効な値のみが表示されます。

4. 「次へ」をクリックします。

5. 「ステップ名」フィールドに、例外ステップの名前を入力します。

6. 「終了」をクリックします。

7. 例外ステップがステップ階層に追加されます。

これで、この例外ステップの下に新しいステップを追加して階層を編成することによって、例外フローを定義できます。

例外処理の使用

ロード計画ステップの例外処理の定義では、このロード計画ステップに例外ステップを関連付け、例外動作を定義します。例外ステップは、WhenステップとElseステップを除く各ステップに対して設定できます。

ロード計画ステップの例外処理を定義するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、例外動作を定義するステップを選択します。プロパティ・インスペクタにステップのプロパティが表示されます。

3. プロパティ・インスペクタの「例外ハンドリング」セクションで、パラメータを次のように設定します。

- タイムアウト: このステップの最大実行時間(秒)を入力します。この時間を超えると、ステップはロード計画によって中断されます。タイムアウトに到達すると、ステップにエラーのマークが付けられ、例外ステップ(定義されている場合)が実行されます。この場合、例外ステップはタイムアウトになりません。必要に応じて、長時間実行状態になる可能性に備えて、親ステップにタイムアウトを設定できます。
ステップがタイムアウト前に失敗して例外ステップが実行された場合、そのステップと例外ステップの実行時間の合計はタイムアウトを超えることができません。タイムアウトを超える場合は、タイムアウトに到達した時点で例外ステップが失敗します。

デフォルト値のゼロ(0)は、タイムアウトが無限であることを示します。

- 例外ステップ: リストから、このステップが失敗した場合に実行する例外ステップを選択します。このリストに表示されるのは、ロード計画エディタの「例外」タブで作成および定義された例外ステップのみであることに注意してください。例外ステップの作成方法の詳細は、「例外フローの定義」を参照してください。

- 例外動作: 例外が発生した場合のこのステップの動作を定義します。次の中から選択します。

- 例外を実行して生成: 例外ステップ(ある場合)を実行し、親ステップに対する例外を生成します。

- 例外を実行して無視: 例外ステップ(ある場合)を実行し、例外を無視します。親ステップには実行が成功したことが通知されます。ただし、例外ステップ自体で例外が発生した場合は、親ステップに失敗が通知されます。

パラレル・ステップのみの場合は、次のパラメータを設定できます。

エラーがある子の最大数: このステップがエラー状態と認識されるまでに許容される、エラー状態の子ステップの最大数が表示されます。失敗した子ステップの数がこの値を超えると、パラレル・ステップは失敗と認識されます。現在実行中の子ステップは、このパラレル・ステップの「再開タイプ」パラメータに応じて、続行または停止されます。

- 再開タイプが「失敗した子から再開」の場合、ロード計画はすべての子セッション(現在実行中のセッションと実行待機中のセッション)の実行と完了を待機した後で、親ステップに対するエラーを生成します。

- 再開タイプが「すべての子の再開」の場合、ロード計画は実行中のすべての子セッションを停止し、新しい子セッションを開始せずに親ステップに対するエラーを生成します。

再開動作の定義

「再開タイプ」オプションでは、ロード計画再開時のエラー・ステップの再開方法を定義します。「再開タイプ」パラメータは、プロパティ・インスペクタの「例外ハンドリング」セクションで定義できます。

ステップ・タイプに応じて、「再開タイプ」パラメータには、表12-5にリストした値を設定できます。

表12-5 再開タイプの値

ステップのタイプ

値と説明

シリアル

- すべての子の再開: ロード計画の再開時にこのステップがエラーの場合、一連のステップは最初のステップから再開されます。

- 失敗から再開: ロード計画の再開時にこのステップがエラーの場合、一連の子ステップは失敗したステップから開始されます。

パラレル

- すべての子の再開: ロード計画の再開時にこのステップがエラーの場合は、すべての子ステップがステータスに関係なく再開されます。これがデフォルト値になります。

- 失敗した子から再開: ロード計画の再開時にこのステップがエラーの場合は、失敗した子ステップのみが並列して再開されます。

シナリオ実行

- 新規セッションから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、シナリオが開始され、新規セッションが作成されます。これがデフォルト値になります。

- 失敗したステップから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、エラーのステップからセッションが再開されます。このステップ内のすべてのタスクが再開されます。

- 失敗したタスクから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、エラーのタスクからセッションが再開されます。

失敗したステップまたは失敗したタスクから再開されたセッションには、『Oracle Data Integratorの管理』のセッションの再開に関する項で説明されている制限と同じ制限が適用されます。

ロード計画の実行

ロード計画は、ODI Studioのデザイナ・ナビゲータまたはオペレータ・ナビゲータから実行できます。

注意:
ロード計画の「定義」タブの「同時実行コントローラ」オプションを使用して同時実行が制限されていないかぎり、ロード計画の複数のインスタンスの同時実行を禁止する制約は適用されません。ロード計画の2つ以上のインスタンスが同じデータソースおよびターゲットに対する読取り/書込み操作を同時に実行することも可能です。同時実行が行われないようにこの動作をプログラムによって禁止するには、「同時実行の制限」オプションを使用します。
詳細は、「新規ロード計画の作成」を参照してください。

デザイナ・ナビゲータまたはオペレータ・ナビゲータでロード計画を実行するには:

1. 「ロード計画とシナリオ」アコーディオンで、実行するロード計画を選択します。

2. 右クリックして「実行」を選択します。

3. 「ロード計画の開始」ダイアログで、実行パラメータを選択します。

- ロード計画が実行される「コンテキスト」を選択します。

- ロード計画を実行する「論理エージェント」を選択します。

- 変数表に、ロード計画に使用する変数の起動値を入力します。

4. 「OK」をクリックします。

5. 「ロード計画が開始しました」ダイアログが表示されます。

6. 「OK」をクリックします。

ロード計画実行が開始します。ロード計画インスタンスが最初のロード計画実行とともに作成されます。ロード計画実行はオペレータ・ナビゲータで確認できます。

詳細は、『Oracle Data Integratorの管理』の統合プロセスの監視に関する項を、またロード計画に対する他のランタイム操作の詳細は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

本番でのロード計画の使用

本番でのロード計画の使用には、次のタスクが含まれます:

- ロード計画のスケジュール、開始、監視、停止および再開。詳細は、「本番でのロード計画のスケジュールおよび実行」を参照してください。

- 環境間のロード計画の移動。「ロード計画のエクスポート、インポートおよびバージョニング」を参照してください。

本番でのロード計画のスケジュールおよび実行

ロード計画のスケジュールおよび実行の方法の詳細(ロード計画実行の実行、再開および停止を含む)は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

ロード計画のエクスポート、インポートおよびバージョニング

ロード計画をエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、ロード計画を別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。

ロード計画のエクスポート

1つのロード計画をエクスポートするか、または複数のロード計画を一度にエクスポートすることが可能です。

1つのロード計画のエクスポートについては、「1つのODIオブジェクトのエクスポート」で説明している標準の手順に従います。

複数のロード計画を一度にエクスポートする方法の詳細は、「複数のODIオブジェクトのエクスポート」を参照してください。

ロード計画をエクスポートするときに「子オブジェクトをエクスポート」を選択した場合は、そのすべての子ステップ、スケジュールおよび変数もエクスポートされることに注意してください。

注意:
ロード計画のエクスポートには、ロード計画が参照するシナリオは含まれません。ロード計画で使用されるシナリオは、個別にエクスポートする必要があります。シナリオのエクスポート方法については、「シナリオのエクスポート」を参照してください。

ロード計画のインポート

開発リポジトリへのロード計画のインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

ロード計画のインポートでは、標準のオブジェクト・インポート・メソッドが使用されます。詳細は、「オブジェクトのインポート」を参照してください。

注意:
ロード計画のエクスポートには、ロード計画が参照するシナリオは含まれません。ロード計画で使用されるシナリオは、個別にインポートする必要があります。

ロード計画のバージョン管理

ロード計画は、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、第17章「バージョン・コントロールの使用」を参照してください。

13 Webサービスの使用

この章では、Oracle Data IntegratorのWebサービスの使用方法について説明します。

この章には次の項が含まれます:

- Oracle Data IntegratorのWebサービスの概要

- Oracle Data Integratorランタイム・サービスおよびデータ・サービス

- サードパーティWebサービスの呼出し

Oracle Data IntegratorのWebサービスの概要

Oracle Data Integratorは、サービス指向アーキテクチャ(SOA)への次のエントリ・ポイントを提供します。

- データ・サービス

- Oracle Data Integratorランタイム・サービス

- サードパーティWebサービスの呼出し

図13-1に、様々なタイプのWebサービス間の相互作用の概要を示します。

図13-1 Webサービスの作用

図13-1に、データ・サービス、ランタイムWebサービス(公開WebサービスとエージェントWebサービス)およびOdiInvokeWebServiceツールを使用した単純な例を示します。

データ・サービスおよびランタイムWebサービスのコンポーネントはサードパーティ・アプリケーションによって呼び出されるのに対し、OdiInvokeWebServiceツールはサードパーティWebサービスを呼び出します。

- データ・サービスは、データストア(ソースおよびターゲットの両方のデータストア)に含まれるデータ、ならびにチェンジ・データ・キャプチャ・フレームワークによりトラップされた変更内容へのアクセスを可能にします。このWebサービスはOracle Data Integratorによって生成され、Java EEアプリケーション・サーバーにデプロイされます。

- エージェントWebサービスは、Oracle Data Integratorエージェントに対して、シナリオの開始とモニター、セッションの再開、ODIバージョンの取得、ロード計画の開始、停止または再開およびエージェント構成のリフレッシュを命令します。このWebサービスはJava EEエージェントまたはスタンドアロン・エージェントに組み込まれている点に注意してください。

- OdiInvokeWebServiceツールはパッケージで使用され、サードパーティWebサービスのポート上で、特定の操作(BPELプロセスのトリガーなど)を呼び出します。

Oracle Data Integratorランタイム・サービスおよびデータ・サービス

Oracle Data IntegratorのランタイムWebサービスとデータ・サービスは、2つの異なるタイプのWebサービスです。

- Oracle Data Integratorランタイム・サービス(エージェントWebサービス)は、サービス指向アーキテクチャ(SOA)でユーザーがOracle Data Integratorの機能を活用できるようにするWebサービスです。
Oracle Data IntegratorランタイムWebサービスを使用すると、WebサービスからOracle Data Integratorの機能にアクセスできます。これらのWebサービスはサードパーティ・アプリケーションによって開始され、Oracle Data Integratorで開発されたランタイム・アーティファクトの実行を管理します。

ODIランタイム・サービスを使用して様々なODI実行タスク(シナリオの実行やセッションの再開など)を実行する方法の詳細は、『Oracle Data Integratorの管理』のWebサービスを使用した実行の管理に関する項を参照してください。そのトピックでは、SOAPリクエストおよびレスポンスの例も示しています。

- データ・サービスは特殊なWebサービスで、データストアのデータにアクセスしたり、チェンジ・データ・キャプチャを使用して、それらのデータストアに対して取得された変更にアクセスできます。データ・サービスはOracle Data Integratorによって生成され、Webサービスからデータにアクセスできるようにします。これらのWebサービスは、アプリケーション・サーバーのWebサービス・コンテナにデプロイされます。
データ・サービスを設定、生成およびデプロイする方法の詳細は、『Oracle Data Integratorの管理』のデータ・サービスの生成およびデプロイに関する項を参照してください。

サードパーティWebサービスの呼出し

この項では、Oracle Data IntegratorにおけるサードパーティWebサービスの呼出し方法について説明します。

この項には次のトピックが含まれます:

- Webサービスの呼出しの概要

- HTTPアナライザの使用

- OdiInvokeWebServiceツールの使用

Webサービスの呼出しの概要

次のようにWebサービスを呼び出すことができます。

- HTTPアナライザ・ツールを使用して、Oracle Data Integratorのパッケージまたはプロシージャで呼び出します。このツールでは、サードパーティWebサービスを呼び出し、Oracle Data Integratorで処理可能なSOAPファイルにレスポンスを保存できます。
結果を使用して、ローカルまたはリモートにデプロイされているWebサービスをデバッグできます。

- テスト用データ・サービス。生成されたデータ・サービスが正しく実行されているかどうかをテストする最も簡単な方法は、HTTPアナライザ・ツールを使用することです。

- OdiInvokeWebServiceツールを使用して、Oracle Data Integratorのパッケージまたはプロシージャで呼び出します。このツールでは、サードパーティWebサービスを呼び出し、Oracle Data Integratorで処理可能なXMLファイルにレスポンスを保存できます。

これらの3つの方法は、後述の項で説明しています。

HTTPアナライザの使用

HTTPアナライザを使用すると、Webサービス・クライアントとサービスの間のリクエスト/レスポンス・トラフィックをモニターできます。HTTPアナライザは、HTTPトラフィックの送受信に関するWebサービスのデバッグに役立ちます。

HTTPアナライザを実行すると、情報を提供する多くのウィンドウが表示されます。

HTTPアナライザを使用すると、次の操作を実行できます。

- WebサービスのリクエストおよびレスポンスTCPパケットの詳細な内容を調べることができます。

- リクエスト・パケットの編集と再送信、およびレスポンス・パケットの内容の確認ができます。

- ポリシーを使用して保護されたWebサービスをテストできます。暗号化されたメッセージは復号化されます。

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

- HTTPアナライザの使用: 主な手順

- HTTPアナライザの実行時に行われる処理

- HTTPアナライザ設定の指定方法

- ログ・ウィンドウの使用方法

- テスト・ウィンドウの使用方法

- インスタンス・ウィンドウの使用方法

- 複数のインスタンスを使用する方法

- HTTPアナライザでの資格証明の使用

- HTTPアナライザでのSSLの使用

- HTTPアナライザを使用してWebページをデバッグする方法

- ルールを使用して動作を決定する方法

- ルールの設定方法

- リファレンス: HTTPアナライザのトラブルシューティング

HTTPアナライザの使用: 主な手順

Webサービスのクライアントによって送受信されるパケットを調べるには、次のようにします。

注意:
HTTPアナライザを使用する場合、プロキシ設定を更新する必要が生じることがあります。

1. Webサービスを作成し、これを実行します。

2. 「ツール」→「Httpアナライザ」を選択してHTTPアナライザを起動します。
OdiInvokeWebServiceツール・ステップの「一般」タブにある「HTTPアナライザ」ボタンから起動することもできます。

新規ウィンドウで開かれます。

3. HTTPアナライザ・ログ・ウィンドウにある「新規SOAPリクエストの作成」ボタンをクリックします。

4. WebサービスのURLを入力するか、WebサービスのWSDLを開いて開始します。

5. Webサービスのクライアント・プロキシを実行します。HTTPアナライザ・テスト・ウィンドウにリクエスト・パケットとレスポンス・パケットのペアが表示されます。
テスト・ウィンドウでは、メッセージのヘッダーとパラメータを調べることができます。サービスをテストするには、適切なパラメータを入力して「リクエストの送信」をクリックします。

6. リクエストおよびレスポンス・パケットのHTTPヘッダーの内容を調べ、HTTPアナライザのテスト・ウィンドウの下部にある該当のタブを選択して、(JAX-WS Webサービスの)SOAP構造、HTTPコンテンツ、16進コンテンツまたはRAWメッセージ・コンテンツを確認できます。

注意:
(RESTfulサービスの) WADL構造は、Oracle Data Integratorではサポートされていません。

7. 次のいずれかのタスクを実行して、ポリシーで保護されたWebサービスをテストできます。

- 「資格証明」リストから既存の資格証明を選択します。
Oracle Data Integratorには、事前構成済の資格証明セットとしてHTTPS Credentialが付属しています。

- 「新規作成」をクリックして、新しい資格証明を作成します。「資格証明」ダイアログで、HTTPアナライザ・テスト・ウィンドウで使用する資格証明を定義します。

HTTPアナライザの実行時に行われる処理

HTTPアナライザを起動してWebサービスをテストすると、Webサービスでは、HTTPアナライザの「プリファレンス」ダイアログのプロキシ設定を使用して、HTTPアナライザ経由でトラフィックを送信します。

デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

各アナライザ・インスタンスには、異なるホスト/URLへのリクエストのリダイレクト、Webサービスのエミュレートなどの動作を決定するルールのセットがあります。

HTTPアナライザ設定の指定方法

デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

HTTPアナライザのプリファレンスを設定するには、次のようにします。

1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

- 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「Httpアナライザの起動」ボタンをクリックします。

- 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

詳細は、[F1]を押すか、HTTPアナライザの「プリファレンス」ダイアログで「ヘルプ」をクリックしてください。

2. HTTPアナライザ・インスタンスに対して必要な変更を行います。たとえばホストとポート番号を変更する場合には、「プロキシの構成」をクリックして「プロキシ設定」ダイアログを開きます。

ログ・ウィンドウの使用方法

「ツール」メニューから「HTTPアナライザ」を開くと、図13-2のようにHTTPアナライザ・ログ・ウィンドウが表示されます。

図13-2 HTTPアナライザのログ画面

HTTPアナライザを実行すると、「Httpアナライザ」ログ・ウィンドウにリクエスト/レスポンスのメッセージが出力されます。メッセージは、グループ化と並替えが可能です。

- メッセージを並べ替えるには、「順序」タブを選択し、列ヘッダーを使用してソートします(ヘッダーのクリックでソート、ダブルクリックで2次ソート)。

- メッセージをグループ化するには、「相関」タブをクリックします。

- 列の順序を変えるには、列ヘッダーをクリックしたまま新しい位置までドラッグします。

表13-1 「Httpアナライザ」ログ・ウィンドウのツールバー・アイコン

アイコン

名前

機能

アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できるHTTPアナライザのプリファレンス・ダイアログを開く場合にクリックします。「ツール」→「プリファレンス」を選択し、「Httpアナライザ」ページを選択してHTTPアナライザに進むこともできます。詳細は次の項を参照してください。

新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウを開く場合にクリックします。

HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、JDeveloperを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

HTTPアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。

リクエストの送信

リクエストの内容を変更したときに、リクエストを再送信する場合にこのボタンをクリックします。変更されたリクエストが送信され、戻されたレスポンスで変更を確認できます。

WS-Iログ・ファイルを開く

既存のWS-Iログ・ファイルにナビゲートできる「アップロードするWS-Iログ・ファイルの選択」ダイアログを開く場合にクリックします。

パケット・データの保存

HTTPアナライザ・ログ・ウィンドウの内容をファイルに保存する場合にクリックします。

WS-I分析

このツールは、Oracle Data Integratorには適用されません。

すべて選択

HTTPアナライザのログ・ウィンドウですべてのエントリを選択する場合にクリックします。

すべて選択解除

HTTPアナライザですべてのエントリの選択を解除する場合にクリックします。

選択した履歴のクリア(削除)

HTTPアナライザでエントリをクリアする場合にクリックします。

テスト・ウィンドウの使用方法

HTTPアナライザ・ログ・ウィンドウで「新規SOAPリクエストの作成」ボタンをクリックすると、空のHTTPアナライザ・テスト・ウィンドウが開きます。

WebサービスのURLを入力するか、WebサービスのWSDLを開いて「リクエストの送信」をクリックします。図13-3に示すように、リクエストの結果がテスト・ウィンドウに表示されます。

図13-3 HTTPアナライザのテスト・ウィンドウ

リクエストおよびレスポンス・パケットのHTTPヘッダーの内容を調べ、HTTPアナライザ・テスト・ウィンドウの下部にある該当のタブを選択して、SOAP構造、HTTPコンテンツ、16進コンテンツまたはRAWメッセージ・コンテンツを確認できます。

テスト・ウィンドウでは、メッセージのヘッダーとパラメータを調べることができます。サービスをテストするには、適切なパラメータを入力して「リクエストの送信」をクリックします。

テスト・ウィンドウの下部にあるタブから、メッセージの内容の表示方法を選択できます。選択できるメッセージの表示方法は、次のとおりです。

- 図13-3に示されている「SOAP構造」。

- 次のようなHTTPコード。

<?xml version = '1.0' encoding = 'UTF-8'?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/wls">
<env:Header/>
<env:Body>
<ns1:sayHello>
<arg0/>
</ns1:sayHello>
</env:Body>

- 次のようなメッセージの16進コンテンツ。

[000..015] 3C 65 65 20 78 6D ...   <env:Envelope xm
[016..031] 6C 6E 70 3A 2F 2F ...   lns:env="http://
[032..047] 73 63 6F 61 70 2E ...   schemas.xmlsoap.
[048..063] 6F 72 65 6C 6F 70 ...   org/soap/envelop
[064..079] 65 2F 22 20 78 6D ...   e/" xmlns:ns1="h
[080..095] 74 74 70 3A 2F 2F ...   ttp://www.bea.co
[096..111] 6D 2F 77 6C 73 22 ...   m/wls"><env:Head
[112..127] 65 72 2F 3E 3C 65 ...   er/><env:Body><n
[128..143] 73 31 3A 73 61 79 ...   s1:sayHello><arg
[144..159] 30 3E 3C 2F 61 72 ...   0></arg0></ns1:s
[160..175] 61 79 48 65 6C 6C ...   ayHello></env:Bo
[176..191] 64 79 3E 3C 2F 65 ...   dy></env:Envelop
[192..193] 65 3E             ...   e>

- 次のようなRAWメッセージ。

POST http://localhost:7001/MySimpleEjb/MySimpleEjbService HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
Host: localhost:7001
Content-Length: 194
X-HTTPAnalyzer-Rules: 3@localhost:8099

<?xml version = '1.0' encoding = 'UTF-8'?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/wls">
<env:Header/>
<env:Body>
<ns1:sayHello>
<arg0/>
</ns1:sayHello>
</env:Body>
</env:Envelope>

インスタンス・ウィンドウの使用方法

「ツール」メニューから「HTTPアナライザ」を開くと、「HTTPアナライザ」タブがデフォルトで表示されます。

「HTTPアナライザ・インスタンス」タブをクリックします。図13-4に示すように、「HTTPアナライザ・インスタンス」ウィンドウが表示されます。

このウィンドウには、現在実行中または実行後に停止されたHTTPアナライザのインスタンスに関する情報が表示されます。インスタンスはホストとポートで識別され、ルールがあれば表示されます。このウィンドウからインスタンスの起動と停止が可能です。

図13-4 「HTTPアナライザ・インスタンス」ウィンドウ

新規インスタンスは、「新規SOAPリクエストの作成」ボタンをクリックしたときに開く「HTTPアナライザ」ダイアログで作成します。

表13-2 「HTTPアナライザ・インスタンス」ウィンドウのツールバー・アイコン

アイコン

名前

機能

アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できる「Httpアナライザ」ダイアログを開く場合にクリックします。

新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウの新しいインスタンスを開く場合にクリックします。

HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、ODIを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

HTTPアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。

複数のインスタンスを使用する方法

HTTPアナライザの複数インスタンスを実行できます。それぞれが異なるホストとポートの組合せを使用し、「HTTPアナライザ・インスタンス」ウィンドウでそのサマリーを確認できます。

HTTPアナライザのインスタンスを追加するには、次のようにします。

1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

- 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「アナライザ・プリファレンス」ボタンをクリックします。

- 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

詳細は、[F1]を押すか、HTTPアナライザのプリファレンス・ダイアログで「ヘルプ」をクリックしてください。

2. 新しいリスナーとなる新しいHTTPアナライザ・インスタンスを作成するには、「追加」をクリックします。新しいリスナーがリストされてデフォルトとして選択され、値を変更できます。

HTTPアナライザでの資格証明の使用

HTTPアナライザを使用すると、ポリシーで保護されたWebサービスをテストできます。HTTPアナライザのテスト・ウィンドウで使用する資格証明を選択します。

HTTPアナライザでは、この目的で次の資格証明がサポートされています。

- HTTPS。メッセージは、信頼できる認証局によって署名された公開鍵証明書を使用して、送信前に暗号化されます。受信時に復号化されます。

- ユーザー名トークン。このトークンは、Oracle Data Integratorには適用されません。
ユーザー名/パスワードに基づくトークンを使用してBasic認証情報を伝達する手段です。

- X509。このトークンは、Oracle Data Integratorには適用されません。
これはシングル・サインオン認証のためのPKI標準であり、アイデンティティの提示と、メッセージの署名および暗号化に証明書を使用します。

- STS。このトークンは、Oracle Data Integratorには適用されません。
セキュリティ・トークン・サービス(STS)は、セキュリティ・トークンを発行し管理するWebサービスです。

HTTPアナライザでのSSLの使用

保護されたサービスまたはアプリケーション、たとえばポリシーで保護されたWebサービスに対してHTTPアナライザを使用できます。Oracle Data Integratorには、この目的で資格証明HTTPS Credentialが含まれています。

構成した資格証明は、HTTPアナライザのテスト・ウィンドウで選択できるようになります。

HTTPSは、送信前にHTTPメッセージを暗号化し、受信時に復号化します。信頼できる認証局によって署名された公開鍵証明書を使用します。統合アプリケーション・サーバーを初めて起動すると、固有のDemoIdentityが生成され、その中にあるキーを使用してHTTPSチャネルが設定されます。

キー・ストアおよびキーストア・プロバイダの詳細は、『Oracle WebLogic Serverセキュリティの理解』を参照してください。デフォルトの資格証明であるHTTPS Credentialを選択する場合には、HTTPアナライザがHTTPSトラフィックを処理する際に使用するキーストアを指定する必要があります。

HTTPアナライザを実行するには、2つのキーストアが必要です。

- クライアントの信頼する証明書キーストア。外部接続時にアナライザ(クライアントの信頼)によって信頼されるすべてのホストの証明書が含まれています。サーバーの証明書は、このキーストア内に存在している必要があります。
クライアント・キーストアが必要なのは、相互認証が必要な場合のみです。

- サーバー・キーストア。アナライザがコール側クライアントに対する自身の認証に使用するキーが含まれています。

別のHTTPS値を使用するようにHTTPアナライザを構成するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「資格証明」ノードを選択します。詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

3. 使用する新しいキーストアと証明書の詳細を入力します。

HTTPアナライザを使用してWebページをデバッグする方法

HTML、JSPまたはJSFページなどのWebページをデバッグするときにもHTTPアナライザを使用できます。こうすると、ブラウザとの間で相互に送信されるトラフィックを直接調べることができます。

HTTPアナライザを使用してWebページをデバッグするには、次のようにします。

1. HTTPアナライザを通じてメッセージをルーティングするようにブラウザを構成し、Webブラウザとクライアントの間でトラフィックを確認できるようにします。

2. HTTPアナライザを起動します。

3. 通常の方法で分析するクラス、アプリケーションまたはWebページを実行します。
リクエストとレスポンスの各パケットが、HTTPアナライザのログ・ウィンドウにリストされ、HTTPアナライザのテスト・ウィンドウに詳細に表示されます。

ルールを使用して動作を決定する方法

HTTPアナライザがルールによって決定される動作を利用して実行するように、ルールを設定できます。1つのHTTPアナライザ・インスタンスで複数のルールを設定できます。サービスのURLがルールに一致した場合は、そのルールが適用されます。一致しない場合は、リストの次のルールがチェックされます。サービスがどのルールにも一致しない場合は、クライアントがエラーを返します。このような理由から、先行するルールによって捕捉されないメッセージが捕捉されるように、「パス・スルー・ルール」は常に、リストの最後のルールにブランク・フィルタ(単にリクエストを渡す)を設定して使用します。

次のタイプのルールがあります。

- パス・スルー・ルール

- 転送ルール

- URL置換ルール

- テープ・ルール

パス・スルー・ルールの使用

パス・スルーは、URLフィルタが一致する場合にリクエストを単純にサービスに渡します。「ルール設定」ダイアログを最初に開くと、2つのパス・スルー・ルールが定義されています。

- 1つ目はhttp://localhost:631というURLフィルタを使用し、印刷サービス・リクエストを無視します。

- 2つ目はURLがブランクのフィルタで、単純にリクエストを元のサービスに渡します。新規ルールを追加する場合には、通常このルールをリストの最後に移動する必要があります。

転送ルールの使用

転送ルールは、フィルタに一致したURLをすべて捕捉し、1つのURLにリクエストを転送します。

URL置換ルールの使用

URL置換ルールを使用すると、URL範囲の一部を置換してサービスを再ホストできます。たとえば、統合アプリケーション・サーバーとOracle WebLogic Serverの間で移動するときマシン名を置き換えることができます。

テープ・ルールの使用

テープ・ルールを使用すると、標準のWS-Iログ・ファイルをルールへの入力として、HTTPアナライザをシミュレータ・モードで実行できます。テープ・ルールを設定するときには、次のような強力なオプションを使用できます。

- ループ・テープ。テープを繰り返して実行できます。

- 一致するURLおよびメソッドにスキップ。一致するURLとHTTPリクエスト・メソッドが見つかった場合にのみ結果を返します。つまり、同じテープ・ルールでWSDLとエンドポイント・リクエストを使用できるということです。

- 「ヘッダー日付の修正」および「コンテンツ・サイズの修正」。リクエストが失敗しないように、メッセージのヘッダー日付とコンテンツ・サイズを現在の値に変更できます。

テープ・ルールを使用する例としては、外部Webサービスに対して実行されるように開発されたWebサービス・クライアントのテストなどがあります。

外部Webサービスに対して実行されるように開発されたWebサービス・クライアントをテストするには、次のようにします。

1. 外部Webサービスへのクライアントを作成します。

2. HTTPアナライザを実行してWebサービスに対してクライアントを実行し、結果をWS-Iログ・ファイルとして保存します。
WS-Iファイルを編集し、クライアントに返された値を変更します。

3. 「プリファレンス」ダイアログの「Httpアナライザ」ページで、テープ・ルールを作成します。
ルールのリストで、ブランクの「パス・スルー・ルール」の上になっていることを確認してください。

4. 「ルール設定」ダイアログで、WS-Iファイルのパスを「ルール設定」ダイアログの「テープ・パス」として使用します。
クライアントを再実行すると、外部Webサービスに対してではなく、WS-Iファイルのエントリに対して実行されます。

次の操作が可能なその他のオプションもあります。

- クライアントに返されるメッセージが正しくなるように、WS-Iログ・ファイルでエントリの時刻とサイズを修正します。

- 複数回実行されるように、テープをループさせます。

- 同じテープ・ルールでWSDLとエンドポイント・リクエストを使用できるように、一致するURLとHTTPリクエスト・メソッドをスキップします。

注意:
テープ・ルールは、失効日が設定された資格証明またはヘッダーを使用するSOAPメッセージに対しては動作しません。

ルールの設定方法

HTTPアナライザがルールによって決定される動作を利用して実行するように、ルールを設定できます。各アナライザ・インスタンスには、異なるホスト/URLへのリクエストのリダイレクト、Webサービスのエミュレートなどの動作を決定するルールのセットがあります。

HTTPアナライザのインスタンスにルールを設定するには、次のようにします。

1. 「ツール」→「Httpアナライザ」を選択して、HTTPアナライザを開きます。HTTPアナライザのドッキングしたウィンドウが開きます。
あるいは、「アプリケーション」ウィンドウでWebサービス・コンテナのコンテキスト・メニューから「Webサービスのテスト」を選択すると、HTTPアナライザが自動的に開きます。

2. 「アナライザ・プリファレンス」ボタンをクリックしてHTTPアナライザのプリファレンス・ダイアログを開き、新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できます。
または、「ツール」→「プリファレンス」を選択し、「Httpアナライザ」ページに移動します。

3. 「ルールの設定」をクリックして「ルール設定」ダイアログを開き、HTTPアナライザで実行されるアクションを決定するルールを定義します。詳細は、[F1]を押すか、「ルール設定」ダイアログで「ヘルプ」をクリックしてください。

4. 「ルール設定」ダイアログで、「参照URL」としてテストする対象の参照サービスのURLを入力します。こうすると、ルールを適用するかどうかと適用方法を確認できるため、ルールの作成を開始しやすくなります。

5. クライアントを実行する対象のサービスに、1つ以上のルールを定義します。新しいルールを追加するには、「追加」の隣にある下矢印をクリックし、リストからルールのタイプを選択します。ダイアログのフィールドは、現在選択されているルールのタイプによって異なります。

6. ルールは上から下の順序で適用されます。並べ替えるには、上下の並替えボタンを使用します。ブランクの「パス・スルー・ルール」が最後のルールになるようにしてください。

リファレンス: HTTPアナライザのトラブルシューティング

この項では、HTTPアナライザの実行中に発生する可能性がある問題の解決方法について説明します。

他のアプリケーションの実行中にHTTPアナライザを実行

レスポンスを待っているアプリケーションがある場合は、HTTPアナライザを起動または停止しないでください。HTTPアナライザを起動または停止する前に、アプリケーションを終了してください。

HTTPアナライザは、1つ以上の異なる組合せのプロキシ設定を使用できます。これらの設定はIDEにのみ固有です。有効にした場合、Oracle Data Integratorはこれらの設定を使用して、組織のプロキシ・サーバー経由でインターネットにアクセスします。プロキシ・サーバー設定を有効にしないと、Webアプリケーションはインターネットにアクセスできない可能性があります。プロキシ・サーバー設定は、マシンのデフォルト・ブラウザのプリファレンス設定に表示されます。

HTTPアナライザを実行すると、1つ以上の異なる組合せのプロキシ設定を使用できます。HTTPアナライザの実行中は、これらのプロキシ設定がHTTPプロキシ・サーバーの設定をオーバーライドします。

プロキシ設定の変更

HTTPアナライザを使用するとき、Oracle Data Integratorのプロキシ設定の変更が必要になる場合があります。例:

- 外部サービスをテストしており、マシンがファイアウォールの内部にある場合には、Oracle Data IntegratorがHTTPプロキシ・サーバーを使用していることを確認してください。

- 「アプリケーション」ウィンドウで、Webサービスのコンテキスト・メニューから「Webサービスのテスト」を選択する場合など、統合アプリケーション・サーバーでサービスをテストする場合は、Oracle Data IntegratorでHTTPプロキシ・サーバーが使用されていないことを確認してください。

HTTPアナライザの実行中に、次のメッセージが表示されることがあります。

500 Server Error
The following error occurred: [code=CANT_CONNECT_LOOPBACK] Cannot connect due to potential loopback problems

プロキシの除外リストに、localhost|127.0.0.1を追加する必要がある可能性があります。

HTTPプロキシ・サーバーを設定し、例外リストを編集するには、次のようにします。

1. 「ツール」→「設定」を選択し、「Webブラウザとプロキシを選択します。

2. 必要に応じて、「HTTPプロキシ・サーバーを使用」が選択または選択解除されていることを確認します。

3. 「例外」リストに適切な値を追加します。セパレータには「|」を使用してください。
Javaがプロキシとしてlocalhostを使用するためには、それが唯一のエントリである場合も含めて、「例外」リストに~localhostが存在する必要があります。

OdiInvokeWebServiceツールの使用

OdiInvokeWebServiceツールでは、HTTPまたはHTTPSプロトコルを使用してWebサービスを呼び出し、返されたレスポンスをXMLファイルに書き込むことができます。レスポンスは、XMLペイロード、またはSOAPのヘッダーと本文が含まれている完全なSOAPメッセージで書き込まれます。

OdiInvokeWebServiceツールのパラメータは、HTTPアナライザを使用して構成できます。これを行うには、パッケージ・エディタでOdiInvokeWebServiceステップの「一般」タブにある「HTTPアナライザ」ボタンをクリックします。これにより、コマンド・パラメータを構成するために使用できるOdiInvokeWebServiceAdvanceエディタが開きます。

OdiInvokeWebServiceツールのパラメータの詳細は、Oracle Data Integratorツール・リファレンスのOdiInvokeWebServiceに関する項を参照してください。

OdiInvokeWebServiceツールでは、Webサービス記述言語(WSDL)のURLが提供されるポート上で特定の操作を呼び出します。この操作にSOAPリクエストが必要な場合は、リクエスト・ファイルまたはツール・コマンドで提供されます。Webサービス・リクエストのレスポンスは、Oracle Data Integratorで使用可能なXMLファイルに書き込まれます。

注意:
XMLペイロードの形式を使用すると、OdiInvokeWebServiceツールでは、リクエストのSOAPヘッダーがサポートされません。たとえば、保護されたWebサービスの呼出しなど、SOAPヘッダーを処理するためには、完全なSOAPメッセージを使用して、SOAPヘッダーを手動で変更します。

このツールは、パッケージのツール・ステップで、およびプロシージャやナレッジ・モジュールで、標準のOracle Data Integratorツールとして使用されます。パッケージのツール・ステップを作成する方法の詳細は、「Oracle Data Integratorツール・ステップの追加」を参照してください。

XMLテクノロジの標準Oracle Data Integratorインタフェース・ソースを使用して、レスポンスの情報を処理できます。XMLファイル処理の詳細は、Oracle Data Integrator接続性およびモジュール・ガイドを参照してください。

注意:
Oracle Data Integratorにおいて各XMLファイルはモデルとして定義されます。リクエストまたはレスポンス・ファイルにXMLファイル処理を使用する際に、リクエストまたはレスポンス・ファイルごとにモデルが作成されます。モデルを配置するにはモデル・フォルダを使用することをお薦めします。詳細は、「フォルダを使用したモデルの編成」を参照してください。

Oracle Data Integratorでは、Webサービス・レスポンスを処理するためのOdiXMLConcatおよびOdiXMLSplitツールが用意されています。これらのツールの使用方法の詳細は、Oracle Data Integratorツール・リファレンスのXMLに関する項を参照してください。

リクエストに対するバインディング・メカニズムの使用

プロシージャでWebサービス・コールを使用する場合、バインディング・メカニズムを使用できます。この方法では、問合せによって返された行ごとにWebサービスをコールし、行の値に基づいてリクエストをパラメータ化できます。詳細は、「ソース・データとターゲット・データのバインド」を参照してください。

14 ショートカットの使用

この章では、ショートカットの概要およびOracle Data Integratorでのショートカットの使用方法について説明します。

この章には次の項が含まれます:

- ショートカットの概要

- ショートカット・エディタの概要

- ショートカットの作成

- プロジェクトでのショートカットの使用

ショートカットの概要

Oracle Data Integratorは、様々なバージョンのソース・アプリケーションから大規模データ・ウェアハウスへのデータ移入に使用されることがよくあります。同じ表と列、同じ制約、同じ変換など、同じソース・アプリケーションの異なる2つのバージョン間によくある大きな共通性を示すために、Oracle Data Integratorにはショートカットが導入されました。ショートカットは共通のオブジェクトに対して個別の場所で作成されます。これらのショートカットは、デプロイ時(たとえば、設計リポジトリからランタイム・リポジトリへのエクスポート時)に、ソース・アプリケーションの指定バージョンに対する最終オブジェクトとしてマテリアライズされます。

ショートカットの概念

ショートカットは、Oracle Data Integratorオブジェクトへのリンクです。データストア、マッピング、再使用可能マッピング、パッケージおよびプロシージャのショートカットを作成できます。

参照先オブジェクトは、ショートカットによって直接参照されるオブジェクトです。ショートカットの参照先オブジェクトがショートカットである場合もあります。

ベース・オブジェクトは元のベース・オブジェクトです。ショートカットに関連付けられる実際のオブジェクトです。ベース・オブジェクトへの変更は、このオブジェクトに対して作成されたすべてのショートカットに反映されます。

ショートカットをマテリアライズすると、設計リポジトリで、最終的なベース・オブジェクトと同じプロパティを持つ実際のオブジェクトに変換されます。マテリアライズされたショートカットでは、その名前、関係およびオブジェクトIDが保持されます。

特定のタグに基づいてショートカットのマテリアライズを管理するために、リリース・タグが導入されました。リリース・タグは、フォルダおよびモデルに追加できます。

詳細は、「プロジェクトでのショートカットの使用」を参照してください。

ショートカット・オブジェクト

ショートカットは、データストア、マッピング、パッケージおよびプロシージャのODIオブジェクトに対して作成できます。

アイコンに表示される矢印によって、ショートカットを元のオブジェクトと区別できます。たとえば、アイコンはプロシージャのショートカットです。

ショートカット参照オブジェクトは、デザイナ・ナビゲータのベース・オブジェクトと同じノードを表示します。

ショートカット作成のためのガイドライン

ショートカットは、通常、参照先オブジェクトと同様に使用されます。ただし、ショートカットを作成する場合は、次のルールが適用されます:

- データストア: 異なるモデル/サブモデルにわたってデータストアのオブジェクト・ショートカットを作成できますが、ソース・モデルと宛先モデルは同じテクノロジで定義する必要があります。また、モデルにデータストアや、表名が同じ別のデータストアへのショートカットを含めることはできません。1つのモデル内の2つのショートカットに、同じベース・オブジェクトを含めることはできません。
データストアのショートカットは、マッピングのソースまたはターゲットとして、あるいはパッケージ内のデータストアとして使用できます。データストアのショートカットが含まれているマッピングやパッケージは、ベース・データストアに加え、データストアのショートカットやモデルを参照します。

- パッケージ、マッピング、再使用可能マッピングおよびプロシージャ: 特定のODIフォルダに属しているパッケージ、マッピングおよびプロシージャのオブジェクト・ショートカットを作成できます。
プロジェクト内のマッピング、プロシージャおよびパッケージのショートカットは、同じオブジェクトに属しているオブジェクト(マッピング、プロシージャおよびパッケージ)のみを参照できます。

- パッケージのショートカットは、ロード計画ステップで使用できます

- マッピング・ショートカットは、マッピング、再使用可能マッピング、パッケージまたはロード計画ステップ内で使用できます。

- プロシージャのショートカットは、パッケージまたはロード計画ステップで使用できます

ショートカットをロード計画ステップに追加すると、Oracle Data Integratorでシナリオが生成され、シナリオ実行ステップとして追加されます。

ショートカット・エディタの概要

ショートカット・エディタには、Oracle Data Integratorでショートカットを編集および管理するための単一の環境が用意されています。図14-1に、ショートカット・エディタの概要を示します。

図14-1 パッケージ・ショートカットのショートカット・エディタ

ショートカット・エディタには、次のタブがあります:

- 定義
ショートカットの名前、参照先オブジェクトおよびベース・オブジェクトが含まれています

- 実行(パッケージ、マッピング(再使用可能マッピング以外)およびプロシージャのショートカットの場合のみ)
「直接実行」と「シナリオ実行」タブで構成され、以前の実行結果が表示されます

- シナリオ(パッケージ、マッピング(再使用可能マッピング以外)およびプロシージャのショートカットの場合のみ)
このコンポーネント用に生成されたシナリオが表形式で表示されます

- バージョン
ショートカットのバージョンを管理するために必要な詳細が含まれています

ショートカット・エディタには、参照を処理するための2つのボタンがあります:

- 参照先オブジェクトの表示: 参照先オブジェクトのエディタを表示する場合にクリックします

- ベース・オブジェクトの表示: ベース・オブジェクトのエディタを表示する場合にクリックします

ショートカットの作成

ショートカットは、ベース・オブジェクトと同じ名前にできます。ショートカット名は変更できますが、オブジェクトを使用およびマテリアライズする際に、ショートカット参照オブジェクト名をベース名のかわりに使用する必要があることに注意してください。

ショートカットは、一度に1つ以上のオブジェクトに対して作成することも、複数の場所で同じオブジェクトに対して作成することもできます。

また、1つのフォルダ内の2つのショートカット・オブジェクトが同じベース・オブジェクトを参照できないことに注意し、「ショートカット作成のためのガイドライン」に従ってください。

ショートカットを作成するには:

1. デザイナ・ナビゲータで、ショートカットを作成するオブジェクトを選択します。
同じタイプのオブジェクトを複数選択できます。

2. オブジェクトを右クリックして「コピー」を選択します。

3. ショートカットを挿入する場所に移動します。挿入する場所は、別のフォルダまたはモデルの親である必要があります。

4. フォルダまたはモデルを右クリックし、「ショートカットとして貼付け」を選択します。
「ショートカットとして貼付け」メニュー項目は、次の場合にのみ使用可能になります:

- 前の操作が「コピー」操作でした。

- コピーされたオブジェクトが、ショートカットを作成できるオブジェクトです。詳細は、「ショートカット・オブジェクト」を参照してください。

- 新しい場所はコピーされたオブジェクトに対して有効です。適切な場所は次のとおりです:

- データストアのショートカットの場合: ソース・モデルとは異なるモデルまたはサブモデルのノード

- マッピング、パッケージおよびプロシージャのショートカットの場合: ソース・フォルダと同じプロジェクトにあるソース・フォルダ以外のフォルダ・ノード

5. デザイナ・ナビゲータに新しいショートカットが表示されます。

ヒント:
ショートカットは一度に複数作成できます。詳細は、「ショートカットによる選択の複製」を参照してください。

プロジェクトでのショートカットの使用

この項では、Oracle Data Integratorプロジェクトでショートカットを使用するときに実行できるアクションについて説明します。次の処理を実行できます。

- ショートカットによる選択の複製

- 参照ショートカットへのジャンプ

- ベース・オブジェクトへのジャンプ

- ショートカットの実行

- ショートカットのマテリアライズ

- ショートカットのエクスポートおよびインポート

- リリース・タグの使用

- 拡張アクション

ショートカットによる選択の複製

指定のモデルまたはフォルダ内のオブジェクトに対して、一度に複数のショートカットを作成できます。

- モデル・ノードに対して迅速に大量のショートカットを作成すると、新しいモデルは、データストアがすべてショートカットとして作成されたソース・モデルのコピーになります。

- フォルダ・ノードに対して迅速に大量のショートカットを作成すると、新しいフォルダは、マッピング、パッケージおよびプロシージャがすべてショートカットとして作成されたソース・フォルダのコピーになります。

迅速に大量のショートカットを作成するには:

1. デザイナ・ナビゲータで、フォルダまたはモデルのノードを選択します。

2. 右クリックして「ショートカットによる選択の重複」を選択します。

参照ショートカットへのジャンプ

デザイナ・ナビゲータでの現在の選択を参照先オブジェクトに移動する場合は、このアクションを使用します。

参照先オブジェクトにジャンプするには:

1. デザイナ・ナビゲータで、参照先オブジェクトを検索するショートカットを選択します。

2. 右クリックして「ショートカット」→「ショートカットを辿る」の順に選択します。

デザイナ・ナビゲータで参照先オブジェクトが選択されます。

ベース・オブジェクトへのジャンプ

デザイナ・ナビゲータでの現在の選択をベース・オブジェクトに移動する場合は、このアクションを使用します。

ベース・オブジェクトにジャンプするには:

1. デザイナ・ナビゲータで、ベース・オブジェクトを検索するショートカットを選択します。

2. 右クリックして「ショートカット」→「ベースにジャンプ」の順に選択します。

デザイナ・ナビゲータでベース・オブジェクトが選択されます。

ショートカットの実行

ショートカットを実行すると、ショートカットが参照している基礎となるプロシージャが実行されます。ショートカットはOracle Data Integratorの他のオブジェクトと同様に実行されます。『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。

ショートカットのマテリアライズ

ショートカットをマテリアライズすると、設計リポジトリで、最終的なベース・オブジェクトと同じプロパティを持つ実際のオブジェクトに変換されます。マテリアライズされたショートカットでは、その名前、関係およびオブジェクトIDが保持されます。ショートカットへの直接参照はすべて新規のオブジェクトを指し示すように自動的に更新されます。これはリリース・タグにも適用されます。マテリアライズされたショートカットにリリース・タグが含まれている場合は、リリース・タグ・フォルダまたはモデル内のベース・オブジェクトに対するすべての参照が、新しいオブジェクトに変更されることになります。

注意:
マッピング・ショートカットをマテリアライズする際に、マッピングに複数の論理スキーマ環境がある場合、たとえばマッピングにソース・データストアと同じ論理スキーマのステージング領域がある場合、マテリアライズされたマッピングにフローの変更などのエラーが含まれることがあります。マテリアライズされたマッピングにエラーがないか確認してください。

ショートカットのエクスポートおよびインポート

ショートカットは、マテリアライズされたオブジェクトとして、またはショートカットとしてエクスポートおよびインポートできます。

標準および複数エクスポートでは、マテリアライズはサポートされていません。標準または複数エクスポートを使用している場合、ショートカットはショートカット・オブジェクトとしてエクスポートされます。インポートでは、ショートカットはショートカットとしてインポートされます。

スマート・エクスポートを実行する際、そのエクスポートにショートカットが含まれている場合は、ショートカットをマテリアライズするように選択できます:

- ショートカットをマテリアライズしないことを選択すると、ショートカットとベース・オブジェクトの両方がエクスポートされます。

- ショートカットをマテリアライズするように選択すると、ショートカットがショートカットと同じオブジェクトIDを持つ実際のオブジェクトに変換されてエクスポート・ファイルに格納されます。このエクスポート・ファイルは、別のリポジトリにインポートすることも、元のリポジトリに戻すこともできます。

- このエクスポート・ファイルを別のリポジトリにインポートすると、元のショートカット・オブジェクトは実際のオブジェクトになります。

- このエクスポート・ファイルを元のリポジトリにインポートすると、マテリアライズされたオブジェクトのIDがショートカットのIDと照合されることになります。この照合プロセスを管理するには、スマート・インポート機能を使用します。スマート・インポート機能は、マテリアライズされたオブジェクトでショートカットを置換できます。

詳細は、「スマート・エクスポートおよびスマート・インポート」を参照してください。

リリース・タグの使用

リリース・タグを使用すると、特定のタグに基づいてショートカットのマテリアライズを管理できます。また、リリース・タグを使用して各自のメタデータを整理することも可能です。リリース・タグは、テキスト文字列の形式でフォルダおよびモデル・フォルダに追加できます。

リリース・タグについて、次のことに注意してください:

- 2つのモデルのリリース・タグと論理スキーマが同じでない可能性があります。リリース・タグは、モデルおよびフォルダに設定されます。

- リリース・タグは、マテリアライズおよびエクスポートでのみ使用されます。

- フォルダのリリース・タグは、フォルダのパッケージ、マッピングおよびプロシージャの内容にのみ適用されます。リリース・タグは、サブフォルダには継承されません。

新規のリリース・タグを追加したり既存のリリース・タグを割り当てるには:

1. 「デザイナ・ナビゲータ」ツールバーのメニューから、「リリース・タグの編集...」を選択します。
リリース・タグ・ウィザードが開きます。

2. 「リリース・タグ名」フィールドで、次のいずれかの操作を実行します:

- 新しいリリース・タグ名を入力する

- リストからリリース・タグ名を選択する

このリリース・タグ名は、指定のフォルダに追加されます。

3. 使用可能なフォルダが、左側の使用可能リストに表示されます。リリース・タグを追加するフォルダを使用可能リストから選択し、矢印を使用して選択済リストに移動します。

4. リリース・タグをモデルに追加する場合は、「次」をクリックします。
リリース・タグをモデルに追加しない場合は、「終了」をクリックします。

5. 使用可能なモデルおよびモデル・フォルダが、左側の使用可能リストに表示されます。リリース・タグを追加するモデルまたはモデル・フォルダ(あるいはその両方)を使用可能リストから選択し、矢印を使用して選択済リストに移動します。

6. 「終了」をクリックします。

選択したプロジェクト・フォルダおよびモデルにリリース・タグが追加されます。

ヒント:
指定のリリースのすべてのオブジェクトをスマート・エクスポートに追加するように選択することで、スマート・エクスポートの実行時にリリース・タグを使用できます。詳細は、「スマート・エクスポートの実行」を参照してください。

拡張アクション

この項では、ショートカットで実行できる拡張アクションについて説明します。次のような拡張アクションがあります:

- データストアのショートカットに対するデータ/データの表示アクション

- モデル、サブモデルまたはデータストアのショートカットに対する静的チェックの実行

- データストア・ショートカットのエラー・レコードの確認

- ショートカットのシナリオの生成

- ショートカットを含むモデルのリバースエンジニアリング

データストアのショートカットに対するデータ/データの表示アクション

データストアのショートカットに対してデータ・アクションまたはデータの表示アクションを実行し、ショートカットが参照している基礎となるデータストアのデータを表示または編集できます。

ショートカットが参照しているデータストアのデータを表示または編集するには、「データストアのデータの編集および表示」で説明している標準の手順に従ってください。

モデル、サブモデルまたはデータストアのショートカットに対する静的チェックの実行

モデル、サブモデルまたはデータストアのショートカットに対して静的チェックを実行できます。この拡張アクションにより、このショートカットが参照している基礎となるオブジェクトに対して静的チェックが実行されます。

モデル、サブモデルまたはデータストアのショートカットに対して静的チェックを実行するには、「モデル、サブモデルまたはデータストアに対する静的チェックの実行」で説明している標準の手順に従ってください。

データストア・ショートカットのエラー・レコードの確認

データストアのショートカットが参照しているデータストアのエラー・レコードを確認できます。

データストアのショートカットのエラー・レコードを確認するには、「エラーのあるレコードの確認」で説明している標準の手順に従ってください。

ショートカットのシナリオの生成

マッピング(再使用可能マッピング以外)、パッケージおよびプロシージャのショートカットからシナリオを生成できます。この拡張アクションにより、ショートカットが参照している基礎となるオブジェクトのシナリオが生成されます。生成されたシナリオは、デザイナ・ナビゲータの参照先オブジェクトの下ではなく、ショートカットの下に表示されることに注意してください。

ショートカットのシナリオを生成するには、「シナリオの生成」で説明している標準の手順に従ってください。

ショートカットを含むモデルのリバースエンジニアリング

ショートカットを含むモデルは、RKM Oracleを使用してリバースエンジニアリングできます。このナレッジ・モジュールには、データベースから取得する実際の表と同じ表名のショートカットを管理するSHORTCUT_HANDLING_MODEオプションがあります。このオプションには、3つのいずれかの値を使用できます:

- ALWAYS_MATERIALIZE: 競合するショートカットが常にマテリアライズされ、データストアがリバースされます(デフォルト)。

- ALWAYS_SKIP: 競合するショートカットが常にスキップされ、リバースされません。

- PROMPT: 「検出されたショートカット競合」ダイアログが表示されます。競合するショートカットの処理方法を定義できます:

- 競合するデータストアのショートカットをマテリアライズし、リバースエンジニアリングする場合は、「マテリアライズ」を選択します。

- 競合するショートカットをスキップする場合は、「マテリアライズ」の選択を解除します。選択を解除したデータストアはリバースされず、ショートカットがそのまま残ります。

注意:
データストア・ショートカットを含むモデルをリバースエンジニアリングする際、ショートカットをマテリアライズする場合、リバースエンジニアリング・プロセスでは、データストア・ショートカットとは別の属性を持つデータベース・オブジェクトを増分処理します。たとえば、データストア・ショートカットにデータベース・オブジェクトに存在しない属性がある場合、その属性は他の場所で使用されるという仮定のもとに、リバースおよびマテリアライズされたデータストアから削除されません。
他のRKMまたは標準リバース・エンジニアリングを使用してショートカット・モデルをリバース・エンジニアリングする場合、競合するショートカットがマテリアライズされ、データストアがリバースされます。

リバースエンジニアリングの詳細は、第3章「データ・モデルおよびデータストアの作成および使用」を参照してください。

15 Groovyスクリプトの使用

この章では、Groovy言語の概要を示し、Oracle Data IntegratorでGroovyスクリプトを使用する方法について説明します。

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

- Groovyの概要

- Groovyエディタの概要

- Groovyエディタの使用

- 開発タスクの自動化 - 例

Groovyの概要

Groovyは、Javaプラットフォーム用のスクリプト言語で、Javaと同様の構文を持ちます。Groovyスクリプト言語では、ドット区切り表記法の採用により、コードの作成が簡素化されていますが、コレクション、文字列およびJavaBeansを操作する構文は引き続きサポートされています。

Groovy言語の詳細は、次のWebサイトを参照してください:

http://groovy.codehaus.org/

Groovyエディタの概要

Groovyエディタは、ODI Studioのコンテキスト内でGroovyスクリプトを作成、編集および実行するための単一の環境を提供します。図15-1に、Groovyエディタの概要を示します。

図15-1 Groovyエディタ

Groovyエディタには、構文の強調表示やデバッグを除く共通のコード・エディタ・コマンドなど、コード・エディタのすべての標準的な機能が用意されています。次のコマンドがサポートされており、コンテキスト・メニューまたは「ソース」メイン・メニューからアクセスできます。

- 空白の表示

- テキスト編集

- 行の結合

- 現在の行を削除

- 後続空白のトリミング

- 先頭のタブをスペースに変換

- 先頭のスペースをタブに変換

- ブロックのインデント

- ブロックのインデント解除

- 上へ移動

- 下へ移動

Groovyエディタの使用

Groovyエディタでは、次のアクションを実行できます:

- Groovyスクリプトの作成

- 既存のGroovyスクリプトを開いて編集

- Groovyスクリプトの保存

- Groovyスクリプトの実行

- Groovyスクリプトの実行の停止

- 拡張アクションの実行

Groovyスクリプトの作成

ODI StudioでGroovyスクリプトを作成するには:

1. 「ツール」メイン・メニューから、「Groovy」→「新規スクリプト」を選択します。
Groovyエディタが開きます。

2. Groovyコードを入力します。

これで、スクリプトを保存または実行できます。

既存のGroovyスクリプトを開いて編集

以前に作成されたGroovyスクリプトを編集するには:

1. 「ツール」メイン・メニューから、「Groovy」→「スクリプトを開く」または「最近のスクリプト」を選択します。

2. Groovyファイルを選択して、「開く」をクリックします。
選択したファイルがGroovyエディタで開きます。

3. Groovyスクリプトを編集します。

これで、スクリプトを保存または実行できます。

Groovyスクリプトの保存

Groovyエディタで現在開いているGroovyスクリプトを保存するには:

「ツール」メイン・メニューから、「Groovy」→「スクリプトの保存」または「スクリプトの別名保存」を選択します。

注意:
メイン・ツールバーの「保存」オプションは、Groovyエディタに関連付けられていません。

Groovyスクリプトの実行

1つ以上のGroovyスクリプトを同時に実行することも、1つのスクリプトを並列で複数回実行することもできます。

実行できるのは、Groovyエディタで開かれているスクリプトのみです。ODI Studioでは、スクリプトの一部ではなく、Groovyスクリプト全体が実行されます。

ODI StudioでGroovyスクリプトを実行するには:

1. Groovyエディタで実行するスクリプトを選択します。

2. ツールバーの「実行」をクリックします。

3. スクリプトが実行されます。

これで、「ログ」ウィンドウで実行を確認できます。

注意:

- スクリプトを実行するたびに、独自の「ログ」ウィンドウが開かれます。「ログ」ウィンドウの名前は、<script_name>の実行中という形式になります。

- Groovyでは、出力が2つの異なるストリームに書き込まれます。クラスの場合、グローバル出力ストリームであるSystem.outに書き込まれます。(クラスでない)スクリプトの場合は、実行のたびに1つのストリームが作成されます。ODIはこれを取得できます。したがって、スクリプトに書き込まれた出力のみが「ログ」ウィンドウに表示されます。
Groovyスクリプトの最初にSystem.setOut(out)を追加すると、外部クラスにより出力されたメッセージをメッセージ・ログにリダイレクトできます。

Groovyスクリプトの実行の停止

停止できるのは実行中のスクリプトのみです。実行中のスクリプトがない場合は、「停止」ボタンが非アクティブ化されます。

Groovyスクリプトの実行は、2つの方法で停止できます:

- 「ログ」タブで「停止」をクリックします。これにより、特定のスクリプトの実行が停止します。

- ツールバーで「停止」をクリックします。複数のスクリプトが実行中の場合は、実行を停止するスクリプトをドロップ・ダウン・リストから選択します。

拡張アクションの実行

この項では、Groovyエディタで実行できる拡張アクションを説明します。

カスタム・ライブラリの使用

たとえば外部ドライバが必要な場合、Groovyエディタは外部ライブラリにアクセスできます。

外部ライブラリを使用するには、次のいずれかを行います:

- カスタム・ライブラリをuserlibフォルダにコピーします。このフォルダは次の場所にあります:

- Windowsオペレーティング・システム:
%APPDATA%/odi/oracledi/userlib

- UNIXオペレーティング・システム:
~/.odi/oracledi/userlib

- カスタム・ライブラリをadditional_path.txtファイルに追加します。このファイルはuserlibフォルダにあり、内容は次のとおりです:

; Additional paths file
; You can add here paths to additional libraries
; Examples:
;       C:\ java\libs\myjar.jar
;       C:\ java\libs\myzip.zip
;       C:\java\libs\*.jar will add all jars contained in the C:\java\libs\ directory
;       C:\java\libs\**\*.jar will add all jars contained in the C:\java\libs\ directory and subdirectories

追加のGroovy実行クラスパスの定義

ODI Studioで使用可能なすべてのクラスパスのエントリに加えて、Groovy実行クラスパスを定義できます。

追加のGroovy実行クラスパスを定義するには:

1. Groovyスクリプトを実行する前に、「ツール」メイン・メニューから「プリファレンス...」を選択します。

2. 「プリファレンス」ダイアログで、Groovyプリファレンス・ページに移動します。

3. クラスパスを入力し、「OK」をクリックします。

注意:
クラスパスを追加または変更した後、ODI Studioを再起動する必要はありません。

odiInputStream変数による入力の読込み

Oracle Data Integratorには、入力ストリームを読み込むためのodiInputStream変数が用意されています。この変数は次のように使用されます:

odiInputStream.withReader { println (it.readLine())}

この機能が使用されると、「ログ」タブの下部に「入力」テキスト・フィールドが表示されます。文字列テキストを入力し、[Enter]を押して、この値をスクリプトに渡します。値がスクリプトに渡されると、スクリプトは終了します。

例15-1は、入力ストリームの使用方法についての別の例を示しています。この例では、<script_name>の停止をクリックするまで入力を続けられます。

例15-1 InputStream

odiInputStream.withReader { reader ->
while (true) {
println reader.readLine();
}
}

複数のスクリプトの使用

複数のスクリプトを同時に使用する場合は、次の点に注意してください:

- 実行ごとにログ・タブが開きます。

- スクリプトが別のスクリプトを参照している場合は、2番目のスクリプトの出力はログ・タブにリダイレクトされません。これはGroovyの既知の制限で、回避策はありません。

ODIインスタンスの使用

Oracle Data Integratorには、変数odiInstanceが用意されています。この変数は、ODI Studioで実行されるすべてのGroovyスクリプトに使用できます。これは、スクリプトを実行するODIインスタンス(より正確には、リポジトリへの接続)を表します。ODI Studioがリポジトリに接続されていない場合、このインスタンスはNullになることに注意してください。

odiInstance変数は、コードを実行する前にODI Studioコードによって初期化されます。この目的にはGroovy SDKのバインドAPIを使用できます。例15-2「プロジェクトの作成」は、odiInstance変数の使用方法を示しています。

開発タスクの自動化 - 例

Oracle Data Integratorでは、開発タスクを自動化するためにGroovyの使用がサポートされています。タスクの例は次のとおりです:

- 例15-2「プロジェクトの作成」

- 例15-3「外部Groovyファイル」

- 例15-4「外部ファイルからのクラス」

- 例15-5「Studio UIの自動化」

例15-2では、Groovyスクリプトを使用してODIプロジェクトを作成する方法を示します。

例15-2 プロジェクトの作成

import oracle.odi.core.persistence.transaction.ITransactionDefinition;
import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition;
import oracle.odi.core.persistence.transaction.ITransactionManager;
import oracle.odi.core.persistence.transaction.ITransactionStatus;
import oracle.odi.domain.project.OdiProject;
import oracle.odi.domain.project.OdiFolder;

ITransactionDefinition txnDef = new DefaultTransactionDefinition();
ITransactionManager tm = odiInstance.getTransactionManager()
ITransactionStatus txnStatus = tm.getTransaction(txnDef)
OdiProject myProject = new OdiProject("New Project 1","NEW_PROJECT_1")
OdiFolder myFolder = new OdiFolder(myProject,"Test Folder 001")
odiInstance.getTransactionalEntityManager().persist(myProject)
tm.commit(txnStatus)

例15-3では、外部Groovyスクリプトをインポートする方法を示します。

例15-3 外部Groovyファイル

//Created by ODI Studio
import gd.Test1;
println "Hello World"
Test1 t1 = new Test1()
println t1.getName()

例15-4では、別のGroovyスクリプトからクラスをコールする方法を示します。

例15-4 外部ファイルからのクラス

import gd.GroovyTestClass

GroovyTestClass tc = new GroovyTestClass()
println tc.getClassLoaderName()

例15-5では、Studio UIの自動化を実装する方法を示します。

例15-5 Studio UIの自動化

import javax.swing.JMenuItem;
import javax.swing.JMenu;
import oracle.ide.Ide;

((JMenuItem)Ide.getMenubar().getGUI(false).getComponent(4)).doClick();
JMenu mnu = ((JMenu)Ide.getMenubar().getGUI(false).getComponent(4));
((JMenuItem)mnu.getMenuComponents()[0]).doClick()

第IV部

統合プロジェクトの管理

この部では、Oracle Data Integratorでのプロジェクトの編成方法と保守方法について説明します。

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

- 第16章「統合プロジェクトの編成およびドキュメント化」

- 第17章「バージョン・コントロールの使用」

- 第18章「エクスポートおよびインポート」

16 統合プロジェクトの編成およびドキュメント化

この章では、Oracle Data Integratorでの作業を編成し、ドキュメント化する方法について説明します。

この章には次の項が含まれます:

- フォルダを使用したプロジェクトの編成

- フォルダを使用したモデルの編成

- 相互参照の使用

- マーカーおよびメモの使用

- 同時変更の処理

- PDFレポートの作成

フォルダを使用したプロジェクトの編成

Oracle Data Integratorで統合プロジェクトの作成を開始する前に、プロジェクトをどのように編成するかを考えておくことをお薦めします。

後でプロジェクトを再編成することは危険を伴う可能性があります。新しい場所を反映するために、リンクや相互参照をすべて手動で指定し直すことが必要になる場合があります。

プロジェクト内では、マッピング、プロシージャおよびパッケージがフォルダとサブフォルダに編成されます。プロジェクトは、プロジェクト固有の基準に従って、関連するプロジェクト・コンポーネントをフォルダとサブフォルダにグループ化して、適切な編成を維持することをお薦めします。フォルダを使用することで、プロジェクトで開発したオブジェクトの検索やメンテナンス・タスクが容易になります。サブフォルダは、レベルの数に制限なく作成できます。

マーカーを使用してプロジェクトを編成することもできます。詳細は、「マーカーおよびメモの使用」を参照してください。

新規フォルダの作成

新規フォルダを作成するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンを展開します。

2. フォルダを追加するプロジェクトを選択します。

3. 右クリックして「新規フォルダ」を選択します。

4. 「名前」フィールドに、フォルダの名前を入力します。

5. 「ファイル」メイン・メニューから「保存」を選択します。

空のフォルダが表示されます。

サブフォルダを作成するには:

1. 「新規フォルダの作成」の説明に従って、新しいフォルダを作成します。

2. 新しいフォルダを親フォルダにドラッグ・アンド・ドロップします。

プロジェクト・フォルダの調整

プロジェクト階層内でプロジェクト・フォルダを調整するには、フォルダを別のフォルダまたはプロジェクトにドラッグ・アンド・ドロップします。プロジェクトのフォルダを別のプロジェクトに移動することはできません。

フォルダを使用したモデルの編成

モデル・フォルダは、プロジェクト固有の基準に従って、関連するモデルをグループ化します。モデル・フォルダに別のモデル・フォルダを含めることもできます。サブフォルダは、レベルの数に制限なく作成できます。

マーカーを使用してモデルを編成することもできます。詳細は、「マーカーおよびメモの使用」を参照してください。

新規モデル・フォルダの作成

モデル・フォルダを作成するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンのツールバーで、「新規モデル・フォルダ」をクリックします。

3. 「名前」フィールドに、フォルダの名前を入力します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

空のモデル・フォルダが表示されます。

モデル・フォルダの調整

モデルをフォルダに移動するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. モデルを選択して、移動先のモデル・フォルダのアイコンにドラッグ・アンド・ドロップします。

現在の場所から選択したモデル・フォルダに、モデルが移動します。

モデル・フォルダを調整する場合は、次のことに注意してください。

- 1つのフォルダに同時に存在できるのは1つのモデルのみです。

- モデル・フォルダは、別のモデル・フォルダにも移動できます。

サブモデルの作成および編成

サブモデルは、階層構造内でモデルのデータストアを分類できるオブジェクトです。構造のルートはモデルです。サブモデルは、モデル内の同種のデータストアを機能的にグループ化します。モデルのデータストアは、ドラッグ・アンド・ドロップを使用して、または自動配布でサブモデルに挿入できます。

分類操作は、次のように実行されます。

- リバースエンジニアリング・プロセス中に、RKMによってサブモデルが作成され、それらのサブモデルにデータストアが自動的に配布されることがあります。たとえば、ERPシステムからの大きなデータ・モデルを処理するRKMでは、この方法が使用されます。

- 既存のデータストアをサブモデルにドラッグ・アンド・ドロップし、手動で分類します。

- データストアの名前に基づく配布を使用して自動的に分類します。

サブモデルを作成するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンで、サブモデルを追加するモデルまたはサブモデルを選択します。

3. 右クリックして「新規サブモデル」を選択します。

4. 「定義」タブで、「名前」フィールドにサブモデルの名前を入力します。

5. 「OK」をクリックします。

データストアのない新しいサブモデルが作成されます。

サブモデルの調整

データストアをサブモデルに手動で格納するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンで、サブフォルダに移動するデータストアを選択します。

3. サブモデルにドラッグ・アンド・ドロップします。

データストアがモデルから消去され、サブモデルに表示されます。

自動配布の設定

配布では、サブモデルへのデータストアの自動配布を定義できます。

データストア名が自動割当てマスクと比較されます。データストア名がこのパターンに一致する場合は、このサブモデルにデータストアが移動します。この操作は、データストア配布ルールに従って、手動または自動で実行できます。

2つの方法で分類できます。

- サブモデルの「配布」タブで「配布」をクリックすることで、現在のルールがデータストアに適用されます。

- リバースエンジニアリング・プロセスの最後に、すべてのサブモデル・ルールが適用され、「リバースエンジニアリング後のマスク・アプリケーションの順序」の値に従って、すべてのサブモデルに順序が定義されます。

サブモデルへのデータストアの自動配布を設定するには:

1. サブモデルの「配布」タブで、「データストア配布ルール」を選択します。
データストア配布ルールでは、処理の対象として考慮し、自動割当てマスクと比較するデータストアを決定します。

- 自動配布なし: データストアの配布は考慮されません。手動で配布する必要があります。

- すべてのデータストアの自動配布がまだサブモデルの中にありません: サブモデル・ツリーのルート・モデルにあるデータストアの配布が考慮されます。

- すべてのデータストアの自動配布: モデル(およびサブモデル)のすべてのデータストアの配布が考慮されます。

2. 「自動割当てマスク」フィールドに、このサブモデルに分類するためにデータストア名が一致する必要があるパターンを入力します。

3. 「リバースエンジニアリング後のマスク・アプリケーションの順序」フィールドに、リバース操作の終了時にすべてのルールに適用する順序を入力します。その結果、すべてのデータストアに対して上位の順序に設定されているルールが優先されます。未分類のデータストアに対して上位の順序に設定されているルールは、他のルールのパターンにより無視されたデータストアにのみ適用されます。リバース操作の終了時に、新規のデータストアは未分類とみなされます。すでにサブモデルで分類されているデータストアは、それぞれのサブモデルに関連付けられたままです。

4. 「配布」をクリックします。現在のルールがデータストアに適用されます。

相互参照の使用

Oracle Data Integratorのオブジェクト(データストア、モデル、マッピングなど)は、様々な関係によって相互にリンクされます。これらの関係には、単純な使用上の関連(マッピングによるナレッジ・モジュールの使用)から、コード解釈関係などの複雑な関連(マッピングまたはマッピングのフィルタでの変数の使用)まであります。これらの関係は、相互参照として実装されます。それらは、作業リポジトリ内の関連オブジェクト間の整合性をチェックしたり、整合性を維持するために使用されます。たとえば、相互参照により、作業リポジトリのいずれかの場所で現在参照されているオブジェクトは、削除されないように保護されます。

すべての関係が相互参照として表示されるわけではありません。

- マスター・リポジトリのオブジェクトとの関係(テクノロジとデータ・モデルの関連など)は、相互参照として実装されませんが、オブジェクト・コード(コンテキスト・コード、テクノロジ・コード、データ型コードなど)に基づく弱い参照として実装されます。これらのコードが変更されると、参照内の整合性が失われる可能性があります。

- 作業リポジトリ内の強い関係(プロジェクトに属するフォルダ)は、グラフィカル・ユーザー・インタフェースおよびリポジトリ内で(ホスト・データベースの外部キーとして)強制的に適用されます。これらの関係は、通常、破損することはありません。

相互参照の表示

オブジェクトを変更する場合は、その変更による他の開発作業への影響を分析する必要があります。たとえば、列の長さを変更すると、この列をソースまたはターゲットとして使用しているマッピングの変更も必要になります。相互参照を使用すると、特定のオブジェクトの参照元または参照先オブジェクトを即時に識別できるため、効果的な影響分析を実行できます。

相互参照は、表16-1の説明のようにデザイナ・ナビゲータに表示されます。

表16-1 デザイナ・ナビゲータの相互参照

アコーディオン

アイコン

説明

「プロジェクト」および「その他」アコーディオン

オブジェクト・ノードの下に「使用」および「使用者」ノードが表示されます。「使用」ノードには、現在のオブジェクトを参照しているオブジェクトのリストが表示されます。たとえば、変数の場合は、その変数を参照するステップが格納されているパッケージと、マッピングやフィルタなどが表示されます。「使用者」ノードには、現在のオブジェクトを使用しているオブジェクトのリストが表示されます。

「モデル」アコーディオン

オブジェクト・ノードの下に「使用」ノードが表示され、現在のデータストア、モデルまたはサブモデルをマッピングのソースまたはターゲットとして(あるいはパッケージ・ステップで)参照しているオブジェクトのリストが表示されます。

「モデル」アコーディオン

「移入に使用」および「移入者」ノードには、現在のデータストアを移入元または移入先とするデータストアが表示されます。

これらの相互参照ノードは展開できます。参照元または参照先のオブジェクトは、相互参照ノードから表示または編集できます。

欠落参照の解決

バージョン・リストア操作を実行すると、作業リポジトリのオブジェクトが、存在しないオブジェクトを参照する状況が発生する可能性があります。たとえば、プロシージャまたはパッケージで使用されているすべての関連オブジェクトをリストアせずにプロジェクトの旧バージョンをリストアするとします。

注意:
マッピング・フレームワークの設計には、欠落参照または無効な参照を処理するためのメカニズムが組み込まれています。このため、12cでのODIのインポートにより、マッピングのインポート欠落参照は作成および報告されません。かわりに、マッピング・フレームワークは、マッピングを開くときに無効な参照または欠落参照を調整しようとします。

このような状況で、存在しないオブジェクトを参照するオブジェクト(パッケージなど)を開くと、Oracle Data Integratorで「参照がありません」エラー・メッセージが表示されます。相互参照が欠落しているオブジェクトは、欠落参照マーカー付きでツリーに表示されます。

オブジェクトの欠落参照の詳細を表示するには:

1. デザイナ・ナビゲータで、欠落参照マーカーのあるオブジェクトをダブルクリックします。

2. オブジェクト・エディタが開きます。オブジェクト・エディタで、「参照がありません」タブを選択します。

3. このタブに、相互参照が欠落している参照オブジェクトのリストが表示されます。

欠落参照を解決するには:

欠落相互参照は2つの方法で解決できます:

- 欠落参照オブジェクトをインポートまたはリストアします。詳細は、第17章「バージョン・コントロールの使用」および第18章「エクスポートおよびインポート」を参照してください。

- 参照元オブジェクトを変更することで、欠落オブジェクトに対する参照を削除します(たとえば、存在しない変数を参照する「変数のリフレッシュ」ステップをパッケージから削除し、それを別の変数で置換します)。

注意:
コード・ブロック(プロシージャ・コマンドなど)に1つ以上の欠落参照が含まれる場合、このコードに適用される最初の変更が追加のチェックなしで考慮されます。これは、コードの一部が、存在しないオブジェクトを引き続き参照しているとしても、コードが変更され、相互参照が算定されると、欠落参照がすべて削除されるためです。

マーカーおよびメモの使用

プロジェクトとモデルのほぼすべての要素には、プロジェクトの概要説明や開発支援を目的として、説明的なマーカーとメモを関連付けることができます。

マーカー

フラグは、マーカーを使用して定義します。これらのマーカーは、グループに編成し、プロジェクトまたはモデル内のほとんどのオブジェクトに適用できます。

一般的なマーカー・グループは、次のとおりです。

- 開発サイクル(開発、テスト、本番)

- 優先度(低、中、緊急、クリティカル)

- 進捗状況(10%、20%など)

グローバル・マーカーとプロジェクト・マーカー

マーカーは、プロジェクトまたは「その他」ビュー(グローバル・マーカー)で定義します。プロジェクト・マーカーは、そのプロジェクトのオブジェクトでのみ使用できます。グローバル・マーカーは、リポジトリのすべてのモデルで使用できます。

オブジェクトへのフラグの指定

オブジェクトにアイコン・マーカーでフラグを指定するには:

1. デザイナ・ナビゲータの「プロジェクト」または「モデル」アコーディオンで、オブジェクトを選択します。

2. 右クリックして「マーカーの追加」を選択し、マーカー・グループと設定するマーカーを選択します。

マーカー・アイコンがツリーに表示されます。マークされたオブジェクトは、マーカーのノードにも表示されます。したがって、特定のマーカーが付いたすべてのオブジェクトを参照できます。

ツリーで、自動増分マーカー・グループに属するアイコン・マーカーをクリックすると、マーカーがマーカー・グループ内の次のマーカーに切り替わり、それに応じてアイコンも変化します。

注意:
マーカーおよびメモ・フラグの表示オプションが選択されていない場合、マーカーは表示されません。詳細は、「マーカーおよびメモの非表示化」を参照してください。

オブジェクトに文字列、数値および日付マーカーでフラグを指定するには:

1. デザイナ・ナビゲータの「プロジェクト」または「モデル」アコーディオンで、オブジェクトをダブルクリックします。

2. オブジェクト・エディタで、「マーカー」タブを選択します。

3. 「マーカーの挿入」をクリックします。

4. 新しい行で、「グループ」および「マーカー」を選択します。必要に応じて「値」も設定できます。

マーカーに関連付けられているアイコンがある場合は、そのアイコンがツリーに表示されます。

マーカーを使用したフィルタリング

マーカーは情報目的で使用されます(プロジェクトの進捗状況やリソースについてグローバル・ビューを提供するなど)。パッケージをフィルタ処理してシナリオ生成を自動化する場合もマーカーを使用できます。詳細は、「シナリオ・グループの生成」を参照してください。

マーカーのノードには、特定のマーカーを使用しているすべてのオブジェクトのリストが表示されます。

マーカーのカスタマイズ

新規プロジェクトは、デフォルト・マーカー付きで作成されます。特定のプロジェクトのマーカーやグローバル・マーカーは、カスタマイズ可能です。

マーカー・グループを定義するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンの「マーカー」ノードをクリックするか、「その他」アコーディオンの「グローバル・マーカー」ノードをクリックします。

2. 右クリックして「新規マーカー・グループ」を選択します。

3. 「グループ名」フィールドにマーカー・グループの名前を入力し、その「表示プロパティ」と「属性」を定義します。

4. 「新規マーカーを挿入」をクリックし、グループに新しいマーカーを作成します。

5. マーカーの「アイコン」を選択します。マーカーに日付または数値が格納される場合、アイコンは「<なし>」に設定します。

6. マーカーの「名前」、「タイプ」およびその他のオプションを選択します。

7. ステップ4から6を繰り返し、グループにその他のマーカーを追加します。

8. 「ファイル」メイン・メニューから「保存」を選択します。

メモ

メモは、事実上すべてのオブジェクトに添付できる文字数に制限のないテキストで、「メモ」タブに表示されます。オブジェクトにメモが添付されると、オブジェクトの横にメモ・アイコンが表示されます。

オブジェクトのメモを編集するには:

1. オブジェクトを右クリックします。

2. 「メモの編集」を選択します。

3. 「メモ」タブが選択された状態でオブジェクト・エディタが開きます。

マーカーおよびメモの非表示化

ツリー・ビューのマーカーとメモのフラグは、画面を見やすくするために一時的に非表示にできます。

すべてのマーカーおよびメモのフラグを非表示にするには:

デザイナ・ナビゲータのツールバー・メニューで、「マーカーおよびメモ・フラグの表示」オプションの選択を解除します。この設定はマシンごとに保存されます。

同時変更の処理

複数のユーザーが同じOracle Data Integratorプロジェクトまたはモデルを同時に操作できます。各ユーザーはすべて同じリポジトリに接続されるため、ユーザーによる変更は同時に発生するとみなされます。

Oracle Data Integratorでは、この同時変更を処理するために、「同時編集のチェック」および「オブジェクトのロック」という2つの方法を提供しています。この2つの方法は、同時に、または個別に使用できます。

同時編集のチェック

ユーザー・パラメータ「同時編集のチェック」を設定すると、ユーザーが保存しようとしているオブジェクトに対して他のユーザーが実行した作業を削除できなくすることができます。このパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開して「同時開発」ノードを選択します。

このパラメータが選択されている場合、オブジェクトに対する変更を保存するときに、オブジェクトを開いてから別のユーザーが同じオブジェクトに変更を追加していないかどうかがOracle Data Integratorによってチェックされます。別のユーザーが変更を追加していた場合、オブジェクトは保存できないため、変更を保存しようとしたユーザーは、その変更を取り消す必要があります。

オブジェクトのロック

オブジェクト・ロック・メカニズムのアクティブ化は、Oracle Data Integratorで自動的に、Oracle Data Integratorを閉じる際に、またはオブジェクトの明示的なロックやロック解除により手動で適用されます。

オブジェクトのロック中は、ロックを所有しているユーザーのみがオブジェクトを変更(編集や削除など)できます。他のユーザーは、その他の操作(実行など)を実行できますが、その際に警告が表示されます。

自動オブジェクト・ロック

自動オブジェクト・ロックが実行されると、オブジェクトは、編集用に開かれているかどうかにかかわらずロックされます。オプションで、オブジェクトがユーザー・インタフェースで開かれている場合に、ダイアログを生成してオブジェクトをロックするかどうかを尋ねるようにシステムを構成できます。

ユーザーにロックされたオブジェクトは、黄色のロック・アイコン付きで表示されます。別のユーザーにロックされたオブジェクトは、赤色のロック・アイコン付きで表示されます。

編集ウィンドウを閉じる際は、オブジェクトのロックを解除するかどうかを尋ねるポップアップ・ウィンドウが表示されます。

これらのウィンドウは、「開く時にオブジェクトをロック」および「閉じる時にオブジェクトをロック解除」のユーザー・パラメータで構成します。これらのパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開して「同時開発」ノードを選択します。各オプションをYes、NoまたはAskに設定できます。「開く時にオブジェクトをロック」をAskに設定した場合、ダイアログが開きます。Yesに設定した場合、オブジェクトは、開くと自動的にロックされます。

ユーザー・インタフェースを閉じる際のロックの解放

Oracle Data Integratorを閉じる際、ロックしているオブジェクトのロックを解除するか、開いているオブジェクトを保存するかを尋ねるウィンドウがデフォルトで表示されます。この動作は、「閉じる時にオブジェクトをロック解除」パラメータで制御します。

オブジェクトのロックはOracle Data Integratorに接続していない場合も維持できます。その間、他のユーザーはこれらのオブジェクトを編集できません。

ロックの手動管理

オブジェクトのロックは手動で管理することもできます。

オブジェクトを手動でロックするには:

1. ツリーでオブジェクトを選択します。

2. 右クリックして「ロック」→「ロック」の順に選択します。

ロック・アイコンがツリーのオブジェクトの横に表示されます。

オブジェクトのロックを手動で解除するには:

1. ツリーでオブジェクトを選択します。

2. 右クリックして「ロック」→「ロック解除」の順に選択します。

ロック・アイコンがツリーに表示されなくなります。

すべてのロックを管理するには:

1. ODIメニューから「ロックされたオブジェクト」を選択します。

2. ロックされたオブジェクト・エディタに、ロックを解除できるすべてのロック済オブジェクトが表示されます。

注意:
スーパーバイザ権限のユーザーは、他のすべてのユーザーのロックを削除できます。

PDFレポートの作成

Oracle Data Integratorでは、PDF生成機能を使用して、次のような様々なタイプのレポートを印刷したり、レポートを共有することができます。

- 物理アーキテクチャ、論理アーキテクチャまたはコンテキストのトポロジ・レポート

- バージョン比較結果のレポート

- ODIオブジェクトのレポート

- ダイアグラム・レポート

注意:
生成されたレポートを表示するには、PDF生成を起動する前に、ユーザー・プリファレンスでAdobe Acrobat Readerの場所を指定する必要があります。この値を設定するには、「ツール」メニューの「プリファレンス」オプションを選択します。「ODI」ノードを展開し、次にシステム・ノードを展開して、「レポート」を選択します。使用するPDFビューアの場所を入力(または検索)します。

トポロジ・レポートの生成

Oracle Data Integratorでは、物理アーキテクチャ、論理アーキテクチャまたはコンテキストのトポロジ・レポートをPDF形式で生成できます。

トポロジ・レポートを生成するには:

1. トポロジ・ナビゲータのツールバー・メニューから「レポートの生成」を選択し、生成するレポートのタイプを選択します。

- 物理アーキテクチャ

- 論理アーキテクチャ

- コンテキスト

2. レポート生成エディタで、PDFレポートの出力先を「PDFファイルの場所」に入力します。「PDFファイルの場所」の指定を省略すると、Adobe(tm) PDF形式のレポートは、ユーザー・パラメータに指定されているPDF生成用のデフォルト・ディレクトリに生成されます。この値を設定するには、「ツール」メニューの「プリファレンス」オプションを選択します。「ODI」ノード、システム・ノードの順に展開し、「レポート」を選択します。デフォルトのPDF生成ディレクトリの場所を入力(または検索)します。

3. 生成後にPDFレポートを表示する場合は、「ファイルを生成後に開きますか。」オプションを選択します。

4. 「生成」をクリックします。

バージョン比較結果のレポートの生成

バージョン比較ツールを介して比較結果のレポートを作成および印刷できます。詳細は、「比較結果レポートの生成および印刷」を参照してください。

Oracle Data Integratorオブジェクトのレポートの生成

デザイナ・ナビゲータでは、オブジェクトのタイプに従って様々なタイプのレポートを生成できます。表16-2に、ODIオブジェクトの様々なレポート・タイプを示します。

表16-2 ODIオブジェクトの様々なレポート・タイプ

オブジェクト

レポート

プロジェクト

ナレッジ・モジュール

プロジェクト・フォルダ

フォルダ、パッケージ、マッピング、プロシージャ

モデル・フォルダ

モデル・フォルダ

モデル

モデル

サブモデル

サブモデル

デザイナ・ナビゲータでレポートを生成するには:

1. デザイナ・ナビゲータで、レポートを生成するオブジェクトを選択します。

2. 右クリックして「印刷」→<オブジェクト>の印刷の順に選択します。

3. レポート生成エディタで、PDFレポートの出力先を「PDFファイルの場所」に入力します。「PDFファイルの場所」の指定を省略すると、Adobe(tm) PDF形式のレポートは、ユーザー・パラメータに指定されているPDF生成用のデフォルト・ディレクトリに生成されます。この値を設定するには、「ツール」メニューの「プリファレンス」オプションを選択します。「ODI」ノード、システム・ノードの順に展開し、「レポート」を選択します。デフォルトのPDF生成ディレクトリの場所を入力(または検索)します。

4. 生成後にPDFレポートを表示する場合は、「ファイルを生成後に開きますか。」オプションを選択します。

5. 「生成」をクリックします。

ダイアグラム・レポートの生成

ダイアグラムの完全なPDFレポートを生成できます。詳細は、「ダイアグラムの印刷」を参照してください。

17 バージョン・コントロールの使用

この章では、Oracle Data Integratorでのバージョン管理の使用方法について説明します。

Oracle Data Integratorは、変更を管理および保護するための包括的なシステムを提供します。バージョン管理システムでは、開発されたオブジェクト(プロジェクト、モデルなど)のフラグが自動設定され、「新規」または「変更」といったこれらのオブジェクトのステータスが示されます。また、これらのオブジェクトを固定のチェックポイントの時点でバックアップし、後でこれらのチェックポイントからリストアできます。これらのチェックポイントは、個別のオブジェクトについてはバージョンの形式で、またオブジェクトの一貫性グループについてはソリューションの形式で作成されます。

注意:
Oracle、Hypersonic SQLおよびMicrosoft SQL Serverなどのデータベース・エンジンにインストールされたマスター・リポジトリについては、バージョン管理がサポートされています。バージョン管理をサポートしている認証済データベース・エンジンの全リストについては、次の場所にあるOTNのプラットフォーム認証ドキュメントを参照してください: http://www.oracle.com/technology/products/oracle-data-integrator/index.html

この章には次の項が含まれます:

- オブジェクト・フラグの使用

- バージョンの使用

- バージョン比較ツールの使用

- ソリューションの使用

オブジェクト・フラグの使用

デザイナ・ナビゲータでオブジェクトが作成または変更されると、ツリーの中のオブジェクト・アイコン上にオブジェクトのステータスを示すフラグが表示されます。表17-1ではこれらのフラグをリストしています。

表17-1 オブジェクト・フラグ

フラグ

説明

オブジェクト・ステータスは挿入済です。

オブジェクト・ステータスは「更新済」です。

オブジェクトが挿入、更新または削除されると、その親オブジェクトは再帰的に「更新済」としてフラグが指定されます。たとえば、パッケージにステップが挿入された場合、このステップは挿入済としてフラグが指定され、このステップが含まれるパッケージ、フォルダおよびプロジェクトは、「更新済」としてフラグが指定されます。

オブジェクト・バージョンがチェック・インされると(詳細は「バージョンの使用」を参照)、このオブジェクトのフラグはリセットされます。

バージョンの使用

バージョンとは、オブジェクトのバックアップ・コピーです。バージョンは指定の時間にチェック・インされ、後でリストアできます。バージョンはマスター・リポジトリに保存され、「オブジェクト」ウィンドウの「バージョン」タブに表示されます。

次のオブジェクトはバージョンとしてチェック・インできます。

- プロジェクト、フォルダ

- パッケージ、シナリオ

- マッピング(再使用可能マッピングを含む)、プロシージャ、ナレッジ・モジュール

- 順序、ユーザー関数、変数

- モデル、モデル・フォルダ

- ソリューション

- ロード計画

バージョンのチェック・イン

バージョンをチェック・インするには:

1. バージョンをチェック・インするオブジェクトを選択します。

2. プロパティ・インスペクタで、「バージョン」タブを選択します。「バージョン」表で、「新規バージョンを作成」ボタン(緑色のプラス記号アイコン)をクリックします。または、オブジェクトを右クリックして、コンテキスト・メニューから「バージョン」→「バージョンの作成」を選択します。

3. 「バージョニング」ダイアログの「前のバージョン」で、すでにチェック・インされているバージョンのリストを確認します。

4. 「バージョン」フィールドでバージョン番号が自動生成されます。必要に応じてこのバージョン番号を変更します。

5. 「説明」フィールドにこのバージョンの詳細を入力します。

6. 「OK」をクリックします。

バージョンがチェック・インされると、オブジェクトのフラグがリセットされます。

オブジェクトの前のバージョンの表示

オブジェクトの前のバージョンを表示するには:

オブジェクトの編集時、「バージョン」タブには、作成情報と更新情報、このオブジェクトの内部IDとグローバルIDおよびチェック・イン・バージョン、チェック・イン日、チェック・イン操作を実行したユーザーの名前のリストが表示されます。

「バージョン」タブからのバージョンのリストア

注意:
バージョン・ブラウザからバージョンをリストアすることもできます。「バージョン・ブラウザによるバージョンのリストア」を参照してください。

警告:

バージョンのリストアは元に戻せません。現在のオブジェクトは完全に消去され、選択したバージョンで置き換えられます。バージョンをリストアする前に、現在のオブジェクトの新規バージョンを作成することを検討してください。

「バージョン」タブからバージョンをリストアするには:

1. バージョンをリストアするオブジェクトを選択します。

2. プロパティ・インスペクタで、「バージョン」タブを選択します。または、オブジェクトを右クリックして、コンテキスト・メニューから「バージョン」→「リストア...」を選択します。
「バージョン」表で、リストアするバージョンに対応する行を選択します。「バージョンをリストア」ボタンをクリックするか、行を右クリックし、コンテキスト・メニューから「リストア」を選択します。

3. 「はい」をクリックしてリストア操作を確認します。

バージョンの参照

バージョンを参照するには:

Oracle Data Integratorに組み込まれたバージョン・ブラウザというツールは、リポジトリに格納されたバージョンの表示に使用されます。

1. メイン・メニューから、「ODI」→「バージョン・ブラウザ」の順に選択します。

2. 「オブジェクト・タイプ」ドロップダウン・リストおよび「オブジェクト名」ドロップダウン・リストを使用して、バージョン・リストを表示する対象オブジェクトをフィルタ処理します。

「バージョン・ブラウザ」から、2つのバージョンの比較、バージョンのリストア、XMLファイル形式でのバージョンのエクスポートまたは既存のバージョンの削除が可能です。

注意:
バージョン・ブラウザには、バージョン・ブラウザを開いたときに存在するバージョンが表示されます。「リフレッシュ」をクリックすると、それ以降に作成された新しいバージョンがすべて表示されます。

バージョン・ブラウザによる2つのバージョンの比較

バージョン・ブラウザを使用して2つのバージョンを比較するには、「バージョン比較ツールの使用」を参照してください。

バージョン・ブラウザによるバージョンの削除

バージョン・ブラウザによりバージョンを削除するには:

1. バージョン・ブラウザを開きます。

2. 削除するバージョンを選択します。

3. バージョン表で「削除」アイコン(赤色のXボタン)をクリックするか、右クリックしてコンテキスト・メニューから「削除」を選択します。

バージョンが削除されます。

バージョン・ブラウザによるバージョンのリストア

警告:

バージョンのリストアは元に戻せません。現在のオブジェクトは完全に消去され、選択したバージョンで置き換えられます。バージョンをリストアする前に、現在のオブジェクトの新規バージョンを作成することを検討してください。

バージョン・ブラウザによりバージョンをリストアするには:

1. バージョン・ブラウザを開きます。

2. リストアするバージョンを選択します。

3. 「このバージョンをリストア」ボタンをクリックするか、右クリックしてコンテキスト・メニューから「リストア」を選択します。

4. 「OK」をクリックしてリストア操作を確認します。

バージョンはリポジトリにリストアされます。

バージョン・ブラウザによるバージョンのエクスポート

バージョン・ブラウザによりバージョンをエクスポートするには:

この操作では、バージョンをリストアせずにファイルにエクスポートします。このエクスポートしたバージョンを別のリポジトリにインポートできます。

注意:
バージョンをエクスポートすると、バージョンに含まれるオブジェクトがエクスポートされ、バージョン情報はエクスポートされません。これにより、旧バージョンを実際にリポジトリにリストアせずにエクスポートできます。

1. バージョン・ブラウザを開きます。

2. エクスポートするバージョンを選択します。

3. 「このバージョンをXMLファイルとしてエクスポートします」ボタンをクリックするか、右クリックしてコンテキスト・メニューから「エクスポート」を選択します。

4. 「エクスポート・ディレクトリ」を選択し、「エクスポート名」を指定します。エクスポート・ディレクトリにある同じ名前のファイルを確認なしで上書きするには、「既存のファイルを警告なしで置換」を選択します。

5. 「OK」をクリックします。

バージョンは指定の場所にエクスポートされます。

バージョン比較ツールの使用

Oracle Data Integratorには、包括的なバージョン比較ツールが用意されています。このグラフィカル・ツールは、オブジェクトの2種類のバージョンを表示して比較するためのものです。

バージョン比較ツールには、次の機能が備わっています。

- 比較結果を色分けし並べて表示: 比較結果は2つのペインに並べて表示され、2つの比較対象バージョンの差異が色分けされます。

- 比較結果をツリーに編成: 比較ツールのツリーでは、比較結果がノード・オブジェクトの階層リストに表示されます。ここではノードの開閉が同期化されます。

- PDF形式でのレポートの作成および印刷: バージョン比較ツールでは、オブジェクトの特定の2つのバージョンにおける差異をリストしたPDFレポートを生成および印刷できます。

- サポートされるオブジェクト: バージョン比較ツールでサポートされているオブジェクトは、プロジェクト、フォルダ、パッケージ、シナリオ、マッピング、プロシージャ、ナレッジ・モジュール、順序、ユーザー関数、変数、モデル、モデル・フォルダおよびソリューションです。

- 差異ビューア機能: このバージョン比較ツールは差異ビューアであり、参照目的でのみ提供されます。オブジェクト・バージョンの編集またはマージはサポートされていません。オブジェクトを編集したり、2つのバージョンの変更点をマージする必要がある場合は、対象オブジェクトに直接手動で変更を加える必要があります。

2つのバージョンの差異の表示

オブジェクトの特定の2つのバージョンにおける差異を表示するには、バージョン比較ツールを開きます。

バージョン比較ツールを開くには、次の3つの方法があります。

「プロジェクト」ツリーでオブジェクトを選択する方法

1. デザイナ・ナビゲータの「プロジェクト」ツリーで、バージョンを比較するオブジェクトを選択します。

2. オブジェクトを右クリックします。

3. 「バージョン」→「バージョンの比較」の順に選択します。

4. 「バージョンの比較」エディタで、オブジェクトの現在のバージョンの比較対象となるバージョンを選択します。

5. 「OK」をクリックします。

6. バージョン比較ツールが開きます。

オブジェクトの「バージョン」タブを使用する方法

1. デザイナ・ナビゲータで、バージョンを比較するオブジェクトのオブジェクト・エディタを開きます。

2. 「バージョン」タブに移動します。
「バージョン」タブには、このオブジェクトについて作成されたすべてのバージョンのリストが表示されます。このリストには、作成日、バージョンを作成したユーザーの名前および説明(指定した場合)も示されます。

3. <CTRL>キーを押したまま、比較する2つのバージョンを選択します。

4. 右クリックして「比較」を選択します。

5. バージョン比較ツールが開きます。

バージョン・ブラウザを使用する方法

1. バージョン・ブラウザを開きます。

2. [Ctrl]キーを押しながら左クリックして、2つの異なる行を選択します。まったく同じオブジェクトに対応する行を選択する必要があります。

3. バージョン表で「2つのバージョンの同一オブジェクトの比較」アイコンをクリックするか、右クリックしてコンテキスト・メニューから「比較」を選択します。

4. バージョン比較ツールが開きます。

5. オブジェクト比較のコピーを印刷するには、「印刷」をクリックします。「比較結果レポートの生成および印刷」を参照してください。
比較の確認の終了後、「閉じる」をクリックします。

バージョン比較ツールでは、2つのバージョンの差異が示されます。左ペインには選択したオブジェクトの新しいバージョン、右ペインには旧バージョンが表示されます。

差異は色でハイライト表示されます。次の色コードが適用されます。

色

説明

白(デフォルト)

変更なし

赤

削除済

緑

追加済/新規

黄

オブジェクト変更済

橙

フィールド変更済(このフィールド内の値は変更されています)

注意:
いずれかのバージョンに1つのオブジェクトが存在しない場合(削除された場合など)、(空の値により)空のオブジェクトとして表されます。

比較フィルタの使用

オブジェクトのバージョンが作成された後は、バージョン比較ツールを様々な時点で使用できます。

バージョンの作成またはチェック・インについては、「バージョンの使用」で説明しています。

バージョン比較ツールには、比較結果をカスタマイズする2種類のフィルタが用意されています。

- オブジェクト・フィルタ: 対応するチェック・ボックス(「新規」、「削除済」、「変更」または変更なし、あるいはそのすべて)を選択して、新規追加オブジェクト、削除済オブジェクト、変更済オブジェクトまたは変更なしのオブジェクトのいずれを表示するか、あるいはそのすべてを表示するかを決定できます。

- フィールド・フィルタ: 対応するチェック・ボックス(「新規」、「削除済」、「変更」または変更なし、あるいはそのすべて)を選択して、新規追加フィールド、削除済フィールド、変更済フィールドまたは変更なしのフィールドのいずれを表示するか、あるいはそのすべてを表示するかを決定できます。

比較結果レポートの生成および印刷

デザイナ・ナビゲータで比較結果のレポートを生成するには:

1. バージョン比較ツールで、「印刷」をクリックします。

2. 「レポート生成」ダイアログで、ニーズに応じて「オブジェクトでフィルタ」および「フィールドでフィルタ」を設定します。

3. 「PDFファイルの場所」フィールドで、レポートの書込み先となるファイル名を指定します。パスを指定しない場合、ファイルはPDFファイルのデフォルト・ディレクトリに書き込まれます。これはユーザー・プリファレンスです。

4. 生成されたレポートをPDFビューアで表示する場合は、「ファイルを生成後に開きますか。」の横にあるボックスをチェックします。

注意:
生成されたレポートを表示するために、ユーザー・パラメータでAdobe Acrobat Readerの場所を指定する必要があります。デフォルトのPDF生成ディレクトリを設定することもできます。これらの値を設定するには、「ツール」メニューから「プリファレンス」オプションを選択します。「ODI」ノードを展開し、次にシステム・ノードを展開して、「レポート」を選択します。使用するPDFビューアおよびデフォルトのPDF生成ディレクトリの場所を入力(または検索)します。

5. 「生成」をクリックします。

ステップ0で指定したファイルに、Adobe PDF形式のレポートが書き込まれます

ソリューションの使用

ソリューションは、包括的で一貫性のある、オブジェクトの相互依存したバージョンのセットです。他のオブジェクトと同様、ソリューションはバージョンとして指定の時間にチェック・インし、後日リストアできます。ソリューションはマスター・リポジトリに保存されます。1つのソリューションが、そのソリューションの要素と呼ばれるバージョンのグループを構築します。

ソリューションは相互参照を使用して自動的に構築されます。相互参照のスキャンによって、ソリューションには特定のオブジェクトに必要なすべての従属オブジェクトが自動的に組み込まれます。たとえば、ソリューションにプロジェクトを追加すると、このプロジェクトのインタフェースで使用されるすべてのモデルのバージョンが自動的にチェック・インされ、ソリューションに追加されます。ソリューションとの間で要素を手動で追加したり削除することもできます。

ソリューションは、デザイナ・ナビゲータおよびオペレータ・ナビゲータの「ソリューション」アコーディオンに表示されます。

次のオブジェクトをソリューションに追加できます。

- プロジェクト

- モデル、モデル・フォルダ

- シナリオ

- ロード計画

- グローバル変数、ナレッジ・モジュール、ユーザー関数および順序。

ソリューションを作成するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータの「ソリューション」ツールバー・メニューから、「新規ソリューション」を選択します。

2. ソリューション・エディタで、ソリューションの「名前」および「説明」を入力します。

3. 「ファイル」メニューから「保存」を選択します。

結果のソリューションは、要素を追加できる空のシェルです。

ソリューションにおける要素の使用

この項では、ソリューションの要素を使用する際に実行できる様々なアクションについて説明します。

要素の追加

要素を追加するには、ソリューション・エディタでツリーから「要素」リストにオブジェクトをドラッグします。Oracle Data Integratorでは相互参照がスキャンされ、この要素が正しく作用するために必要な「必須要素」が追加されます。追加対象オブジェクトが前回のバージョンのチェック・イン以降に挿入または更新されている場合、これらのオブジェクトの新規バージョンを作成するよう促されます。

要素の削除

ソリューションから要素を削除するには、「要素」リストで削除する要素を選択し、「削除」ボタンをクリックします。この要素はリストに表示されなくなります。オブジェクトの既存のチェック・イン済バージョンは影響されません。

オブジェクトのロールバック

オブジェクトをソリューションに格納されたバージョンにロールバックするには、リストアする要素を選択して「リストア」ボタンをクリックします。選択した要素はすべてソリューションのバージョンからリストアされます。

ソリューションの同期化

ソリューションを同期化すると、ソリューションに含まれていない必須要素が自動的に追加され、変更済の要素の新規バージョンが作成され、さらに不要な要素が自動削除されます。同期化プロセスでは、リポジトリに格納された要素(プロジェクト、モデルなど)によって、ソリューションのコンテンツが最新の状態になります。

ソリューションを同期化するには:

1. 同期化するソリューションを開きます。

2. 「要素」セクションのツールバー・メニューで「同期化」をクリックします。

3. Oracle Data Integratorでは相互参照がスキャンされます。相互参照によってソリューションが最新であることが示された場合、メッセージが表示されます。最新でない場合は、ソリューションとの間で追加または削除する要素のリストが表示されます。これらの要素は、プリンシパル要素(手動で追加されます)、必須要素(プリンシパル要素によって直接的または間接的に参照されます)および未使用の要素(プリンシパル要素では参照されません)にグループ化されます。

4. 「同意」ボックスを選択し、必須要素をバージョニングして含めるか、未使用の要素を削除します。

5. 「OK」をクリックしてソリューションを同期化します。新規バージョンの作成を必要とする要素について、バージョン作成の各ウィンドウが表示される場合があります。

ソリューション・コンテンツを最新の状態に保つには、ソリューションを定期的に同期化する必要があります。また、これはソリューション・バージョンをチェック・インする前に行う必要があります。

ソリューションのリストアとチェック・イン

ソリューション・バージョンをチェック・インおよびリストアする手順は、単一要素に使用する方法に類似しています。詳細は、「バージョンの使用」を参照してください。

オペレータ・ナビゲータまたはデザイナ・ナビゲータでソリューションをリストアし、シナリオを本番にインポートすることもできます。

ソリューションからシナリオをリストアするには:

1. ソリューションをダブルクリックし、ソリューション・エディタを開きます。

2. 「プリンシパル要素」または「必須要素」セクションからシナリオを選択します。プロジェクトおよびマッピングなどのその他の要素はリストアできないことに注意してください。

3. 「要素」セクションのツールバー・メニューで「リストア」をクリックします。

「シナリオ」タブでシナリオにアクセスできるようになりました。

バージョン・ブラウザを使用してシナリオをリストアすることもできます。「バージョン・ブラウザによるバージョンのリストア」を参照してください。

注意:
ソリューションをリストアする場合、ソリューション内の要素は自動的にリストアされません。これらの要素はソリューション・エディタから手動でリストアする必要があります。

ソリューションのインポートとエクスポート

ソリューションは、Oracle Data Integratorのその他のオブジェクトと同様にエクスポートおよびインポートできます。エクスポート/インポートは、マスター・リポジトリどうしのソリューションの転送に使用します。詳細は、第18章「エクスポートおよびインポート」を参照してください。

18 エクスポートおよびインポート

この章では、Oracle Data Integratorでエクスポートおよびインポート操作を管理する方法について説明します。また、インポートおよびエクスポートの概念についても説明します。

この章には次の項が含まれます:

- インポートおよびエクスポートの概念

- オブジェクトのエクスポートおよびインポート

- リポジトリ・レベルのエクスポート/インポート

- 技術環境のエクスポート

- ログのエクスポートおよびインポート

インポートおよびエクスポートの概念

この項では、Oracle Data Integratorでのエクスポートおよびインポート操作の基本概念について説明します。エクスポートおよびインポート操作を実行するには、この項で説明する概念を明確に理解する必要があります。

- グローバル識別子(GUID)

- エクスポート・キー

- オブジェクト間の関係

- インポート・モード

- インポート/エクスポートのヒント

グローバル識別子(GUID)

Oracle Data Integrator 12cでは、グローバルに一意なオブジェクト識別子の使用が導入されています。前のバージョンのODIとは異なり、ODI 12cでは、すべてのオブジェクトにGUIDを割り当てることで、複数の作業リポジトリにわたったオブジェクトの一意性が保証されています。後方互換性のために、引き続き内部識別子を利用できますが、内部識別子は、ODIを11g互換性モードで使用する場合にのみリポジトリ間で維持されます。

11g互換性モードの詳細は、第9章「互換性モードの使用」を参照してください。

ODIエンティティの作成時、JavaランダムUUID実装を使用して、オブジェクトにGUIDが自動的に割り当てられます。唯一の例外は、前のリリースからエクスポート・ファイルを12cにインポートする場合です。ODI 11gオブジェクトのインポート時に再作成可能な汎用一意IDが割り当てられるようにするためには、リポジトリ・アップグレード・プロセス時にグローバル・アップグレード・キーが必要となります。アップグレード・キーにより、ODIでは、1つの11gオブジェクトについて一貫して同じGUIDを計算できます。このキーにより、アップグレード前に連携して機能していたリポジトリのセットが一意に識別されます。インポート・アップグレード・キーは、12c以前のエクスポート・ファイルのインポート時に指定する必要があります。このインポート・アップグレード・キーは、グローバル・アップグレード・キーと同じ場合があります(通常は同じです)が、同じである必要はありません。

詳細は、『Oracle Data Integratorのアップグレード』のODIアップグレード・キーの選択に関する項を参照してください。

エクスポート・キー

Oracle Data Integrator 12c (12.1.3)では、プレーンテキストでの保存が望ましくない機密データが含まれる可能性のあるODIオブジェクトをエクスポートする際に、エクスポート・キーが使用されるようになりました。すべてのODIエクスポート・ダイアログで、AES対称型ブロック双方向暗号化を使用した機密(暗号)データの暗号化に使用されるエクスポート・キーの入力が求められます。エクスポート・キーを入力しない場合、機密データは保存時にエクスポート・ファイルから削除されます。

エクスポート中に必要な機密データ暗号化のためのAES KEYは、8文字以上100文字以下である必要があります。少なくとも1つの特殊文字(@、#、$、%、+、/、=)または数字、および少なくとも1つの小文字または大文字のアルファベット文字が必要です。

エクスポート・キーの入力を求めるダイアログでは、「エクスポート・キーの保存」オプションも選択できます。このプロンプトを選択すると、使用したエクスポート・キーが(不明瞭化された状態で)現在のリポジトリに保存され、ODIに(表示されませんが)記憶されます。以降に実行するエクスポート操作で何度も同じキーを使用する場合は、これを選択すると便利です。ただし、「エクスポート・キー」フィールドに新しい内容の入力を始めると、エクスポートを取り消さないかぎり、このオプションは自動的に選択解除され、以前に記憶されたエクスポート・キーは失われます。

オブジェクトのインポート時に、ODIでは、エクスポート・キーを入力するか、暗号データなしでファイルをインポートするかを選択するよう求めるダイアログが表示されます。オブジェクトのエクスポート時に使用されたエクスポート・キーを入力するか、暗号化されていない機密データを含めずにファイルをインポートするかを選択する必要があります。

複数のファイルが異なるエクスポート・キーを使用してエクスポートされた場合、それらのファイルのインポートの実行時に、必要に応じてファイルごとにエクスポート・キーの入力を求められます。

ODIでは、デフォルトでAES-128暗号化が使用されます。マスター・リポジトリの作成/インポート時にAES-128またはAES-256 (該当する場合)を選択でき、またodi.confファイルでODI Studioにより使用されるバージョンを指定できます。

オブジェクト間の関係

Oracle Data Integratorでは、すべてのオブジェクトが、オブジェクト間の依存関係とともにリレーショナル・データベース・スキーマ(リポジトリ)に格納されます。これらのオブジェクトが格納されたリポジトリ表では、内部IDおよびGUIDを使用した参照として依存関係が維持されます。ターゲット・データストアをマッピングにドラッグ・アンド・ドロップすると、このデータストアのGUIDへの参照が、参照先オブジェクトの内部IDおよび完全修飾名とともにマッピング・オブジェクトに格納されます。

このマッピングをエクスポートしてシノニム・モードで別の作業リポジトリにインポートする場合、同じGUIDを持つデータストアがこの別の作業リポジトリにすでに存在する必要があります。存在しない場合、マッピングに未解決の参照が含まれることになります。未解決の参照を解決するには、インポートしたオブジェクトを直接変更するか、欠落しているオブジェクトをインポートします。

このため、このデータストアを保持するモデルまたはサブモデルは、マッピングをインポートする前に、シノニム・モードでエクスポートおよびインポートされる必要があります。

スマート・エクスポートおよびスマート・インポート機能またはソリューションを使用すると、一連の依存オブジェクトをエクスポートおよびインポートできます。

- エクスポート/インポートの実行時に依存関係を維持するには、ソリューションとバージョニングを組み合せて使用します。第17章「バージョン・コントロールの使用」を参照してください。

- 依存関係が自動的に決定されるため、スマート・エクスポートおよびスマート・インポート機能を使用することをお薦めします。

作業リポジトリのオブジェクトとマスター・リポジトリのオブジェクト間にも依存関係があります。作業リポジトリ・オブジェクトからマスター・リポジトリ・オブジェクトへの参照のほとんどが、コードまたは名前を使用して作成されています。これは、マスター・リポジトリのオブジェクトのコード(たとえば、マスターのOracleテクノロジのコードはORACLE)のみが作業リポジトリで参照されることを意味します。マッピング・フレームワークには、内部IDとGUIDを同様に使用するSnpMapRefなどの例外がいくつかあります。

作業リポジトリ内での依存関係はIDベースです。

適切な順序でオブジェクトをインポートすることが重要です。スマート・エクスポートおよびスマート・インポート機能を使用して、この依存関係を保持することもできます。表18-1に、シノニム・モードでマッピングをインポートするときのマッピングと他のオブジェクトの依存関係を示します。スマート・エクスポートでは、マッピングをエクスポートすると、この依存オブジェクトが自動的に含まれることに注意してください。

表18-1 作業リポジトリおよびマスター・リポジトリでのマッピングの依存関係

シノニム・モードでインポートする際の作業オブジェクトの他のオブジェクトへの依存関係

マスター・リポジトリのオブジェクトへの依存関係

- (親/子)フォルダ: このマッピングを保持するフォルダは、最初にインポートする必要があります。

- (参照)モデル/サブモデル: マッピングで参照されるデータストア定義を保持するモデル/サブモデルはすべて、最初にインポートする必要があります。属性、データ型、主キー、外部キー(参照)、条件を含むデータストア定義は、エクスポートされたマッピングで使用している定義と完全に同じである必要があります。

- (参照)マッピング内で使用されるグローバル変数、順序および関数は、最初にインポートする必要があります。

- (参照)マッピング内で使用されるローカル変数、順序および関数は、最初にインポートする必要があります。

- (参照)マッピング内で参照されるナレッジ・モジュールは、最初にインポートする必要があります。

- (参照)現在のマッピングでソースとして使用されるマッピングは、最初にインポートする必要があります。

- テクノロジ・コード

- コンテキスト・コード

- 論理スキーマ名

- データ型コード

- マッピングの最適化コンテキストの物理サーバー名

インポート・モード

Oracle Data Integratorでは、いくつかのモードを使用して、オブジェクト、トポロジまたはリポジトリをインポートできます。

この項の内容を慎重に検討して、使用するインポート・タイプを決定してください。

インポート・タイプ

説明

複製

このモードでは、(新しいGUIDおよび内部IDが付いた)新規オブジェクトをターゲット・リポジトリに作成し、エクスポート・ファイルのすべての要素を挿入します。
レガシー互換性モードのリポジトリでは、この新しいオブジェクトのIDは、作成されるリポジトリ(ターゲット・リポジトリ)のIDに基づきます。これは、通常の12cリポジトリには適用されません。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は、新規の親IDに一致するように再計算されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

このモードは、「新しい」要素を挿入するためのモードであることに注意してください。

「複製」モードは、オブジェクトをターゲット・リポジトリに複製するために使用します。あるリポジトリから別のリポジトリにオブジェクトを転送する場合は、オブジェクトの新しいバーションが出荷される可能性や、更新を行う可能性を考慮して、3つのシノニム・モードを使用するほうが適切です。

このインポート・タイプは、マスター・リポジトリをインポートする場合は使用できません。既存のリポジトリのエクスポートを使用して新しいマスター・リポジトリを作成するには、マスター・リポジトリ・インポート・ウィザードを使用します。

シノニム・モードINSERT

同じオブジェクト(GUIDが同じ)をターゲット・リポジトリに挿入しようとします。元のオブジェクトGUIDは保持されます。
同じタイプと同じ内部IDのオブジェクトがすでに存在している場合は、何も挿入されません。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は保持されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

着信属性のいずれかが参照制約に違反している場合、インポート操作は中断され、エラー・メッセージが表示されます。

セッションをインポートできるのは、このモードのみです。

シノニム・モードUPDATE

リポジトリ内の同じオブジェクト(GUIDが同じ)を変更しようとします。
このインポート・タイプでは、ターゲット・リポジトリにすでに存在しているオブジェクトが、エクスポート・ファイルの内容で更新されます。

オブジェクトが存在しない場合、オブジェクトはインポートされません。

このインポート・タイプでは、リポジトリ存在するがエクスポート・ファイルに存在しない子オブジェクトは削除されません。たとえば、変数があるプロジェクトがターゲット・リポジトリにあり、このプロジェクトを変数がないものに置換する場合、このモードでは、プロジェクト名などは更新されますが、プロジェクト内の変数は削除されません。このような場合は、「シノニム・モードINSERT_UPDATE」を使用する必要があります。

シノニム・モードINSERT_UPDATE

ターゲット・リポジトリにGUIDが同一のODIオブジェクトが存在しない場合、このインポート・タイプでは、エクスポート・ファイルの内容で新規オブジェクトが作成されます。すでに存在しているオブジェクト(GUIDが同一)は更新され、新規オブジェクトは挿入されます。
既存の子オブジェクトは更新され、存在しない子オブジェクトは挿入されます。さらに、リポジトリ内に存在するがエクスポート・ファイルに存在しない子オブジェクトは削除されます。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は保持されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

子コンポーネントを含まずにエクスポートが実行された場合、このインポート・タイプはお薦めできません。このインポート・モードでは、既存のオブジェクトのサブコンポーネントがすべて削除されます。

置換のインポート

このインポート・タイプでは、ターゲット・リポジトリにすでに存在しているオブジェクトが、インポート・ファイルで指定したタイプと同じオブジェクト・タイプのオブジェクトに置換されます。
このインポート・タイプでのサポート対象は、シナリオ、ナレッジ・モジュール、アクションおよびアクション・グループのみで、すべての子オブジェクトが、インポートしたオブジェクトの子オブジェクトに置換されます。

「置換のインポート」モードを使用する際は、次のことに注意してください。

マッピングで使用されるKMなど、別のODIコンポーネントでオブジェクトが現在使用されている場合、この関係はインポートの影響を受けず、マッピングではプロジェクト内のこの新しいKMが自動的に使用されます。

警告:

- ナレッジ・モジュールを別のナレッジ・モジュールで置換する場合、Oracle Data Integratorでは、古いモジュールのオプションと名前が一致するオプションを使用して新規モジュールのオプションが設定されます。新規オプションは、デフォルト値に設定されます。マッピングでこれらのオプションの値を確認することをお薦めします。

- 本質的に異なるKMで現在のKMを置換すると、問題が発生する可能性があります。新規KMを使用してマッピングの設計と実行を確認することをお薦めします。

インポート/エクスポートのヒント

この項では、インポートおよびエクスポート操作のヒントを説明します。

リポジトリID

ODI 11gオブジェクトをインポートする場合は、アップグレード・キーを使用して、レガシー内部IDに基づいたGUIDを計算します。ODI Studioからインポートする場合、インポートの開始時に、インポート・ファイルが12c以前のファイルであることが判別されたときに、アップグレード・キーが尋ねられます。インポートが対話形式でない場合(つまり、コマンド行から実行する場合)、インポートでアップグレード・キーが必要であるが指定されていない場合は、エラーがスローされます。詳細は、第9章「互換性モードの使用」を参照してください。

インポート時に、オブジェクトがGUIDにより照合されます。一致が見つかった場合、そのオブジェクトはターゲット・リポジトリの一致したオブジェクトの内部IDを使用します。一致が見つからなかった場合の動作は、次のとおりです。

- ターゲット・リポジトリがレガシーID互換でない場合は、新しいIDが割り当てられます。

- ターゲット・リポジトリがレガシーID互換の場合は、インポート・ファイルのソース・オブジェクトのIDが使用されます。

- インポートがDUPLICATIONモードである場合、新しい内部IDが常に割り当てられます。

エクスポート/インポート・レポート

エクスポートまたはインポートの操作が完了するたびにレポートが表示されます。このレポートを慎重に調べて、インポート・プロセスで発生したエラーを確認することをお薦めします。

このレポートには、実行したエクスポートまたはインポート操作に応じて、たとえば、次のような詳細が提供されます:

- インポート・タイプ

- インポートしたオブジェクト:インポートしたオブジェクトごとに、オブジェクト・タイプ、元のオブジェクト名、インポートで使用したオブジェクト名、元のID、およびインポート後に再計算された新しいID/GUIDが表示されます。

- 削除したオブジェクト:削除したオブジェクトごとに、オブジェクト・タイプ、オブジェクト名、および元のID/GUIDが表示されます。

- 作成した欠落参照: インポート後に検出された欠落参照のリストが表示されます。

- 修正した欠落参照: インポート中に修正した欠落参照のリストが表示されます。

スマート・エクスポートまたはスマート・インポート操作の完了後に表示されるレポートには、たとえば、無視されたオブジェクト、マージされたオブジェクト、上書きされたオブジェクトなど、エクスポートまたはインポート時のオブジェクトに対する処理内容が表示されます。

インポート・レポートは、.xmlファイルまたは.htmlファイルとして保存できます。インポート・レポートを保存するには、「保存」をクリックします。

欠落参照

欠落参照を回避するために、スマート・エクスポートおよびスマート・インポート機能またはソリューションを使用して依存関係を管理してください。詳細は、「スマート・エクスポートおよびスマート・インポート」および「ソリューションの使用」を参照してください。

インポート・タイプ

インポート・タイプは慎重に選択してください。詳細は、「インポート・モード」を参照してください。

オブジェクトのエクスポートおよびインポート

Oracle Data Integratorオブジェクトのエクスポートおよびインポートは、異なるリポジトリ間でのオブジェクトの転送を意味します。

Oracle Data Integratorオブジェクトをエクスポートするときは、XMLエクスポート・ファイルが作成されます。「オブジェクト間の関係」で説明するように、ODIオブジェクトには依存関係があります。この依存関係はXMLエクスポート・ファイルにエクスポートされます。

このXMLファイルの内容は、使用するエクスポート方法によって異なります。

- 子コンポーネントを伴うオブジェクトのエクスポート

- 子コンポーネントを伴わないオブジェクトのエクスポート

どちらを選択するかは目的によって決まります。部分的なエクスポートが必要な場合は、子コンポーネントを伴わないエクスポートを使用します。

複数のODIオブジェクトのエクスポート機能は、オブジェクトの同じセットを定期的にエクスポートする場合に便利です。

エクスポートを実行した後は、要件に適したインポート戦略を選択することが非常に重要です。

スマート・エクスポートおよびスマート・インポート機能は、軽量で一貫したエクスポートおよびインポートのメカニズムです。この機能は、単一または複数のODIオブジェクトのエクスポートおよびインポートをサポートします。エクスポートまたはインポート時に発生する一般的な多くの問題を回避するために、この機能を使用することをお薦めします。

この項には次のトピックが含まれます:

- 子コンポーネントを伴うオブジェクトのエクスポート

- 子コンポーネントを伴わないオブジェクトのエクスポート

- 部分的なエクスポート/インポート

- 1つのODIオブジェクトのエクスポート

- 複数のODIオブジェクトのエクスポート

- オブジェクトのインポート

- スマート・エクスポートおよびスマート・インポート

子コンポーネントを伴うオブジェクトのエクスポート

これは、オブジェクトをエクスポートする際の最も一般的なオプションです。このオプションでは、現在のオブジェクトとともにそのすべてのサブコンポーネントもエクスポートできます。

オブジェクトを子コンポーネントとともにエクスポートすると、すべてのコンテナ依存オブジェクト(直接の親/子関係があるオブジェクト)もエクスポートされます。参照先オブジェクトはエクスポートされません。

たとえば、プロジェクトとその子コンポーネントをエクスポートする場合、エクスポートには、プロジェクト定義とともに、そのプロジェクトに含まれるすべてのオブジェクト(フォルダ、マッピング、プロシージャ、パッケージ、ナレッジ・モジュール、変数、順序、関数など)が含まれます。ただし、「オブジェクト間の関係」ですでに説明したように、データストアや属性など、プロジェクトの外部にある参照先の依存オブジェクトはエクスポートに含まれません。これらのオブジェクトの数値内部ID参照がエクスポートされます。また、エクスポート・ファイル内の特別なSnpFKXRefオブジェクトを使用して、参照先オブジェクトのGUIDもエクスポートされます。

子コンポーネントを伴わないオブジェクトのエクスポート

このオプションは、インポート・プロセスの制御が必要な特殊な状況の場合に便利です。このオプションでは、オブジェクトの最上位レベルの定義のみがエクスポートされ、そのサブオブジェクトはエクスポートされません。

たとえば、子を伴わずにモデルをエクスポートした場合、このモデルを新規リポジトリにインポートすると、インポートにはモデル定義のみが含まれ、基礎となるサブモデルやデータストアは含まれません。

部分的なエクスポート/インポート

数千のマッピングを含む大規模なプロジェクトから、一部のマッピングのみを別の作業リポジトリにエクスポートする場合は、プロジェクト全体をエクスポートしてからインポートするか、または、次に説明するように部分的なエクスポート/インポートを手動で実行できます。

1. プロジェクトのサブ項目で参照されるすべてのモデルをエクスポートし、シノニム・モードで新規リポジトリにインポートしてモデルのGUIDを保持します。

2. 子を伴わずにプロジェクトをエクスポートし、シノニム・モードでインポートします。これにより、新規リポジトリに空のプロジェクトが作成されます(GUIDはソースと同じ)。

3. 任意の第1レベルのフォルダを子を伴わずにエクスポートし、シノニム・モードでインポートします。空のフォルダが新規リポジトリに作成されます。

4. エクスポートするすべてのオブジェクトで参照されるマーカー、ナレッジ・モジュール、変数、順序などをすべてエクスポートし、シノニム・モードでインポートします。シノニム・モードまたは複製モードの詳細は「インポート・モード」を参照し、ナレッジ・モジュールをシノニム・モードでインポートする際の特別な注意についてはオブジェクトGUIDおよび内部IDへの影響に関する項を参照してください。

5. 最後に、目的のマッピングをエクスポートし、シノニム・モードで新規リポジトリにインポートします。

1つのODIオブジェクトのエクスポート

1つのOracle Data Integratorオブジェクトをエクスポートすることは、1つの単独のODIオブジェクトをあるリポジトリから別のリポジトリに転送することを意味します。

Oracle Data Integratorからオブジェクトをエクスポートするには:

1. 適切なOracle Data Integratorナビゲータで、エクスポートするオブジェクトを選択します。

2. オブジェクトを右クリックし、「エクスポート」を選択します。
このメニュー項目が表示されない場合、このタイプのオブジェクトにエクスポート機能はありません。

3. 「エクスポート」ダイアログで、表18-2の説明に従ってエクスポート・パラメータを設定します。

表18-2 オブジェクトのエクスポート・パラメータ

プロパティ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。

エクスポート名

エクスポートに付けられる名前。

子コンポーネント・エクスポート

このオプションを選択すると、エクスポート対象のオブジェクトにリンクされたオブジェクトもエクスポートされます。これらのオブジェクトは、ツリー内でエクスポートされたオブジェクトの下に表示されるオブジェクトです。このオプションは選択されたままにしておくことをお薦めします。詳細は、「子コンポーネントを伴うオブジェクトのエクスポート」を参照してください。

ロード計画をエクスポートする場合は、このオプションを選択してもシナリオはエクスポートされません。

既存のファイルを警告なしで置換します

このオプションを選択すると、既存のファイルがエクスポートのファイルで置換されます。エクスポート・ファイルと同じ名前のファイルがすでに存在している場合、そのファイルはエクスポート・ファイルによって上書きされます。

暗号化

これらのフィールドでは、エクスポート済オブジェクトに含まれる機密データの暗号化に使用されるエクスポート・キーを入力できます。詳細は、「エクスポート・キー」を参照してください。

エクスポート・キー

エクスポート中に必要な任意の機密データを暗号化するためのAES KEYを指定します。

エクスポート・キー文字列は最小8文字および最長100文字です。少なくとも1つの特殊文字(@、#、$、%、+、/、=)または数字、および少なくとも1つの小文字または大文字のアルファベット文字が必要です。

エクスポート・キーの確認

エクスポート・キーを再入力します。

エクスポート・キーの保存

選択した場合、将来のエクスポートに備えてエクスポート・キーは保存されます。

拡張オプション

この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

XMLバージョン

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのパラメータxml versionの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

文字セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

Java文字セット

ファイル生成に使用されるJava文字セット。

少なくとも「エクスポート名」は指定する必要があります。

4. 「OK」をクリックします。

オブジェクトがXMLファイルとして指定した場所にエクスポートされます。

複数のODIオブジェクトのエクスポート

「複数オブジェクトをエクスポート」アクションを使用して、一度に1つ以上のオブジェクトをエクスポートできます。これにより、複数のODIオブジェクトを単一のzipファイルまたはディレクトリにエクスポートしたり、オブジェクトの既存のリストを再利用してエクスポートすることができます。

複数のオブジェクトをエクスポートおよびインポートするためのさらに強力なメカニズムとして、ソリューション、およびスマート・エクスポートおよびスマート・インポートがあります。詳細は、「ソリューションの使用」または「スマート・エクスポートおよびスマート・インポート」を参照してください。

複数のオブジェクトを一度にエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「複数オブジェクトをエクスポート」を選択します。

3. 「OK」をクリックします。

4. 「複数オブジェクトをエクスポート」ダイアログで、表18-2の説明に従ってエクスポート・パラメータを指定します。
オブジェクトは、.xmlファイルにして直接ディレクトリにエクスポートするか、.xmlファイルが含まれるzipファイルにしてエクスポートします。zipファイルを生成する場合は、「ZIPファイルとして保存」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. エクスポートするオブジェクトのリストを次のように指定します。

1. Oracle Data Integratorのナビゲータから複数のオブジェクトをエクスポート・リストにドラッグ・アンド・ドロップします。異なるナビゲータから複数のオブジェクトを一度にエクスポートできることに注意してください。

2. 「オブジェクトのリストをロード」をクリックして、以前に保存したオブジェクトのリストをロードします。これは、オブジェクトの同じリストを定期的にエクスポートする場合に便利です。

3. オブジェクトの現在のリストを保存するには、「エクスポート・リストを保存」をクリックしてファイル名を指定します。ファイルがすでに存在している場合は、警告なしに上書きされます。

6. 「OK」をクリックしてエクスポートを開始します。

複数のオブジェクトを一度にインポートするには、ソリューションまたはスマート・インポートを使用する必要があります。詳細は、「ソリューションの使用」および「スマート・エクスポートおよびスマート・インポート」を参照してください。

オブジェクトのインポート

インポートおよびエクスポートによって、オブジェクト(マッピング、ナレッジ・モジュール、モデルなど)をあるリポジトリから別のリポジトリに転送できます。

ナレッジ・モジュールをインポートする場合は、インポート戦略を慎重に選択してください(ナレッジ・モジュールの有効範囲に応じてインポート戦略が異なる可能性があります)。詳細は、「プロジェクトおよびグローバル・ナレッジ・モジュール」を参照してください。

この項には次のトピックが含まれます:

- ODIオブジェクトのインポート

- 12c環境への11gオブジェクトのインポート

- プロジェクトKMのインポート

- 置換モードでのKMのインポート

- グローバル・ナレッジ・モジュールのインポート

ODIオブジェクトのインポート

Oracle Data Integratorのオブジェクトをインポートするには:

1. ナビゲータで、オブジェクトのインポート先となるオブジェクトまたはオブジェクト・ノードを選択します。

2. オブジェクトを右クリックし、「インポート」を選択して、インポートするオブジェクトのタイプを選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、「インポート・モード」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

4. 「OK」をクリックします。

XML形式のファイルが作業リポジトリにインポートされ、インポートしたオブジェクトがOracle Data Integratorのナビゲータに表示されます。

オブジェクトのインポート先となる親またはノードは、使用するインポート・タイプによって異なります。「複製」モードを使用すると、オブジェクトは、インポート・オプションが選択された場所にインポートされます。シノニム・モードでのインポートの場合、オブジェクトは、インポート・ファイルでオブジェクトの親IDによって指定された親の下にインポートされます。

12c環境への11gオブジェクトのインポート

バージョニング可能な11gオブジェクトは、12c ODI環境にインポートできます。

次のオブジェクトはバージョンとしてチェック・インでき、インポートできます。

- プロジェクト、フォルダ

- パッケージ、シナリオ

- インタフェース、プロシージャ、ナレッジ・モジュール

- 順序、ユーザー関数、変数

- モデル、モデル・フォルダ

- ソリューション

- ロード計画

オブジェクトのインポート時に、アップグレード・キーを定義する必要があります。ODIは、このキーを使用して、オブジェクトの一意のGUIDを生成します。

注意:
11gインタフェースは、SYNONYM INSERTモードまたはDUPLICATIONモードでのみ12cリポジトリにインポートできます。これは、インタフェースがマッピングに変換されるときに複雑な変換が行われるためです。

関連項目:
リポジトリのアップグレードおよびアップグレード・キーの詳細は、『Oracle Data Integratorのアップグレード』のODIアップグレード・キーの選択に関する項を参照してください。

プロジェクトKMのインポート

Oracle Data Integratorプロジェクトにナレッジ・モジュールをインポートするには:

1. デザイナ・ナビゲータで、KMをインポートするプロジェクトを選択します。

2. プロジェクトを右クリックし、「インポート」→「ナレッジ・モジュールのインポート」の順に選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」を「複製」に設定します。詳細は、「インポート・モード」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするナレッジ・モジュール・ファイル(1つまたは複数)をリストから選択します。

4. 「OK」をクリックします。

ナレッジ・モジュールが作業リポジトリにインポートされ、プロジェクトの「ナレッジ・モジュール」ノードの下に表示されます。

置換モードでのKMのインポート

通常、ナレッジ・モジュールは、「複製」モードで新規プロジェクトにインポートされます。

グローバルKMまたはプロジェクトのKMを別のKMで置換し、その新しいKMをすべてのマッピングで自動的に使用する場合は、「置換のインポート」モードを使用する必要があります。

ナレッジ・モジュールを置換モードでインポートするには:

1. 置換するナレッジ・モジュール・ファイルを選択します。

2. ナレッジ・モジュールを右クリックし、「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、ナレッジ・モジュール・エクスポート・ファイルを指定します。

4. 「OK」をクリックします。

現在のナレッジ・モジュールが新規ナレッジ・モジュールで置換されます。

警告:

Oracle Data Integratorでナレッジ・モジュールを別のナレッジ・モジュールで置換すると、古いモジュールのオプションと一致するオプション名を使用して新規モジュールのオプションが設定されます。新規オプションは、デフォルト値に設定されます。

マッピングでこれらの新規オプションの値を確認するとともに、新規KMを使用してマッピングの設計と実行も確認することをお薦めします。

詳細は、「インポート・モード」の「置換のインポート」モードの説明を参照してください。

グローバル・ナレッジ・モジュールのインポート

Oracle Data Integratorにグローバル・ナレッジ・モジュールをインポートするには:

1. ナビゲータの「グローバル・オブジェクト」アコーディオンで「グローバル・ナレッジ・モジュール」ノードを選択します。

2. 右クリックして「ナレッジ・モジュールのインポート」を選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、「インポート・モード」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

4. 「OK」をクリックします。

5. 要求されたら、このオブジェクトがエクスポートされたときに使用されたエクスポート・キーを入力します。エクスポート・キーを入力しない場合、暗号化された機密(暗号)データはインポート済オブジェクトから削除されます。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

すべてのプロジェクトにグローバルKMが表示されます。

スマート・エクスポートおよびスマート・インポート

壊れているリンク、IDの競合など、エクスポートまたはインポート時に発生する一般的な多くの問題を回避するために、スマート・エクスポートおよびスマート・インポート機能を使用することをお薦めします。スマート・エクスポートおよびスマート・インポート機能は、様々な優れた機能を提供する軽量で一貫したエクスポートおよびインポートのメカニズムです。

スマート・エクスポートは、オブジェクトとそのオブジェクト依存関係すべてを自動的にエクスポートします。一貫したリポジトリのサブセットを作成している間、すべてのオブジェクト依存関係はOracle Data Integratorによって自動的に管理されるため、スマート・エクスポートは、一貫した軽量のオブジェクト・セットをリポジトリ間で移動する場合や、変更された一連のオブジェクトのみを含める場合(たとえば、パッチを適用する場合)に特に便利です。

スマート・インポートでは、次が提供されています:

- インポート対象オブジェクトとリポジトリ内にすでにあるオブジェクト間の自動化されたカスタマイズ可能なオブジェクト照合ルール

- 一致するオブジェクトがリポジトリにあった場合にインポート対象オブジェクトに適用する一連のアクション

- スマート・インポート時に検出された壊れているリンクや競合ごとにデフォルトで使用するソリューションを提示する、プロアクティブな問題検出と解決策

スマート・エクスポートの実行

スマート・エクスポートを実行するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「スマート・エクスポート」を選択します。

注意:
このオプションは、作業リポジトリに接続している場合にのみ使用可能です。

3. 「OK」をクリックします。

4. 「スマート・エクスポート」ダイアログで、エクスポート・パラメータを次のように指定します:

- 「エクスポート名」フィールドに、エクスポートの名前を入力します(必須)。デフォルトはSmartExport.xmlです。

- オブジェクトは、ディレクトリの単一の.xmlファイルに直接にエクスポートされるか、単一の.xmlファイルを格納したzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルとして保存」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

- オプションで、機密データの暗号化に使用するエクスポート・キーを入力します。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

- オプションで、「エンコーディング・オプション」セクションでXML出力ファイル形式をカスタマイズします。デフォルト値のままにしておくことをお薦めします。

プロパティ

説明

XML文字セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。
<?xml version="1.0" encoding="ISO-8859-1"?>

Java文字セット

ファイル生成に使用されるJava文字セット。

- 「依存関係」セクションで、Oracle Data Integratorのナビゲータから左側の「選択したオブジェクト」リストに、スマート・エクスポートに追加するオブジェクトをドラッグ・アンド・ドロップします。異なるナビゲータから複数のオブジェクトを一度にエクスポートできることに注意してください。
エクスポート対象オブジェクトが、サポートするために必要な関連するすべての親オブジェクトおよび子オブジェクトとともにツリーに表示されます。

必要に応じて、この手順を繰り返します。

注意:

- エクスポートにショートカットが含まれている場合は、ショートカットをマテリアライズするかどうかを指定します。「いいえ」を選択すると、ショートカットとベース・オブジェクトの両方がエクスポートされます。

- 太字のオブジェクト名は、このオブジェクトがスマート・エクスポートに明示的に追加されたことを示します。削除できるのは、太字で表示されたオブジェクトのみです。オブジェクトを削除すると、削除したオブジェクトの子オブジェクトおよび依存オブジェクトも削除されます。明示的に追加したオブジェクトの子オブジェクトも太字で表示され、削除できることに注意してください。エクスポート・ツリーからオブジェクトを削除するには、オブジェクトを右クリックして「オブジェクトの削除」を選択します。削除したオブジェクトが別のオブジェクトに依存している場合は、ツリーに残りますが、標準(太字ではない)書体で表示されます。

- グレー表示されているオブジェクト名は、このオブジェクトがエクスポートされない依存オブジェクト(テクノロジなど)であることを示します。

- オプションで、エクスポートするオブジェクトのリストを変更します。単一のオブジェクトの削除、すべてのオブジェクトの削除、リリース・タグによるオブジェクトの追加、およびショートカットの追加を実行できます。詳細は、「エクスポートするオブジェクトのリストの変更」を参照してください。

- ショートカットなどの相互参照オブジェクトがある場合は、右側の「依存関係」リストに表示されます。親オブジェクトは「使用」ノードに表示されなくなり、子オブジェクトは「使用者」ノードに表示されなくなります。

5. 「エクスポート」をクリックして、エクスポート・プロセスを開始します。

スマート・エクスポートにより、「選択したオブジェクト」リストのすべてのオブジェクトが含まれている単一のファイルが生成されます。このエクスポート・ファイルは、スマート・インポートの入力ファイルとして使用できます。詳細は、「スマート・インポートの実行」を参照してください。

スマート・エクスポートの結果は、スマート・エクスポート・レポートで確認できます。

「スマート・エクスポート」ツールバー

「スマート・エクスポート」ツールバーでは、エクスポートするオブジェクトを管理したり、依存関係を表示するためのツールが提供されます。図18-3は、様々なツールバー・コンポーネントの詳細を示しています。

表18-3 「スマート・エクスポート」ツールバー

アイコン

名前

説明

検索

「選択したオブジェクト」リストまたは「依存関係」リストでオブジェクトを検索します。

すべて展開

「選択したオブジェクト」リストまたは「依存関係」リストのすべてのツリー・ノードを展開します。

すべて縮小

「選択したオブジェクト」リストまたは「依存関係」リストのすべてのツリー・ノードを閉じます。

すべてクリア

リストからすべてのオブジェクトを削除します。警告: リリース・タグとマテリアライズの選択も削除されます。

リリース・タグによりオブジェクトを追加

「選択したオブジェクト」リストにすでにあるオブジェクトと同じリリース・タグのオブジェクトをすべて追加します。

エクスポートするオブジェクトのリストの変更

エクスポートするオブジェクトのリストを変更する場合は、次のアクションを実行できます:

- リストから1つのオブジェクトを削除する
「選択したオブジェクト」リストから削除できるのは、スマート・エクスポートに明示的に追加したオブジェクト(太字のオブジェクト)のみです。

1つのオブジェクトを削除するには:

1. 「選択したオブジェクト」リストで、削除するオブジェクトを選択します。

2. 右クリックして「オブジェクトの削除」を選択します。

オブジェクトおよびその依存関係が「選択したオブジェクト」リストから削除され、スマート・エクスポートの対象外となります。

注意:
削除するオブジェクトがエクスポートする別のオブジェクトの依存オブジェクトである場合、そのオブジェクトはリストに残りますが太字ではなくなります。

- リストからすべてのオブジェクトを削除する
「選択したオブジェクト」リストからすべてのオブジェクトを削除するには、「スマート・エクスポート」ツールバーの「すべてクリア」を選択します。

注意:
このアクションを実行すると、リリース・タグとマテリアライズの選択も削除されます。

- リリース・タグを使用してオブジェクトを追加する
特定のリリースのフォルダまたはモデル・フォルダを追加するには:

1. 「スマート・エクスポート」ツールバーの「リリース・タグによりオブジェクトを追加」を選択します。
「リリース・タグ選択」ダイアログが開きます。

2. 「リリース・タグ選択」ダイアログで、「リリース・タグ」リストからリリース・タグを選択します。このリリース・タグのすべてのオブジェクトがスマート・エクスポートに追加されます。これらのオブジェクトをスマート・エクスポートに個別に追加する必要はありません。
「リリース・タグ選択」ダイアログに、スマート・エクスポートにすでに追加されているリリース・タグのリストが表示されます。

3. 「OK」をクリックし、選択したリリース・タグのオブジェクトをスマート・エクスポートに追加します。

「選択したオブジェクト」リストのオブジェクト名の後にリリース・タグの名前が表示されます。

注意:
リリース・タグがある「選択したオブジェクト」リストにフォルダまたはモデル・フォルダを追加する場合は、「確認」ダイアログで「OK」をクリックして、指定のリリースの全オブジェクトをスマート・エクスポートに自動的に追加するように選択できます。

- ショートカットを追加する
スマート・エクスポートにショートカットを追加する場合は、ショートカットのマテリアライズを選択できます。スマート・エクスポートに追加したショートカットをマテリアライズしないように選択すると、ショートカットおよびそのすべての依存オブジェクト(ベース・オブジェクトなど)がエクスポートされます。ショートカットをマテリアライズするように選択すると、ショートカットがマテリアライズされ、ショートカットを介して参照されるベース・オブジェクトは対象外となります。

スマート・インポートの実行

注意:
ODI 11gオブジェクトのスマート・インポートを実行する場合は、オブジェクトの新しいGUIDの生成に使用されるアップグレード・キーを指定する必要があります。ODI Studioでは、12c以前のエクスポート・ファイルのインポートが検出された場合、このアップグレード・キーの入力が要求されます。詳細は、第9章「互換性モードの使用」を参照してください。

スマート・インポートを実行するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「スマート・インポート」を選択します。

3. 「OK」をクリックします。
スマート・インポート・ウィザードが開きます。

4. 「ステップ1 - ファイルの選択」(最初の画面)で、インポート設定を次のように指定します:

1. 「ファイルの選択」フィールドに、インポートするスマート・エクスポート・ファイルの場所を入力します。

2. オプションで、「レスポンス・ファイル」フィールドからレスポンス・ファイルを選択し、すべてのフィールドをプリセットして前のスマート・インポート・ウィザードを再実行するようにします。

注意:
レスポンス・ファイルからのアクションは、Oracle Data Integratorでインポート中の競合が検出された場合のみ使用されます。競合がない場合、デフォルトのアクションが使用されます。

3. 「次」をクリックして、スマート・インポート・ウィザードの次のステップに移動します。
エクスポート・キーを使用してエクスポートされたファイルに機密(暗号)データが含まれている場合、「次」をクリックすると、「エクスポート・キーの入力」ダイアログが表示されます。暗号化された暗号データをインポートに含める場合は、エクスポート・キーを入力します。また、「暗号データなしでファイルをインポート」を有効にし、エクスポート・キーのフィールドを空のままにすると、非暗号データのみがインポートされます。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

Oracle Data Integratorにより、インポートする潜在的な各オブジェクトと一致するオブジェクトがリポジトリに含まれているかどうかを検証する照合プロセスが起動されます。

5. 「ステップ2 - インポート・アクション」(2番目の画面)で、照合プロセスの結果を確認し、発生した問題を修正します。この画面の1行目に、検出された問題の件数が表示されます。
スマート・インポート・ウィザードにより、各フィールドのデフォルト値が提示されることに注意してください。

1. 「オブジェクト一致の詳細」セクションで「インポート・オブジェクト」列のノードを展開し、このスマート・インポートでインポートできるオブジェクトに移動します。

2. 「アクション」列で、インポート操作時にオブジェクトに対して実行するアクションを選択します。表18-4に、使用可能な値を示します。

表18-4 インポート時のアクション

アクション

説明

マージ

コンテナの場合は、ターゲット・コンテナをソース・コンテナで上書きし、マージするために子をループすることを意味します。それぞれの子には異なるアクションを指定できます。インポート・ファイルに存在しない子のFCOは削除されません。「マージ」アクションは、データストアに対しても使用でき、データストアはSCOレベルでマージされます。

上書き

ターゲット・オブジェクトをソース・オブジェクトで上書きします。インポート後に残っている子オブジェクトは、ソース・オブジェクトからインポートされた子オブジェクトです。これは、すべての子オブジェクトにあてはまります(あるプロジェクトで別のプロジェクトを上書きすると、そのプロジェクトのすべてのフォルダが置換され、余分なフォルダは削除されます)。

コピーの作成

名前/ID/コードが同じ既存のオブジェクトとの競合を回避するために、必要なフィールド名の変更やフィールドの変更を含めてソース・オブジェクトを作成します。このアクションにより、インポートされるオブジェクトとの間の一貫性および関係が維持されます。

再使用

オブジェクトはインポートしませんが、そのオブジェクトに関連するすべてのオブジェクトをインポートし、ターゲット・オブジェクトにリンクする機能があります。基本的に、このアクションは一致するターゲット・オブジェクトでソース・オブジェクトを上書きすることに相当します。

無視

ソース・オブジェクトを処理しません。

3. 「リポジトリ・オブジェクト」列で、必要なリポジトリ・オブジェクトを選択します。これは、インポート・オブジェクトに最も一致するリポジトリ・オブジェクトです。

4. 照合プロセスで問題(壊れているリンク、コードの競合など)が検出された場合は、「問題」列に警告アイコンが表示されます。問題の詳細は、問題の詳細セクションに表示されます。

注意:
クリティカルな問題をすべて修正するまで、「次」ボタンは使用できません。

5. 問題の詳細セクションの表には、照合プロセスで検出された問題のリストが表示されます。問題を修正するには、「アクション」列で、実行するアクションを選択します。表18-5で、実行可能なアクションについて説明します。

表18-5 問題を修正するために実行可能なアクション

アクション

説明

無視

クリティカルな問題に対しては使用できません

変更

名前またはコードの衝突が検出されている場合は、「修正」フィールドに新しい値を指定します。

注意: ODIで「別のコンテキストがすでにデフォルト・コンテキストとして設定されています。」というメッセージが表示される場合、「修正」の値を0に設定します。

変更しない

値が変更された問題の場合は、一致しているターゲット・オブジェクトの値が保持されます。

リンクの修正

壊れているリンクの場合は、「修正」フィールドで「検索」をクリックします。

注意:
Oracle Data Integratorには、問題ごとにデフォルトで使用するソリューションが用意されています。ただし、インポート・アクションに対する選択によっては、実際のインポート・プロセスでも欠落参照となる可能性があります。

6. 「修正」列で、修正を指定します。たとえば、壊れているリンクの場合は、「検索」をクリックし、「壊れたリンク・ターゲット・オブジェクト選択」ダイアログでターゲット・オブジェクトを選択します。

注意:

7. 「次」をクリックして、スマート・インポート・ウィザードの次のステップに移動します。

6. 「ステップ3 - サマリー」(3番目の画面)で、インポート・ファイル名および発生した問題を確認します。

1. 「ファイルの選択」フィールドで、インポート・ファイル名を確認します。

2. スマート・インポートに未解決の警告が存在する場合は、この画面に表示されます。クリティカルな問題は、この画面には表示されません。修正するには、「戻る」をクリックします。

3. オプションで、「レスポンス・ファイルの保存」を選択して、別のインポートで再使用できるレスポンス・ファイルを作成し、すべてのフィールドをプリセットしてこのスマート・インポート・ウィザードを再実行できるようにします。

4. 「終了」をクリックし、スマート・インポートを起動して、スマート・インポート・ウィザードを終了します。

スマート・インポートの結果は、スマート・インポート・レポートで確認できます。

リポジトリ・レベルのエクスポート/インポート

リポジトリ・レベルでは、マスター・リポジトリや作業リポジトリをエクスポートおよびインポートできます。

マスター・リポジトリのエクスポートおよびインポート

マスター・リポジトリのエクスポート/インポート手順を実行すると、リポジトリ全体(トポロジ・ドメインおよびセキュリティ・ドメインを含む)をあるリポジトリから別のリポジトリに転送できます。

この操作は、エクスポートしたオブジェクトを既存のリポジトリにインポートする際、または新規マスター・リポジトリを作成する際に、トポロジ・ナビゲータで実行できます。

トポロジ・ナビゲータでのマスター・リポジトリのエクスポート

マスター・リポジトリのエクスポート時にエクスポートされるオブジェクトは、オブジェクト、メソッド、プロファイル、ユーザー、言語、バージョン(オプションが選択されている場合)、ソリューション(オプションが選択されている場合)、オープン・ツール、パスワード・ポリシー、エンティティ、リンク、フィールド、ルックアップ、テクノロジ、データ型、データ型の変換、論理エージェント、コンテキストおよび子オブジェクトです。

マスター・リポジトリをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「マスター・リポジトリをエクスポート」を選択します。

3. 「OK」をクリックします。

4. 「マスター・リポジトリのエクスポート」ダイアログで、表18-2「オブジェクトのエクスポート・パラメータ」の説明に従ってエクスポート・パラメータを設定します。
マスター・リポジトリおよびそのトポロジとセキュリティ設定は、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. リポジトリに格納されているオブジェクトのすべての格納済バージョンをエクスポートする場合は、「バージョンのエクスポート」を選択します。エクスポートするリポジトリのサイズを削減し、無関係なプロジェクト作業の転送を回避するには、このオプションの選択を解除できます。

6. リポジトリに格納されているすべての格納済ソリューションをエクスポートする場合は、「ソリューションのエクスポート」を選択します。同じ理由により、このオプションの選択を解除することもできます。

7. 「OK」をクリックします。

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

マスター・リポジトリのインポート

エクスポートされたマスター・リポジトリのオブジェクトを既存のマスター・リポジトリにインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「マスター・リポジトリをインポート」を選択します。

3. 「OK」をクリックします。

4. 「インポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。詳細は、「インポート・モード」を参照してください。

2. ファイルをフォルダからインポートするか、ZIPファイルからインポートするかを選択します。

3. ファイル・インポート・フォルダまたはzipファイルを入力します。

5. 「OK」をクリックします。

6. 要求されたら、このオブジェクトがエクスポートされたときに使用されたエクスポート・キーを入力します。エクスポート・キーを入力しない場合、暗号化された機密(暗号)データはインポート済オブジェクトから削除されます。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

これで、インポートしたオブジェクトがマスター・リポジトリに格納されます。

注意:
ソース・リポジトリとターゲット・リポジトリが同じ内部IDを持ち、リポジトリ・タイムスタンプが異なる場合、インポートは許可されません。12cリポジトリは一意のグローバルIDを持つため、このことは11g互換リポジトリでのみ発生する可能性があります。
ターゲット11g互換リポジトリに、ソース・リポジトリと同じ内部IDがある場合は、リポジトリを再番号付けできます。この操作の実行には注意が必要です。リスクの詳細は「内部識別子(ID)について」を、リポジトリを再番号付けする方法の詳細は「リポジトリの再番号付け」を参照してください。

以前のマスター・エクスポートを使用した新規マスター・リポジトリの作成

別のマスター・リポジトリのエクスポートを使用して新規マスター・リポジトリを作成するには:

1. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

2. 新規ギャラリの「カテゴリ」ツリーで、「ODI」を選択します。

3. 項目リストから、「マスター・リポジトリ・インポート・ウィザード」を選択します。

4. 「OK」をクリックします。
マスター・リポジトリ・インポート・ウィザードが表示されます。

5. 「データベース接続」で、次のようにパラメータを指定します。

- ログイン: マスター・リポジトリに対して作成した表の所有者のユーザーID/ログイン。

- JDBCドライバ: リポジトリをホストするテクノロジへのアクセスに使用するドライバ。

- JDBC URL: リポジトリをホストするデータ・サーバーの完全なパス。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

- ユーザー: 表の所有者のユーザーID/ログイン。

- パスワード: このユーザーのパスワード。

- DBAユーザー: データベース管理者のユーザー名

- DBAパスワード: このユーザーのパスワード

6. 「リポジトリ構成」で、次のようにパラメータを指定します。

- ID (レガシーID互換リポジトリのみをインポート): ODI 11gリポジトリをインポートする場合は、リポジトリのIDを指定する必要があります。レガシーID互換でないリポジトリをインポートする場合は、IDを指定する必要はありません。

- ZIPファイルを使用: 圧縮されたエクスポート・ファイルを使用する場合は、「ZIPファイルを使用」ボックスを選択し、「ZIPファイルのエクスポート」フィールドでマスター・リポジトリのエクスポートを含むファイルを選択します。

- エクスポート・パス: 圧縮されていないエクスポートを使用する場合は、「エクスポート・パス」フィールドでエクスポートを含むディレクトリを選択します。

- テクノロジ: リポジトリの基礎となるテクノロジをリストから選択します。

7. 「テスト接続」をクリックして、マスター・リポジトリへの接続をテストします。
「情報」ダイアログが開き、接続が確立されたかどうかが通知されます。

8. 「次へ」をクリックします。

9. パスワード記憶域の詳細を指定します。

- エクスポートに定義された構成を使用する場合は、「エクスポートに指定されたパスワード記憶域構成の使用」を選択します。

- エクスポートに定義された構成を使用しない場合は、「新規パスワード記憶域構成の使用」を選択し、次のオプションを選択します。

- パスワードをOracle Data Integratorリポジトリに格納する場合は、「内部パスワード記憶域」を選択します。

- JPS資格証明ストア・フレームワーク(CSF)を使用してデータ・サーバーおよびコンテキスト・パスワードを格納する場合は、「外部パスワード記憶域」を選択します。『Oracle Data Integratorの管理』のMBeanサーバー・パラメータに関する項の説明に従って、資格証明ストアにアクセスするためのMBeanサーバー・パラメータを指定します。

パスワード記憶域の詳細は、『Oracle Data Integratorの管理』の外部パスワード記憶域の設定に関する項を参照してください。

10. マスター・リポジトリ・インポート・ウィザードで「終了」をクリックして、入力内容を確認します。
エクスポート・キーを使用してエクスポートされたマスター・リポジトリのエクスポート済ファイルに機密(暗号)データが含まれている場合、「次」をクリックすると、「エクスポート・キーの入力」ダイアログが表示されます。暗号化された暗号データをインポートに含める場合は、エクスポート・キーを入力します。

マスター・リポジトリ・インポートのファイルが暗号データなしでエクスポートされた場合、または「暗号データなしでファイルをインポート」を有効にしてエクスポート・キーのフィールドを空のままにした場合、ODI SUPERVISORユーザーの新しいパスワードを作成するための新しいダイアログが表示されます。新しいパスワードを作成する必要があります。

エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

新規リポジトリが作成され、エクスポートしたコンポーネントがこのマスター・リポジトリにインポートされます。

トポロジおよびセキュリティ設定のエクスポート/インポート

トポロジまたはセキュリティ設定をエクスポートしてからインポートすると、異なるマスター・リポジトリ間でドメインを転送できます。

トポロジおよびセキュリティ設定のエクスポート

次のドメインをエクスポートできます。

- トポロジ: トポロジ全体(論理アーキテクチャと物理アーキテクチャ。ローカル・リポジトリ、データ・サーバー、ホスト、エージェント、一般アクション、テクノロジ、データ型、論理スキーマおよびコンテキストを含みます)。

- 論理トポロジ: テクノロジ(接続、データ型または言語情報)、論理エージェント、論理スキーマ、アクションおよびアクション・グループ。

- セキュリティ: オブジェクト、メソッド、ユーザー、プロファイル、権限、パスワード・ポリシーおよびホスト。

- 実行環境: テクノロジ、データ・サーバー、コンテキスト、一般アクション、ロード・バランス・エージェント、物理スキーマおよびエージェント。

トポロジ/セキュリティをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、次のいずれかを選択します:

- トポロジのエクスポート

- 論理トポロジのエクスポート

- セキュリティ設定のエクスポート

- 実行環境のエクスポート

3. 「OK」をクリックします。

4. 「エクスポート」ダイアログで、表18-2「オブジェクトのエクスポート・パラメータ」の説明に従ってエクスポート・パラメータを指定します。
トポロジおよびセキュリティ設定は、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. 「OK」をクリックします。

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

トポロジおよびセキュリティ設定のインポート

トポロジ・エクスポートをインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、次のいずれかを選択します:

- トポロジのインポート

- 論理トポロジのインポート

- セキュリティ設定のインポート

- 実行環境のインポート

3. 「OK」をクリックします。

4. 「インポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。詳細は、「インポート・モード」を参照してください。

2. トポロジ・エクスポートをフォルダからインポートするか、Zipファイルからインポートするかを選択します。

3. 「ファイル・インポート・ディレクトリ」を入力します。

5. 「OK」をクリックします。

6. 要求されたら、このオブジェクトがエクスポートされたときに使用されたエクスポート・キーを入力します。エクスポート・キーを入力しない場合、暗号化された機密(暗号)データはインポート済オブジェクトから削除されます。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

指定したファイルがマスター・リポジトリにインポートされます。

作業リポジトリのエクスポートおよびインポート

作業リポジトリをインポートまたはエクスポートすると、すべての作業リポジトリのオブジェクトをあるリポジトリから別のリポジトリに転送できます。

作業リポジトリのエクスポート

作業リポジトリをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「作業リポジトリのエクスポート」を選択します。

3. 「OK」をクリックします。

4. 「エクスポート」ダイアログで、表18-2「オブジェクトのエクスポート・パラメータ」の説明に従ってエクスポート・パラメータを設定します。
作業リポジトリおよびそのモデルとプロジェクトは、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. 「OK」をクリックします。

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

作業リポジトリのインポート

作業リポジトリをインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「作業リポジトリのインポート」を選択します。

3. 「OK」をクリックします。

4. 「インポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。詳細は、「インポート・モード」を参照してください。

2. 作業リポジトリをフォルダからインポートするか、Zipファイルからインポートするかを選択します。

3. 「ファイル・インポート・ディレクトリ」を入力します。

5. 「OK」をクリックします。

6. 要求されたら、このオブジェクトがエクスポートされたときに使用されたエクスポート・キーを入力します。エクスポート・キーを入力しない場合、暗号化された機密(暗号)データはインポート済オブジェクトから削除されます。エクスポート・キーの詳細は、「エクスポート・キー」を参照してください。

指定したファイルが作業リポジトリにインポートされます。

技術環境のエクスポート

この機能を使用すると、任意のディレクトリに技術環境の詳細を含むカンマ区切り(.csv)ファイルを生成できます。エクスポートには、作業環境の説明が含まれています。使用中のODIバージョンに関する情報、マスター・リポジトリと作業リポジトリ、およびエージェントとテクノロジに関する情報が含まれます。このエクスポートは、トラブルシューティングまたはサポート問題のときに必要になる場合があります。

このファイルの形式はカスタマイズできます。

技術環境ファイルを生成するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「技術環境のエクスポート」を選択します。

3. 「OK」をクリックします。

4. 「技術環境」ダイアログで、表18-6の説明に従ってエクスポート・パラメータを指定します。

表18-6 技術環境のエクスポート・パラメータ

プロパティ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。

ファイル名

.cvsエクスポート・ファイルの名前。

拡張オプション

この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

文字セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

フィールド・コード

生成される各レコードの最初のフィールドには、行に存在する情報の種類を識別するためのコードが含まれます。これらのコードは、必要に応じてカスタマイズできます。

- Oracle Data Integrator情報レコード・コード: Oracle Data Integratorの現在のバージョンおよび現在のユーザーが記録される行を識別するために使用するコード。このコードはレコードの最初のフィールドに使用されます。

- マスター・レコード・コード、作業レコード・コード、エージェント・レコード・コード、テクノロジ・レコード・コード: マスター・リポジトリ、作業リポジトリ、稼働中のエージェント、データ・サーバーやそのバージョンなどの情報を含む行のコード。

レコード・セパレータ、フィールド・セパレータ

これらのセパレータは、ファイル内のレコード(行)、および1レコード内のフィールドを区切る文字を定義します。

5. 「OK」をクリックします。

ログのエクスポートおよびインポート

ログ・データは、アーカイブ目的でエクスポートおよびインポートできます。詳細は、『Oracle Data Integratorの管理』のログ・データのエクスポートおよびインポートに関する項を参照してください。

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2015, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。