「商品マスタ」をダブルクリックして、「フラット ファイル ソース エディタ」を表示させます。さらに、「フラット ファイル接続マネージャ」の「新規作成」をクリックし、「フラット ファイル接続マネージャ エディタ」より、データ元CSVの設定をします(図9)。
CSVファイルは、先頭行が列名になっているため、「先頭データ行を列名として使用する」にチェックを入れてください。また、「詳細設定」より、単価列の「Data Type」を「通貨[DT_CY]」としてください。
これで「商品マスタ」の設定は完了したので、「税込単価」へ緑の矢印を接続します。
「税込単価」をダブルクリックして「派生列変換エディタ」を表示させます。表4に従い、派生列の設定を行います(図10)。
項目 | 設定 |
派生列名 | 税込単価 |
派生列 | 新しい列として追加 |
式 | [単価] * 1.05 |
データ型 | 通貨[DT_CY] |
表4 派生列変換エディタでの設定内容 |
このように、派生列を利用すれば計算などを行った値を収める新たな列の生成が可能です。「税込単価」の設定は完了したので、「税込単価」と「商品マスタ追加」を接続します。
データフローの設定に入る前に、変換先となるデータベースへの接続を定義します。「接続マネージャ」を右クリックし「新しいデータソースからの接続」を選択し、データベースへの接続を設定します。
それでは、これまでと同じく「商品マスタの追加」より、データフローの変換先の設定を行います。ダブルクリックで表示される「SQL 変換先エディタ」より接続先となるデータベースを指定しましょう(図11)。
以上で今回の処理フローの記述が完了しました。早速実行してみましょう!
パッケージを実行するには、「ソリューション エクスプローラ」より「Package.dtsx」を右クリックし「パッケージの実行」をクリックします。
パッケージの実行を行うと、デバッグ用画面に切り替わり、各タスクが実行されていきます。タスクの実行結果は分かりやすく表示され、実行中が黄色、成功が緑、失敗が赤として表示されます。また、データフロー画面では、タスクごとの処理行数が表示されます(図12)。
データが正しく生成されているか確認してみましょう。データの確認はSQL Server 2005の管理ツールである「SQL Server Management Studio」より行います(図13)。
CSVによる入力データに対し、計算が行われ、その結果がテーブルへロードされていることが分かります。
BI Development Studioでは、実行時にデータフローを流れるデータの中身をデータビューアを利用して確認することができます。
データビューアでは、一般的な表による表示であるグリッドに加え、ヒストグラム、散布図、縦棒グラグといった種類から表示方法を選択可能です。
データビューアを有効にするには、データフローの各オブジェクトをつなぐ矢印を右クリックし、「データビューア」から「データ フロー パス エディタ」にて設定を行います(図14)。データビューアを有効にすると、デバッグ実行時、該当個所で実行が停止し、データビューアが表示されます。
以上で、単純なマスタデータのインポート、計算、ロードまでのETL処理をBI Development Studioを利用して開発しました。ここまで見てきたとおり、ほとんどの処理をGUIから設定可能であり、非常に簡単に開発できることを実感できたと思います。
今回は簡単な処理を実装しましたが、より複雑な処理の実装ももちろん可能です。XMLファイルやExcelデータのインポート、OracleやDB2といった異種間データベースの接続、さらにはピボットやマージ、派生列といったデータ変換処理を加えることによって、柔軟なETL処理の実装が可能です。また、標準で用意された機能群では要件を満たせない場合、ネイティブコードおよび.NET準拠の言語でIntegration Servicesのプログラムを開発可能です。
企業にはさまざまなデータが溢れ、これらのデータを利用するシステムへの要求はますます高まっていますが、Integration Servicesを利用することにより、多くの労力を解消することができるのではないでしょうか。(次回に続く)
石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.