27 Oracle TimesTen In-Memory Database
この章の内容は次のとおりです。
概要
Oracle TimesTen In-Memory Database (TimesTen)には、リアルタイムのデータ管理機能が備えられています。業界標準インタフェースを介してアクセスする、メモリーが最適化されたアーキテクチャ上に構築された、アプリケーション層データベースおよびトランザクション管理が用意されています。オプションのデータ・レプリケーションおよびOracleキャッシュによって製品を拡張すると、複数ノードおよび複数層構成が可能になり、これにより、ネットワーク接続され、大容量のメモリーを利用できる最新のコンピューティング・プラットフォームが持つパフォーマンスを最大限に活用できます。
Oracle TimesTen In-Memory Databaseは、メモリーが最適化されたリレーショナル・データベースです。TimesTenは、アプリケーション層にデプロイされ、標準のSQLインタフェースを使用して、物理メモリーに完全に格納されたデータベースで動作します。インメモリー・データベースの高可用性は、リアルタイム・トランザクション・レプリケーションを介して提供されます。
TimesTenでは、JDBC (Java Database Connectivity)およびPL/SQL (Oracle procedural language extension for SQL)を含む、様々なプログラミング・インタフェースがサポートされています。
概念
TimesTenの概念は、次のようにOracle Data Integratorの概念にマップされます。1つのOracle TimesTen In-Memory Databaseインスタンスは、Oracle Data Integratorの1つのデータ・サーバーに対応します。このデータベース・インスタンス内で、データベースと所有者のペアが1つのOracle Data Integrator物理スキーマに対応します。1つのデータベース内の一連の関連オブジェクトは1つのデータ・モデルに対応し、各表、ビューまたはシノニムは、その属性、列および制約とともに、ODIデータストアとして示されます。
Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してOracle TimesTen In-Memory Database ODBC DSNに接続します。
ナレッジ・モジュール
Oracle Data Integratorには、TimesTenデータを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表27-1に示します。これらのKMではTimesTen固有の機能が使用されます。TimesTenデータベースでは、汎用SQL KMを使用することもできます。詳細は、汎用SQLを参照してください。
表27-1 TimesTen KM
ナレッジ・モジュール | 説明 |
---|---|
IKM TimesTen Incremental Update (MERGE) |
増分更新モードでTimesTen JDBCドライバを使用して、ステージング領域からTimesTenのターゲット表にデータを統合します。たとえば、存在しない行は挿入され、既存の行は更新されます。 |
LKM SQL to TimesTen |
TimesTen JDBCドライバを使用して、ANSI SQL-92ソースからTimesTenのステージング表にデータをロードします。 |
LKM File to TimesTen (ttBulkCp) |
ttBulkCpユーティリティを使用して、ファイルからTimesTenのステージング表へデータをロードします。 |
インストールおよび構成
TimesTenナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。
システム要件および動作要件
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。
http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html
テクノロジ固有の要件
TimesTenの一部のナレッジ・モジュールでは、ttBulkCpユーティリティが使用されます。
これらのナレッジ・モジュールには、次の要件および制限が適用されます。
-
ジョブを実行するODIエージェントのホストには、TimesTen Clientユーティリティがインストールされている必要があります(TTBULKCP)。
-
データ変換は、ステージング領域またはターゲットで実行される必要があります。
-
エージェント・マシン上に、次の正しいODBCエントリが作成される必要があります。
-
クライアントDSN: クライアントDSNにより、リモート・データベースが指定され、TimesTen Clientが使用されます。クライアントDSNは、ホスト名とDSNのペアを指定することにより、間接的にTimesTenデータベースを参照します。ホスト名はTimesTen Serverが実行されているサーバー・マシンを表し、DSNはサーバー・ホスト上のTimesTenデータベースを指定するサーバーDSNを表します。
-
サーバーDSN: サーバーDSNは常にシステムDSNとして定義され、クライアント・アプリケーションがアクセスする、そのサーバー上の各データベースのサーバー・システム上で定義されます。サーバーDSNの形式および属性は、Data Manager DSNのものと似ています。
-
接続性要件
この項では、TimesTenデータベースに接続するための要件をリストします。
Microsoft Excelデータにアクセスするための要件は次のとおりです。
TimesTen ODBCドライバのインストール
Microsoft Excelワークブックにアクセスできるのは、ODBC接続を使用した場合のみです。使用するシステムに、TimesTen用ODBCドライバがインストールされている必要があります。
TimesTen ODBCデータソースの宣言
ODBCデータソースは、ODIからアクセスするそれぞれのMicrosoft Excelワークブック(.xls
ファイル)に対して定義する必要があります。ODBCデータソースは、Microsoft ODBCデータソース・アドミニストレータで作成します。データソースの作成方法は、Microsoft Windowsオペレーティング・システムのドキュメントを参照してください。
JDBCドライバ
Oracle Data Integratorでは、TimesTen JDBCドライバを使用してTimesTenデータベースに接続します。このドライバをOracle Data Integratorのdriversディレクトリにインストールする必要があります。
ODIエージェント
ジョブを実行するODIエージェントには、TimesTen JDBCドライバおよびODBCドライバがインストールされ、構成されている必要があります。
トポロジの設定
トポロジの設定には次が含まれます。
TimesTenデータ・サーバーの作成
TimesTenデータ・サーバーはTimesTenデータベースに対応します。
データ・サーバーの作成
『Oracle Data Integratorの管理』のデータ・サーバーの作成に関する項に記載されている標準の手順で、TimesTenテクノロジ用データ・サーバーを作成します。この項では、TimesTenデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
注意:
Oracle Data Integratorが書込みアクセス権を持つのは、URLで指定されたデータベースのみです。
TimesTen物理スキーマの作成
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してTimesTen物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
TimesTenモデルの作成およびリバース・エンジニアリング
この項では、次の項目について説明します。
TimesTenモデルの作成
『Oracle Data Integratorでの統合プロジェクトの開発』のモデルの作成に関する項の説明に従って、標準の手順を使用してTimesTenモデルを作成します。
TimesTenモデルのリバース・エンジニアリング
TimesTenでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびカスタマイズされたリバース・エンジニアリングの両方がサポートされています。
通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。
TimesTen JDBCドライバの特異性によって、標準のJDBCリバース・エンジニアリング・プロセスで問題が発生した場合は、カスタマイズされたリバース・エンジニアリングへの切替えを検討してください。
標準のリバース・エンジニアリング
TimesTenで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
カスタマイズされたリバース・エンジニアリング
RKMを使用してTimesTenでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。この項では、TimesTenテクノロジ固有のフィールドのみについて説明します。
- TimesTenモデルの「リバース・エンジニアリング」タブで
KM: RKM SQL (Jython).<project name>
を選択します。
リバース・エンジニアリングによって、表、ビュー、属性、キーおよび外部キーが戻されます。
データ品質の設定
Oracle Data Integratorには、TimesTen表で定義された制約と照合してデータの整合性をチェックするためのCKM SQLが用意されています。詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のフロー制御および静的制御に関する項を参照してください。
詳細は、汎用SQLを参照してください。
マッピングの設計
マッピングのソース、ステージング領域またはターゲットとしてTimesTenを使用できます。
マッピングまたはチェック用に選択したKMによって、このマッピングまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、TimesTenデータ・サーバーに関連する様々な状況でのKMの選択に役立ちます。
TimesTenとの間でのデータのロード
マッピングのソース、ターゲットまたはステージング領域としてTimesTenを使用できます。「ロード・ナレッジ・モジュール」タブでの、TimesTenと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、マッピングのパフォーマンスに関してきわめて重要です。
TimesTenからのデータのロード
汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMを使用して、TimesTenデータベースからターゲットまたはステージング領域のデータベースへデータをロードします。
TimesTenステージング領域からTimesTenの表にデータを抽出するには、IKM TimesTen Incremental Update (MERGE)を使用します。詳細は、「TimesTenからのデータのロード」を参照してください。
TimesTenへのデータのロード
Oracle Data Integratorには、ソースまたはステージング領域からTimesTenデータベースへデータをロードするための最適化された方法を実装するナレッジ・モジュールが用意されています。これらの最適化されたTimesTen KMを表27-2にリストします。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
表27-2 TimesTenにデータをロードするためのKM
ソースまたはステージング領域のテクノロジ | KM | 説明 |
---|---|---|
SQL |
LKM SQL to TimesTen |
TimesTen JDBCドライバを使用して、ANSI SQL-92ソースからTimesTenのステージング表にデータをロードします。 |
ファイル |
LKM File to TimesTen (ttBulkCp) |
ttBulkCpユーティリティを使用して、ファイルからTimesTenのステージング表へデータをロードします。 |
TimesTenへのデータの統合
Oracle Data Integratorには、TimesTen用に最適化されたデータ統合戦略を実装するナレッジ・モジュールが用意されています。これらの最適化されたTimesTen KMを表27-3にリストします。これらのKM以外に、汎用SQL KMも使用できます。
「統合ナレッジ・モジュール」タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。
表27-3 TimesTenにデータを統合するためのKM
KM | 説明 |
---|---|
IKM TimesTen Incremental Update (MERGE) |
増分更新モードでTimesTen JDBCドライバを使用して、ステージング領域からTimesTenのターゲット表にデータを統合します。たとえば、存在しない行は挿入され、既存の行は更新されます。 |