IBM Optim Data Growth Solutionで取得したアーカイブ・ファイルは、Optimが提供するGUIでそのデータが参照できるほかに、ODBCやJDBCでアクセスすることができます。
ODBCやJDBCでアクセスする機能はODM(Open Data Manager)と呼ばれ、IBM Optim Data Growth Solutionに同梱されているAttunity社のAttunity ServerやAttunity ODBC/JDBC Driver(Attunity ODBC Driverは、Attunity Connect Driverとも呼ばれます)を使用して実現しています。
アーカイブ・ファイルをODBCのデータソースとして構成すれば、ODBCのインターフェースを利用して、C言語のプログラムからSQL文でアーカイブされた情報を取得したり、Excelなどのアプリケーションからデータを取得したりすることができます(図1)。
図1. ExcelによるOptimアーカイブ・ファイルの参照
また、JDBCのインターフェースを利用すれば、JavaのプログラムからSQL文でアーカイブした情報を参照することができます。
InfoSphere Federation Serverは、分散されたデータを統合し、それらのデータがあたかも1つのデータベースにあるかのように扱うことができます。これにより、Optimアーカイブ・ファイルとその他のデータソースのデータをSQL文で結合して参照することが可能となります(図2)。例えば、アーカイブされた発注情報と、別途管理している顧客情報や製品情報と結合して参照することが可能です。
図2. 分散されたデータの統合とSQL文による結合
IBM Optim Data Growth Solutionに同梱されているAttunity社のAttunity ServerとAttunity ODBC/JDBC Driverを使用することで、ODBCやJDBC経由でOptimアーカイブ・ファイルにアクセスすることができます。図3にAttunity ODBC/JDBC Driverの構成図を示します。
図3. Attunity ODBC/JDBC Driverの構成図
ODBC/JDBCクライアントは、Attunity ODBC/JDBC Driverを使用してOptimアーカイブ・ファイルへアクセスします。アクセス要求を受けたドライバーは、常駐するAttunity Server デーモンにAttunity Serverの割り当てを要求し、割り当てられたAttunity Serverを利用してデータの取得処理が行われます。Attunity Serverは、アクセス要求を受けたデータソースがOptimアーカイブ・ファイルであれば、Optimアーカイブ・ファイルにアクセスするためのアドオン・モジュールをロードし、そのモジュールがOptimの構成情報(Optimディレクトリ)を参照しながら、Optimアーカイブ・ファイルにアクセスし、データを取得します。
Attunity Serverの構成は、Windowsで動作するAttunity Studio (図4)や、各Attunity Server導入マシンで動作するnav_utilコマンドで行うことができます。Attunity StudioはAttunity Server デーモンと通信して、構成情報の参照・更新を行います。従って、複数のマシンでAttunity Server デーモンを稼動している場合でも、それらの構成情報を1つのWindowsマシンで構成することができます。
図4. Attunity Studio
Attunityサーバーの構成情報は階層構造になっており、主な要素として、ワークスペース、バインディング、データソースがあります。ワークスペースでバインディングを関連付け、バインディングに各種データソースを定義します。各データソースは複数のテーブルを構成することができます。デフォルトでは、ワークスペースNavigatorにバインディングNAVが関連付けられています。
ワークスペースでは、サーバーの動作モードやセキュリティなどを構成します。Optimアドオン・モジュールはシングル・クライアント・モードで動作しますので、サーバーの動作モードはsingleClientを選択します(図4の右ペイン下にあるServer Modeタブで設定)。クライアントからの接続時のユーザー認証はAttunity Serverが起動しているOSに登録されているユーザーでチェックされます。デフォルトでは匿名で接続可能となっており、ユーザーIDとパスワードなしで接続できます。匿名の接続可否の設定は、図4の右ペイン下にあるSecurityタブで行います。セキュリティの詳細については、マニュアル「Attunity Integration Suite: AIS User Guide and Reference」の「Part VI Operation and Maintenance - 29 Managing Security」を参照してください。
バインディングでは、データソースが使用するコードページ等を設定します(図5)。
図5. Attunity Studioのバインディング設定画面
構成情報はXMLドキュメントとして管理されており、図6は、バインディング情報をXMLで表示したものです。Optimアーカイブ・ファイル用のデータソースを追加する場合、このXMLを編集します。
図6. Optimアーカイブ・ファイル用データソースの追加
Optimアーカイブ・ファイル用データソースのXMLの書式例は以下のようになります。
<datasource name="ORDERS2002" readOnly="true" type="PST_GDB">
<config ARCV_FILE="/opt/IBM/Optim/rt/archive/ORDERS2002.AF" DIRDB="OPTIMDIR"/>
</datasource>
|
config要素のARCV_FILE属性にはOptimアーカイブ・ファイル名を指定し、DIRDB属性にはOptimディレクトリ名を指定します。この書式では、Optimアーカイブ・ファイルごとにデータソースを定義します。
通常、アーカイブ処理は定期的に行いますので、同じデータ構造を持つ異なる世代のOptimアーカイブ・ファイルが複数存在することになります。上記の追加方法では、アーカイブするごとに、そのOptimアーカイブ・ファイルをAttunityのデータソースとして追加し、アプリケーション側でそのデータソースを取り込むようにする、あるいは、InfoSphere Federation Serverで複数のOptimアーカイブ・ファイルを統合するビューを作成し、Optimアーカイブ・ファイルが増えるごとにそのデータソースをビューに含めるようにする必要があります。
そこでOptim Data Growth Solutionでは、アーカイブ・ファイル・コレクションと呼ばれる、複数のOptimアーカイブ・ファイルをグループ化し、その名前(コレクション名)をAttunityのデータソースとして定義できる機能を提供しています。そのデータソースでは、実態は複数のOptimアーカイブ・ファイルですが、同じテーブル名のデータは仮想的に統合されます。それぞれのテーブルにはアーカイブ・ファイル名を保持するPST_AF_NAME列等が追加されますので、データがどのOptimアーカイブ・ファイルに保持されているかをSQL文で得ることもできます。また、アーカイブ時にコレクション名を定義することで自動的にコレクションに追加することができます。コレクションに属しているOptimアーカイブ・ファイルを削除すると自動的にコレクションから削除されます。図7にアーカイブ・ファイル・コレクションの定義画面を示します。
図7. アーカイブ・ファイル・コレクションの定義
コレクション名を使用してAttunityにデータソースを追加する際のXMLの書式例は以下のようになります。
<datasource name="ORDERS" readOnly="true" type="PST_GDB">
<config COLLECTION="ARCHIVE.ORDERS" DIRDB="OPTIMDIR"/>
</datasource>
|
Attunity ServerにOptimのデータソースを追加する際のXMLの書式の詳細は、Optimのマニュアル「Optim Installation and Configuration Guide」の「Appendix F. Open Data Manager」を参照してください。
Attunity Server構成の検証は、Attunity StudioのQuery Toolやnav_utilコマンドのexecuteオプションでSQL文を発行して確認することができます。図8のようにSQL文を入力し、実行(Execute)すると図9の結果が得られます。SQL文で指定するテーブル名は、[データソース名]:[スキーマ名].[テーブル名]で表します。[データソース名]はクライアントから接続する際にデフォルトの指定ができ、省略することが可能です。また、図8では、LIMIT TO 10 ROWSを指定して、結果を最大10レコードまで取得するようにしています。これらのシンタックスはAttunityがSQL文を拡張してサポートしているものです。
図8. Query ToolにSQL文を入力
図9. Query ToolでSQL文を実行した結果
別マシンのOptimアーカイブ・ファイルにアクセスする場合、Attunity ODBC/JDBC Driverは直接、別マシンのAttunity Serverと通信することができます。図10に、UNIX上のOptimアーカイブ・ファイルに対して、同じUNIXマシンと別のWindowsマシンからAttunity ODBC/JDBC Driverでアクセスする構成、およびWindowsマシンのAttunity StudioやOptimのGUIからアクセスする構成を示します。
図10. UNIX上のOptimアーカイブ・ファイルへアクセスするためのAttunity構成
Attunity ODBC/JDBC Driverを利用したクライアントからのアクセス
Attunity ODBC Driverを使用してクライアントからアクセスする場合、Windowsクライアントでは、ODBCのデータソースを定義し、Attunity Serverに構成したデータソースと関連付けます。データソースのドライバーとしてAttunity Connect Driverを選択すると、ウィザード形式で必要な情報を設定することができます(図11)。図12の画面では、デフォルトのデータソース名やクライアント側の言語などを設定しています。
WindowsでODBCのデータソースとして登録すると、図1に示したようにExcelなどからも参照することができます。
図11. Attunity Connect ODBC Setup Wizard(Attunity Server稼動マシン等を指定)
図12. Attunity Connect ODBC Setup Wizard (データソース名等の設定)
Attunity ODBC Driverを使用してUNIXからアクセスする場合、ODBC Driver Managerを導入して、ODBCのデータソースを定義し、Attunity Serverに構成したデータソースと関連付けます。InfoSphere Federation Serverに付属のIBM Branded ODBCを使用した場合、odbc.iniファイルは以下のように記述します(IBM Branded ODBCはftpサイトからダウンロードして使用します)。各パラメータの詳細は、マニュアル「Attunity Integration Suite: AIS User Guide and Reference」の「Part XIII Interface Reference - 88 ODBC Client Interface」を参照してください。
[ORDERS] Description=ORDERS Optim Archive Files Driver=/opt/IBM/Optim/rt/navroot/lib/navcli.so BindURL=attconnect://server1.domain1.com:2551/Navigator DefTDPName=ORDERS OneTdpMode=1 misc/codepage=sjis |
Attunity JDBC Driverを使用してクライアントからアクセスする場合、Optim Data Growth Solutionに含まれている以下のJARファイルを利用します。
- ディレクトリー名
- UNIX: [導入ディレクトリー]/rt/odm/java/Averify
- Windows: [導入ディレクトリー]\RT\ODM\java\averify
- JARファイル
- nvjdbc2.jar
- nvlog2.jar
- nvapispy2.jar
- JDBCドライバークラス
- com.attunity.jdbc.NvDriver
データベースに接続する際のURLの例を以下にいくつか述べます。
- jdbc:attconnect://server1.domain1.com:2551
- jdbc:attconnect://server1.domain1.com:2551;DefTdpName=ORDERS
- jdbc:attconnect://username:password@server1.domain1.com:2551;DefTdpName=ORDERS
- jdbc:attconnect://server1.domain1.com:2551/Navigator
- jdbc:attconnect://server1.domain1.com:2551/Navigator;DefTdpName=ORDERS
DefTdpNameにはデフォルトのデータソース名を指定します。Navigatorはデフォルトのワークスペース名で省略可能です。詳細は、マニュアル「Attunity Integration Suite: AIS User Guide and Reference」の「Part XIII Interface Reference - 87 JDBC Client Interface」を参照してください。
InfoSphere Federation ServerによるOptimアーカイブ・ファイルと他のデータソースとの統合
InfoSphere Federation ServerはDB2上で動作し、分散されたデータを統合するためにWRAPPERと呼ばれるモジュールを組み込み、WRAPPERが分散されたデータにアクセスします。ODBCやJDBC用のWRAPPERも提供されていますので、これを利用してOptimアーカイブ・ファイルのデータがあたかもInfoSphere Federation Server(DB2)上のテーブルにあるかのように扱うことができます。この仮想的なテーブルのことをニックネームと呼びます。ニックネーム作成までの定義はSQL文で行うことができ、手順は以下のようになります。
- CREATE WRAPPER
外部のデータソースと接続するプロトコルをサポートしているモジュールを組み込みます。 - CREATE SERVER
外部のデータソースの接続情報を定義します。 - CREATE USER MAPPING
外部のデータソースに接続するためのユーザー認証情報を定義します。 - CREATE NICKNAME
外部のデータソースのテーブルに対応するニックネームを作成します。
AIXでOptimアーカイブ・ファイルをODBC接続する場合のニックネーム作成までのSQL文の例は以下のようになります。
CREATE WRAPPER ODBC LIBRARY 'libdb2rcodbc.a' OPTIONS (DB2_FENCED 'Y', MODULE '/xxx/branded_odbc/lib/odbc.so', DB2_SOURCE_CLIENT_MODE '32BIT'); CREATE SERVER ORDERS TYPE ODBC VERSION '3.0' WRAPPER ODBC OPTIONS (NODE 'ORDERS'); CREATE USER MAPPING FOR USER SERVER ORDERS OPTIONS (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password') ; CREATE NICKNAME ARCHIVE.ORDERS FOR ORDERS.SYS1.ORDERS; CREATE NICKNAME ARCHIVE.DETAILS FOR ORDERS.SYS1.DETAILS; ... |
AIXでOptimアーカイブ・ファイルをJDBC接続する場合のニックネーム作成までのSQL文の例は以下のようになります。
CREATE WRAPPER JDBC LIBRARY 'libdb2rcjdbc.a'; CREATE SERVER ORDERS TYPE JDBC VERSION '2.0' WRAPPER JDBC OPTIONS ( URL 'jdbc:attconnect://server1.domain1.com:2551;DefTdpName=ORDERS', DRIVER_CLASS 'com.attunity.jdbc.NvDriver'); CREATE USER MAPPING FOR USER SERVER ORDERS OPTIONS (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password') ; CREATE NICKNAME ARCHIVE.ORDERS FOR ORDERS.SYS1.ORDERS; CREATE NICKNAME ARCHIVE.DETAILS FOR ORDERS.SYS1.DETAILS; ... |
WindowsでOptimアーカイブ・ファイルをODBC接続する場合のニックネーム作成までのSQL文の例は以下のようになります。
CREATE WRAPPER ODBC LIBRARY 'db2rcodbc.dll' OPTIONS (DB2_FENCED 'Y'); CREATE SERVER ORDERS TYPE ODBC VERSION '3.0' WRAPPER ODBC OPTIONS (NODE 'ORDERS'); CREATE USER MAPPING FOR USER SERVER ORDERS OPTIONS (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password') ; CREATE NICKNAME ARCHIVE.ORDERS FOR ORDERS.SYS1.ORDERS; CREATE NICKNAME ARCHIVE.DETAILS FOR ORDERS.SYS1.DETAILS; ... |
WindowsでOptimアーカイブ・ファイルをJDBC接続する場合のニックネーム作成までのSQL文の例は以下のようになります。
CREATE WRAPPER JDBC LIBRARY 'db2rcjdbc.dll'; CREATE SERVER ORDERS TYPE JDBC VERSION '2.0' WRAPPER JDBC OPTIONS ( URL 'jdbc:attconnect://server1.domain1.com:2551;DefTdpName=ORDERS', DRIVER_CLASS 'com.attunity.jdbc.NvDriver'); CREATE USER MAPPING FOR USER SERVER ORDERS OPTIONS (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password') ; CREATE NICKNAME ARCHIVE.ORDERS FOR ORDERS.SYS1.ORDERS; CREATE NICKNAME ARCHIVE.DETAILS FOR ORDERS.SYS1.DETAILS; ... |
IBM Optim Data Growth Solutionでアーカイブされたデータは、Optimアーカイブ・ファイルに保存された状態のままで、ODBCやJDBC経由で参照することができます。また、別のマシンに保存されているデータも参照することができますので、AIXに保存されたOptimアーカイブ・ファイルのデータをWindowsのExcelなどのアプリケーションで参照するといったことも可能です。
アーカイブ・ファイル・コレクションの機能を利用すれば、アーカイブするごとにそのデータソースをAttunity Serverに登録したり、アプリケーション側で追加されたデータソースを取り込んだりすることなくアーカイブしたデータが使用可能となります。
DB2上で動作するInfoSphere Federation Serverを使用すると、Optimアーカイブ・ファイルのデータや他のデータソースのデータをSQL文で結合することが可能となります。Optimアーカイブ・ファイルにはアーカイブしたトランザクション・データと関連するマスターデータ等も含めることができますが、マスターデータは含めずに、別途保持されたマスターデータとSQL文で結合して参照するといったことも可能となります。