SSISでは、ここまでに取り上げた開発ツールの生産性向上、アーキテクチャの一新だけでなく、従来では難しかったきめ細やかな管理と堅牢性を組み込むことができます。
多様なデータソースや、複雑な処理を行う以上、エラーを避けることはできません。エラー発生からいかに回復するかが問題ですが、SQL Server 2000のDTSでは、エラーが発生した場合、パッケージを始めから実行する必要がありました。規模の大きなデータや複数のタスクを扱うパッケージの場合、回復までに時間を要してしまいます。この問題に対しSSISでは、パッケージでチェックポイントを利用することにより、エラー発生からの回復を素早く行うことができます。
チェックポイントを利用する場合、パッケージの実行とステータスに関する情報がチェックポイントファイルに書き込まれます。パッケージ実行中にエラーが発生した場合、データ変換ランタイムがこのチェックポイントファイルを処理することによって、エラーが発生したタスクからの再開が可能となります。
注意すべき点として、チェックポイントは制御フローに関する実行状況が記録されますが、データフロー内の状況については記録されません。このため、全体のフローを適切に設計し、チェックポイントをうまく利用できるようにしなければなりません。例えば、OracleからデータをSQL Serverにコピーし、さらにテキストファイルへ出力する、といった処理を1つのデータフローに記述した場合、処理は常に最初から開始されます。これを、Oracleからコピーするタスク、SQL Serverからテキストファイルを出力するタスク、という形にデータフローを分けることにより再開ポイントを作ることができます。データフローを分割したことによって、ファイル出力時にエラーが発生した場合でもその処理を行ったタスクから再開できるため、エラーからの回復に要する時間を短縮することができます。
チェックポイントを利用するには、SSISよりパッケージプロパティの「SaveCheckpoints」を「True」にします。さらに「CheckpointFileName」にチェックポイントファイルの保存先を指定します。「CheckpointUsage」ではチェックポイントファイルの処理方法を設定します(表4)。
プロパティ | 説明 |
Never | チェックポイントファイルは使用しない。パッケージは先頭から実行 |
Always | チェックポイントファイルを必ず使用する。ファイルが存在しない場合エラー |
IfExists | チェックポイントファイルが存在する場合使用。ファイルが存在しない場合は、パッケージの先頭から実行 |
表4 チェックポイントファイルの処理方法 |
イベントハンドラもSSISに加わった新機能です。パッケージ実行時にコンテナやタスクから発生するイベントを利用することにより、ETLに関する処理や管理を柔軟に行うことができます。
タスクやコンテナから発生するイベントは、タスクの開始・終了、エラー発生など各種用意されています。例えば、エラー発生に関するイベントハンドラを作成し、エラーが発生した場合はメール送信を行う、というような処理を組み込むことが可能です(図4)。
ここまで紹介してきたとおり、SSISは従来のDTSに比べ大幅に機能強化しており、まさに生まれ変わったといえるほど、まったく別のツールになっています。SSIS単体で、非常に多くの処理をこなすことが可能であり、今後システム開発の現場でも活躍するシーンが多くなるのではないでしょうか。
次回のIntegration Services実践編では、BI Development Studioを利用してETL処理を実際に作成してみたいと思います。今回紹介できなかったログ出力機能やDTSからのアップグレードなども紹介したいと思っていますので、お楽しみに!(次回に続く)
メモ
SQL Server 2005の180日間評価版が公開されています。Enterprise Editionと同等の機能が実装されているので、今回紹介したBI Development Studioを触ることも可能です。興味がある方は、下記サイトよりダウンロードしてください。製品版のEnterprise EditionはWindows XP Proにインストールできませんが、評価版はXP Proにインストール可能です。
http://www.microsoft.com/japan/sql/downloads/trial-software.mspx
また、SQL Server 2005に関するCTPなどのベータ版をインストールしている場合、製品版をインストールするためには、それらベータ版をアンインストールする必要があります。アンインストールについては、手順を間違うと面倒なことになるので、下記サポート技術情報を参照して、正しい手順でアンインストールするようにしてください。http://support.microsoft.com/default.aspx/kb/905786
石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.