本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Optimアーカイブ・ファイルのODBC/JDBCアクセスと他のデータソースとの統合

Optim Data Growth Solutionによる情報ライフサイクル管理とInfoSphere Federation Serverによる情報の統合

大川 昌弘 (mohkawa@jp.ibm.com), IM開発, ソフトウェア開発研究所, IBM
大川昌弘は、ソフトウェア開発研究所のデータベース関連製品開発部門に所属し、現在はIBM Optim製品群の品質保証および支援業務を担当しています。

概要: IBM Optim Data Growth Solutionは、データベースにある古いデータをアーカイブする機能や、アーカイブ・ファイルのデータをODBCやJDBCでアクセスする機能を提供します。さらに、InfoSphere Federation Serverと組み合わせて使用することで、他のデータソースをSQL文で結合して照会することができます。本記事では、その仕組みと構成方法について述べます。

日付:  2010年 7月 12日
レベル:  中級
アクティビティー: 2664 ビュー
お気軽にご意見・ご感想をお寄せください: 


はじめに

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文による結合


Attunity ODBC/JDBC Driverの概要

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の構成

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 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文で行うことができ、手順は以下のようになります。

  1. CREATE WRAPPER
    外部のデータソースと接続するプロトコルをサポートしているモジュールを組み込みます。
  2. CREATE SERVER
    外部のデータソースの接続情報を定義します。
  3. CREATE USER MAPPING
    外部のデータソースに接続するためのユーザー認証情報を定義します。
  4. 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文で結合して参照するといったことも可能となります。


参考文献

著者について

大川昌弘は、ソフトウェア開発研究所のデータベース関連製品開発部門に所属し、現在はIBM Optim製品群の品質保証および支援業務を担当しています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=499432
ArticleTitle=Optimアーカイブ・ファイルのODBC/JDBCアクセスと他のデータソースとの統合
publish-date=07122010
author1-email=mohkawa@jp.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。