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

5年ぶりのメジャーバージョンアップとなったSQL Server 2005。本連載では、SQL Server 2005への移行を検討しているデータベース管理者に向け、新規に実装されたさまざまな機能の詳細を紹介していく。(編集局)

» 2006年03月28日 00時00分 公開
[石橋潤一株式会社システムインテグレータ]

主な内容

--Page 1--

イベントハンドラの実装

--Page 2--

ログ出力の定義

--Page 3--

エラー出力による行のリダイレクト


 本連載では第1回「Integration Servicesで異種データも楽々インポート」、第2回「BI Development StudioでETL処理を開発する」で、「Integration Services」の概念から基本的な利用法までを紹介してきました。Integration Servicesがさまざまな形で企業に存在するデータ群を取り扱ううえで、非常に優れたサービスであることを感じ取れたと思います。

 前回は「BI Development Studio」を利用して単純なCSVデータの取り込みを実装しましたが、今回は次の3点の機能を前回作成したパッケージに加えたいと思います(ここで使用するパッケージの内容は前回「BI Development StudioでETL処理を開発する」を参照してください)。

  1. エラーが発生した場合、管理者へメールを送信する
  2. パッケージの実行に関するログを生成する
  3. 読み込みに失敗したデータを出力する

 Integration Servicesで作成したパッケージは、多くの場合、日次や週次のような形で定期的に自動で実行される運用が想定されます。このような利用法においては、パッケージの実行状況や問題発生に対する監視が非常に重要となります。パッケージの実行が失敗していることに気付かず、問題のあるデータをそのまま利用してしまった、というような問題は何としても避ける必要があります。このような問題に対処するために、Integration Servicesでは「イベントハンドラ」「ログの出力」「エラー出力」がサポートされています。まずは、イベントハンドラから見てみましょう。

イベントハンドラの実装

 Integration Servicesはタスク実行時に発生するエラーや警告などの、イベントに対する処理をイベントハンドラに定義することができます。イベントハンドラでは制御フロー、データフローのそれぞれを定義することが可能であるため、エラーの内容をメールで送信したり、一次データの削除を行うなど、各種イベントに対する柔軟な処理を定義できます。

 イベントハンドラは、これまでと同様にBI Development Studioを利用して定義します。前回の記事で作成したプロジェクトにイベントハンドラを定義して、エラーに対するメールを送信する処理を定義してみましょう。

 イベントハンドラは、「イベントハンドラ」タブより設定を行います。イベントハンドラを定義する対象を「実行可能ファイル」の一覧から選択します。データの取り込み処理を監視したいので、対象を「データフロータスク」とします。続いて「イベントハンドラ」は「OnError」を選択します(図1)。

図1 イベントハンドラの定義 図1 イベントハンドラの定義(クリックすると拡大します)

 「イベントハンドラ」は「OnError」以外にも主に次のようなイベントを利用することができます。

イベントハンドラ イベント内容
OnError エラー発生時に発生
OnExecStatusChanged 実行状態が変化したときに発生
OnPostExecute 実行完了直後に発生
OnPreExecute 実行される直前に発生
OnTaskFailed タスクが失敗したときにタスクから発生
OnWarning 警告の発生時に発生
表1 イベントハンドラの種類

 画面中央のリンクをクリックしてイベントハンドラの定義を開始します。「ツールボックス」より「メール送信タスク」をドラック&ドロップし、メール送信の定義を行いましょう。

 メール送信タスクは、変数を利用した動的なメッセージ作成を行うことができますが、ここでは固定のメッセージを送信する設定とします。

項目
SmtpConnection SMTP接続マネージャを新規に作成する
From 送信元のメールアドレスを指定する
To 送信先のメールアドレスを指定する
Subject 件名を指定する
MessageSourceType ソースの種類を「直接入力」「ファイル接続」「変数」から選択する
MessageSource メールの本文を指定する
表2 メール送信タスクの設定

 以上の設定で、「エラーが発生した場合、管理者へメールを送信する」が実現できました。これでパッケージ運用中に問題が発生した場合、管理者が問題に気付くことができます。次は問題を特定するために必要となるログの出力です。(次ページへ続く)

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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