レベル: 初級 片山 慎, ソフトウェア開発研究所, IBM 安達 くみ, 情報マネジメント技術/ソフトウェア開発研究所, IBM
2006年 12月 15日 DB2 Data Warehouse Edition Version 9.1(以下、DWE)は、2006年3月に発表された、統合データウェアハウジング・プラットフォームです。DWEは、ビジネスインテリジェンスに関連したDB製品に対して、開発から分析まで一元化された環境を提供します。(2) 開発編では、DWEのデータウェアハウス・サーバーや、アプリケーション・サーバーをSUSE LinuxおよびAIX上で動作させた際のDesign Studioでのアプリケーションの開発手法について解説します。
DB2 Data Warehouse Edition Version 9.1(以下、DWE)は、2006年3月に発表された、統合データウェアハウジング・プラットフォームです。DWE は、DB2のビジネスインテリジェンス製品であるSQL Warehousing Tool、Intelligent Miner、Cube Views、Alphablox の技術を基にしています。Design Studioは、Eclipse ベースで作られており、物理データ・モデリングのための Rational Data Architect プラグインと、ウェアハウス・ベースの分析構造モデリングのための他の DWE コンポーネントとを一体化しています。DWEのチュートリアルで紹介されているアプリケーション開発手法は、Windows上のデータウェアハウス・サーバー、アプリケーション・サーバー、クライアント上のものとなっています。(2) 開発編では、実際にお客様での採用事例のあるSUSE Linux上で、データウェアハウス・サーバーおよびアプリケーション・サーバーを動作させ、Windowsクライアント上のDesign Studioを用いて、データ・フロー、制御フローやマイニング・フローを開発するシナリオや、デプロイを行なう時のシナリオでの注意点や開発手法について解説します。あわせて、AIX上でデータウェアハウス・サーバーを稼動させた際の注意点や開発手法についても解説します。
開発の詳細な手順についてはDWEのチュートリアルをご参照ください。
データウェアハウスをメンテナンスするアプリケーションの作成と注意点
アプリケーション・シナリオ
スター・スキーマ型のデータベース“CUBE”をメンテナンスするアプリケーションの流れを、図1のようなデザインで行なうこととします。
図1. データウェアハウスをメンテナンスするアプリケーションの流れ
データ・フロー#1の作成と注意点
アプリケーションのデザインに沿って、データ・フロー#1を、Design Studio上で作成します。図2のデータ・フローはDesign Studio上で作成したデータ・フロー#1です。
ファイル・インポートの入力ファイルには、変更する差分データが入っています。内容に重複がないかを、7つのキーを元に確認して、ファイルに出力しています。
図2. データ・フロー#1
このデータ・フロー#1を作成する上での注意点を、以下に記述します。
入力ファイル名、出力ファイル名の変数値
ファイル・インポート演算子およびファイル・エクスポート演算子のプロパティで、それぞれ、入力ファイル名、出力ファイル名を指定します。ここで、固定値で、Windowsクライアント上のファイルを指定した場合、Design Studioでの実行はできますが、Linux上のアプリケーション・サーバーにデプロイした場合、実行時にエラーが出てしまいます。
入力ファイル名、出力ファイル名は、変数値として指定し、実行時に変更ができるように設定してください。デプロイ後、実行する際には、アプリケーション・サーバー上の正しいファイルを指定すれば、正しく動作します。実行時に変数値を変更する方法については後ほど記述します。
図3. ファイル名の変数値の設定
コード・ページの指定
ファイル・インポート演算子およびファイル・エクスポート演算子のプロパティで、それぞれ、出力のコードページ、入力のコードページを指定することができます。
ファイル・インポート演算子の出力のコードページには、データウェアハウス・サーバーのデータベースのコード・ページを入力します。例えば、SUSE Linux上でデータウェアハウス・サーバーが動作している場合には1208を、AIX上でデータウェアハウス・サーバーが動作している場合には943を指定します。アプリケーション・サーバー上でデータ・フローを動作させる場合には、アプリケーション・サーバーのコードページ(UNIXの場合locale)に合わせた形で、入力ファイルを作成し、そのOS上で正しく判読できるファイルを入力ファイルとしてください。
図4. ファイル・インポート演算子でのコード・ページの設定
ファイル・エクスポート演算子の入力のコード・ページへの設定は、Windowsクライアント上のDesign Studioでデータ・フローを動作させるだけであるならば、932で十分です。しかし、アプリケーション・サーバーへのデプロイを計画している場合には、アプリケーション・サーバーのコード・ページ(UNIXの場合、locale)にあわせる必要があります。SUSE Linuxでアプリケーション・サーバーを起動している場合には、1208と設定し、そのOS上で正しく判読できるようにします。
図5. ファイル・エクスポート演算子でのコード・ページ
ファイル・インポート演算子で使用できる区切り文字
ファイル・インポート演算子の入力ファイルに使用できる区切り文字は、DB2 Data Warehouse Edition Design Studioユーザーズ・ガイドの264ページに記述があります。DB2のImportコマンドやLoadコマンドで使用できる ; (セミコロン)は、使用できませんので、ご注意ください。
データ・フロー#2の作成
アプリケーションのデザインに沿って、データ・フロー#2を、Design Studio上で作成します。図6のデータ・フローはDesign Studio上で作成したデータ・フロー#2です。
ファイル・インポートの入力ファイルには、外部プログラムで内容をチェックした結果のファイルを指定しています。データのフィルタリングを行ない、スタースキーマに必要なデータのみにしてから、データをすべてテーブルに一旦ロードします。このあと、重複したデータを取り除き、キー検索により次元表にないデータを取り除いてデータを整えてから、データをバルク・ロード演算子でテーブルに書き込みます。
図6. データ・フロー#2
データウェアハウスをメンテナンスするアプリケーションのデプロイおよび実行上の注意点
データ・フローを統合した制御フローの作成と注意点
アプリケーションの流れに従って、前節で作成したデータ・フロー#1を実行し、ファイル・チェックを行なう外部プログラムを実行した後、データ・フロー#2を実行する制御フローを図7のように作成します。
図7. 制御フロー
図7のデータ・フロー_02は、図8のように設定されていて、データ・フロー#1のファイル名“QIT_dwh_proj21.etlmetadataxmi”が指定されています。
図8. データ・フロー_02のプロパティ
同様に、データ・フロー_04でも、データ・フロー#2のファイル名が指定されています。
この制御フローを作成する上での注意点を、以下に記述します。
コマンド演算子で指定するプログラム
コマンド演算子で、コマンド・タイプを実行可能プログラムにした場合、プログラムは、WindowsクライアントのDesign Studio上で実行する時にはWindowsプログラムを、UNIXのアプリケーション・サーバー上で実行するときにはSHELLコマンドを指定しなければなりません。このため、図9のように実行可能プログラムの場所で指定する値を変数値にして、実行時に指定できるようにすると、デプロイ後も使用可能な制御フローとなります。
図9. 実行可能プログラムのプロパティ
制御フローのデプロイの準備の注意点
作成した制御フローをデプロイの準備の際の注意点を、以下に記します。
デプロイメントZIPファイル
デプロイの準備で作成されるデプロイメントZIPファイルの中を見ると、文字化けしたようなファイル名のファイルがあります。が、このファイルはあくまでもデプロイメント・パッケージですので、そのような内容があっても、ZIPの内部データへの影響はないので、実行上問題はありません。
Administrator Consoleでのアプリケーションの操作と注意点
Windows上のDesign Studioでデプロイの準備の操作を行なった後は、アプリケーション・サーバー上で動作するAdministrator Consoleの操作が、中心となります。
これ以降は、Administrator Console上の注意点について記述します。
データウェアハウス・アプリケーションのデプロイ
データウェアハウス・アプリケーションのデプロイを選択して、デプロイメントメントZIPファイルを指定すると、図10のように、アプリケーションのホーム・ディレクトリー、ログ・ディレクトリー、作業ディレクトリーのディレクトリー情報を指定する必要があります。
デプロイメント・パッケージ内に保存されているWindows上のディレクトリーがデフォルトで表示されますが、UNIX環境でアプリケーション・サーバーが動作している場合には、これらのディレクトリー情報のままでは、動作しません。必ず、そのアプリケーション・サーバー上で正しいディレクトリー情報に、すべて書き換えてください。
図10. データウェアハウス・アプリケーションのデプロイでのディレクトリー情報の指定
アプリケーションのデプロイが完了後、データウェアハウス・アプリケーションの管理の画面を見ると、図11のように、デプロイされたアプリケーションがリストされます。
図11. データウェアハウス・アプリケーションの管理画面
また、デプロイメントの履歴画面(図12)では、デプロイメントの日付情報も見ることができます。
図12. デプロイメントの履歴画面
アプリケーションのプロセス実行時の変数値の入力
データウェアハウス・アプリケーションのプロセスの実行を選択すると、スケジュールを指定した後、プロセス・プロファイルの入力を行ないます。ここで、インスタンス変数値の入力で、Design Studioで定義した変数値がリストされ、デフォルト値には、Design Studioで設定したデフォルト値が図13のように表示されます。Design Studio上で動作するように設定されたデフォルト値はWindows上のものなので、アプリケーション・サーバーが動くOSにあった形に値を設定してください。
図13. プロセス実行時の変数値の入力画面
アプリケーションのプロセスの実行統計
スケジュールされたアプリケーションの実行を行なった後、プロセス・インスタンスの統計の表示を選択すると、図14のように、プロセス・インスタンスの実行結果、開始時刻、完了時刻が表示されます。
図14. プロセス・インスタンスの統計の表示画面
プロセス・インスタンスをクリックすると、図15のように、そのインスタンスの統計の詳細情報が表示されます。
図15. プロセス・インスタンス統計画面
アクティビティー・インスタンス統計のタブを選択すると、それぞれのデータ・フロー演算子やコマンド演算子での実行時間が、図16のように表示されます。
図16. アクティビティー・インスタンス統計画面
さらに、コード単位インスタンス統計のタブを選択すると、各データ・フローの演算子ごとに、実行結果や実行時間が、図17のように表示されます。各単位IDをクリックすることで、それぞれの詳細情報を知ることが可能です。
図17. コード単位インスタンス統計
アプリケーションのプロセスの実行ログ
ログとトレースを選択し、プロセス・ログの表示を選択すると、アプリケーション・プロセスの実行ログが、図18のように表示されます。
図18. プロセス・ログの表示画面
まとめ
本稿では、DWEを、実際にお客様での採用事例のあるSUSE Linux上で導入し、データウェアハウス・サーバーおよびアプリケーション・サーバーを動作させ、Windowsクライアント上のDesign Studioを用いて、データ・フロー、制御フローやマイニング・フローを開発するシナリオを作成し、デプロイを行なうまでの注意点や開発手法について解説しました。DWEによってデータロードのジョブやデータベースの管理が容易になり、効率的なデータ開発が可能になることがおわかりいただけたと思います。
Windows上のDWEでの操作が記述されているDWEのチュートリアルもご参照ください。
参考文献
著者について  | |  | 片山 慎はソフトウェア開発研究所のエンジニアで、Business Intelligenceの分野におけるプロジェクトでの開発業務を担当していました。現在は、Text Miningの分野におけるプロジェクトを担当しています。 |
 | |  | 安達 くみはソフトウェア開発研究所のエンジニアで、Business Intelligence, Master Data Managementの分野におけるプロジェクトでの開発業務を担当しています。 |
記事の評価
|