Integration Servicesでは、パッケージの実行に関する各種情報をログとして出力することが可能です。例えば、パッケージの開始日時や終了日時をログとして記録するといったことが可能です。Integration Servicesでは、ログの出力方法や形式を定義する「ログプロバイダ」として次のようなものがあります。
ログプロバイダ | 説明 |
テキストファイル | ログをカンマ区切りのCSV形式で出力する |
SQL Server Profiler | SQL Serverプロファイラで表示可能なログファイルを作成する |
SQL Server | SQL Server 2005データベースのsysdtslog90テーブルにログを書き込む |
Windowsイベントログ | ローカルコンピュータ上のWindowsイベントログのアプリケーションログにログを書き込む |
XMLファイル | XMLファイルにログを書き込む |
表3 ログプロバイダの一覧 |
ここでは、扱いやすいテキストファイル形式でログを出力したいと思います。BI Development Studioのメニュー「SSIS」の「ログ記録」から「SSIS ログの構成」ダイアログボックスを呼び出し、ログプロバイダの設定を行います(図2)。
ログを生成する対象となるパッケージを選択し、プロバイダの種類は「テキストファイルのSSISログプロバイダ」を選択し、「追加」ボタンをクリックしてログプロバイダを追加します。ログプロバイダは複数定義することが可能です。あるタスクは処理の開始と終了を、別のタスクはエラーの発生を保存、というようなログ記録が可能です。
ログのテキストファイル出力では対象のファイルを「ファイル接続マネージャ」から指定します。ログプロバイダの「構成」列から<新しい接続...>を選んで「ファイル接続マネージャ」ダイアログを呼び出し、ファイルの指定を行ってください。ファイルの物理パスとともにログファイル名を設定します。
ログの出力内容については「詳細」タブを開き、「詳細設定」ボタンを選択します。ここでは対象のイベントごとにログスキーマを定義できます(図3)。ログスキーマは下記から選択します。
要素 | 説明 |
Computer | ログイベントが発生したコンピュータの名前 |
Operator | パッケージを起動したユーザーのID |
SourceName | ログイベントが発生したコンテナまたはタスクの名前 |
SourceID | ログイベントが発生したパッケージ、タスクなどの一意識別子 |
ExecutionID | パッケージ実行インスタンスのGUID |
MessageText | ログエントリに関連付けられるメッセージ |
DataBytes | ログエントリ固有のバイト配列 |
表4 ログスキーマ |
イベントとスキーマの組み合わせで多様なログの保存構成を作成できます。ただし、過剰なログの記録はディスク容量の圧迫やパフォーマンスに影響を与えてしまうので注意が必要です。例えば、パッケージの開始と終了は簡潔に、エラー発生時は詳細に出力、といった形です。保存構成はテンプレートとしてXMLファイルに保存できるので、よく利用する構成を保存しておけば、ログ内容の標準化も行えるでしょう。
実際にログを出力した結果は図4のような形になります。パッケージの実行サーバやユーザー、実行の開始終了日時などとともに、データフロータスクでOnErrorが発生していることが分かります。
以上で「パッケージの実行に関するログを生成する」が実現できました。ログ出力によって、どこで問題が発生したのか確認できるようになったので、後は実際のエラーデータを確認できるようにしましょう。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.