連載
» 2006年03月28日 00時00分 公開

Integration Servicesの実践的な使い方SQL Server 2005を使いこなそう(3)(2/3 ページ)

[石橋潤一,株式会社システムインテグレータ]

ログ出力の定義

 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)。

図2 「SSIS ログの構成」ダイアログボックス 図2 「SSIS ログの構成」ダイアログボックス(クリックすると拡大します)

 ログを生成する対象となるパッケージを選択し、プロバイダの種類は「テキストファイルのSSISログプロバイダ」を選択し、「追加」ボタンをクリックしてログプロバイダを追加します。ログプロバイダは複数定義することが可能です。あるタスクは処理の開始と終了を、別のタスクはエラーの発生を保存、というようなログ記録が可能です。

 ログのテキストファイル出力では対象のファイルを「ファイル接続マネージャ」から指定します。ログプロバイダの「構成」列から<新しい接続...>を選んで「ファイル接続マネージャ」ダイアログを呼び出し、ファイルの指定を行ってください。ファイルの物理パスとともにログファイル名を設定します。

 ログの出力内容については「詳細」タブを開き、「詳細設定」ボタンを選択します。ここでは対象のイベントごとにログスキーマを定義できます(図3)。ログスキーマは下記から選択します。

要素 説明
Computer ログイベントが発生したコンピュータの名前
Operator パッケージを起動したユーザーのID
SourceName ログイベントが発生したコンテナまたはタスクの名前
SourceID ログイベントが発生したパッケージ、タスクなどの一意識別子
ExecutionID パッケージ実行インスタンスのGUID
MessageText ログエントリに関連付けられるメッセージ
DataBytes ログエントリ固有のバイト配列
表4 ログスキーマ

 イベントとスキーマの組み合わせで多様なログの保存構成を作成できます。ただし、過剰なログの記録はディスク容量の圧迫やパフォーマンスに影響を与えてしまうので注意が必要です。例えば、パッケージの開始と終了は簡潔に、エラー発生時は詳細に出力、といった形です。保存構成はテンプレートとしてXMLファイルに保存できるので、よく利用する構成を保存しておけば、ログ内容の標準化も行えるでしょう。

図3 「SSIS ログの構成」の詳細タブで詳細設定を行う 図3 「SSIS ログの構成」の詳細タブで詳細設定を行う(クリックすると拡大します)

 実際にログを出力した結果は図4のような形になります。パッケージの実行サーバやユーザー、実行の開始終了日時などとともに、データフロータスクでOnErrorが発生していることが分かります。

図4 ログ出力のサンプル 図4 ログ出力のサンプル(クリックすると拡大します)

 以上で「パッケージの実行に関するログを生成する」が実現できました。ログ出力によって、どこで問題が発生したのか確認できるようになったので、後は実際のエラーデータを確認できるようにしましょう。(次ページへ続く)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。