5年ぶりのメジャーバージョンアップとなったSQL Server 2005。本連載では、SQL Server 2005への移行を検討しているデータベース管理者に向け、新規に実装されたさまざまな機能の詳細を紹介していく。(編集局)
--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処理を開発する」を参照してください)。
Integration Servicesで作成したパッケージは、多くの場合、日次や週次のような形で定期的に自動で実行される運用が想定されます。このような利用法においては、パッケージの実行状況や問題発生に対する監視が非常に重要となります。パッケージの実行が失敗していることに気付かず、問題のあるデータをそのまま利用してしまった、というような問題は何としても避ける必要があります。このような問題に対処するために、Integration Servicesでは「イベントハンドラ」「ログの出力」「エラー出力」がサポートされています。まずは、イベントハンドラから見てみましょう。
Integration Servicesはタスク実行時に発生するエラーや警告などの、イベントに対する処理をイベントハンドラに定義することができます。イベントハンドラでは制御フロー、データフローのそれぞれを定義することが可能であるため、エラーの内容をメールで送信したり、一次データの削除を行うなど、各種イベントに対する柔軟な処理を定義できます。
イベントハンドラは、これまでと同様にBI Development Studioを利用して定義します。前回の記事で作成したプロジェクトにイベントハンドラを定義して、エラーに対するメールを送信する処理を定義してみましょう。
イベントハンドラは、「イベントハンドラ」タブより設定を行います。イベントハンドラを定義する対象を「実行可能ファイル」の一覧から選択します。データの取り込み処理を監視したいので、対象を「データフロータスク」とします。続いて「イベントハンドラ」は「OnError」を選択します(図1)。
「イベントハンドラ」は「OnError」以外にも主に次のようなイベントを利用することができます。
イベントハンドラ | イベント内容 |
OnError | エラー発生時に発生 |
OnExecStatusChanged | 実行状態が変化したときに発生 |
OnPostExecute | 実行完了直後に発生 |
OnPreExecute | 実行される直前に発生 |
OnTaskFailed | タスクが失敗したときにタスクから発生 |
OnWarning | 警告の発生時に発生 |
表1 イベントハンドラの種類 |
画面中央のリンクをクリックしてイベントハンドラの定義を開始します。「ツールボックス」より「メール送信タスク」をドラック&ドロップし、メール送信の定義を行いましょう。
メール送信タスクは、変数を利用した動的なメッセージ作成を行うことができますが、ここでは固定のメッセージを送信する設定とします。
項目 | 値 |
SmtpConnection | SMTP接続マネージャを新規に作成する |
From | 送信元のメールアドレスを指定する |
To | 送信先のメールアドレスを指定する |
Subject | 件名を指定する |
MessageSourceType | ソースの種類を「直接入力」「ファイル接続」「変数」から選択する |
MessageSource | メールの本文を指定する |
表2 メール送信タスクの設定 |
以上の設定で、「エラーが発生した場合、管理者へメールを送信する」が実現できました。これでパッケージ運用中に問題が発生した場合、管理者が問題に気付くことができます。次は問題を特定するために必要となるログの出力です。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.