SQL Server Integration Services の管理と配置

公開日: 2005年10月6日

SQL Server Integration Services (SSIS) はエンタープライズ レベルのデータ統合プラットフォームです。SSIS は SQL Server 2005 のまったく新しいサブシステムです。このホワイト ペーパーでは、SSIS の管理機能および配置機能の使用方法について説明します。

*
トピック
はじめにはじめに
SSIS サービスの管理SSIS サービスの管理
パッケージの管理性パッケージの管理性
SSIS パッケージの配置SSIS パッケージの配置
まとめまとめ
その他の関連資料その他の関連資料

はじめに

今日、企業では一般に意思決定プロセスや日常業務がデータに大きく依存していますが、そうしたデータはさまざまなデータ ストレージ システムに保存され、形式や場所も異なります。このようなデータを有益なビジネス情報へと変えるために、通常はデータの集約、整理、標準化、要約が必要となります。たとえば、情報を別のデータ型に変換することが必要となる場合もあります。そうしなければ、必要なデータが異種データベース サーバーにさまざまなスキーマで保存されることになります。このような不一致を解決しなければ、データをターゲット システムに正しく読み込むことはできません。従来、データの抽出と変換の作業は主としてデータベース管理者 (DBA) が担ってきました。とはいえ、重要なデータに速やかにアクセスする必要があることから、他のユーザーもそうした作業のスキルを身に付けることが不可欠となっていました。このホワイト ペーパーでは、DBA、データベース開発者、IT 管理者、その他の IT 技術者を対象として、Microsoft® SQL Server™ 2005 Integration Services (SSIS) の管理機能および配置機能について説明します。

Microsoft SQL Server 2005 Integration Services (SSIS) は、総合的なデータ統合プラットフォームであり、これにより、さまざまなソースの情報を転送、マイニング、変換、および統合し、複数のシステムに読み込むことができます。重要な点は、SSIS が単なる ETL (Extract/抽出、Transform/変換、および Load/読み込み) ツールではないことです。SSIS は完全なデータ統合プラットフォームであり、開発および管理用のグラフィカル ツール、サービス、プログラム可能オブジェクト、アプリケーション プログラミング インターフェイス (API) などの多様な機能を備えています。SSIS は複雑なロジックをサポートするワークフロー エンジンを備え、これをさまざまなデータベース保守作業や高度なデータ転送作業に活用することができます。SSIS の機能を利用しているツールの代表例が SQL Server 2005 メンテナンス プラン ウィザードです。メンテナンス プラン ウィザードでは、すべてのデータベース保守作業で SSIS プロジェクトが使用されています。

このホワイト ペーパーでは、SSIS プロジェクトの管理および配置の方法について説明します。まず SSIS のアーキテクチャについて概説し、次に SQL Server 2005 の新しい SQL Server Integration Services 管理ツールについて説明します。さらに、より専門的な内容に踏み込み、SSIS パッケージを作成、配置、管理する際のベスト プラクティスについても説明します。

Integration Services の概要

SQL Server の以前のバージョンでは、データ変換サービス (DTS) が主要な Microsoft ETL ツールでした。DTS はきわめて便利なツールでしたが、スケーラビリティや、異なる SQL Server システムへのパッケージ配置の容易さの点で制限がありました。SSIS は、DTS とは設計そのものが異なる、まったく新しいシステムです。SSIS にも DTS と同様に操作性を向上させるグラフィカル ツールやプログラム可能オブジェクトがあります。ただし、SSIS では新たな手法を採用し、パッケージの制御フローとデータ フローを複数のコンポーネントに分割することによって、従来よりはるかに複雑で堅牢なパッケージの作成を可能にしました。

SSIS のアーキテクチャは基本的に次の 2 つの部分で構成されます。1 つはパッケージの制御フローを扱うデータ変換ランタイム エンジンであり、もう 1 つは、データ ソースから変換プロセス、そして変換先ターゲットまでのデータ フローを管理するデータ フロー エンジン (データ変換パイプライン エンジン) です。SSIS のアーキテクチャの概要を図 1 に示します。

図 1   SQL Server Integration Services の概要

図 1   SQL Server Integration Services の概要

SSIS デザイナはグラフィカル ツールの集まりです。各ツールのユーザー インターフェイスでオブジェクトをドラッグするだけで SSIS の作成や管理を行うことができます。SSIS ウィザードは、その指示に従って操作することで、データのインポートや単純なパッケージの作成を行えるグラフィカル ツールです。SSIS ではコマンド ライン ツールを使用してパッケージの作成や管理を行うこともできます。これらのツールについては、次のセクションで詳しく説明します。

データ変換ランタイム エンジンは、パッケージおよびその内容を処理するサービスを提供します。データ変換ランタイム エンジンのサービスには、パッケージの保存、パッケージの実行、ログ、デバッグ、イベント処理、パッケージの配置、変数、トランザクション、および接続の管理などがあります。

パッケージが SSIS の中核要素となります。SSIS パッケージが配置および実行の基本単位となります。パッケージは、SSIS のグラフィカル ツールを使用して作成できるほか、プログラムによって作成することもできます。パッケージは、制御フロー、データ フロー、接続、変数、イベント ハンドラなどの要素の集まりです。パッケージのプロパティを設定することで、トランザクションを組み込んだりセキュリティを実装したりすることができます。このような構成オブジェクトもパッケージに保存されます。

パッケージを作成するときに定義する重要な要素として、制御フロー、データ フロー、パッケージ内のタスクを相互にリンクする優先順位制約があります。SSIS パッケージ要素間の関係を図 2 に示します。

図 2   SSIS パッケージの要素

図 2   SSIS パッケージの要素
拡大表示する

パッケージの制御フローは、パッケージの実行時にどのようなアクションを実行するかを定義するものです。SSIS の制御フロー オブジェクトには、コンテナ、タスク、優先順位制約の 3 種類があります。

コンテナはパッケージの構造となるものです。コンテナによってタスクや他のコンテナを意味のある論理的な作業単位にグループ化します。

タスクはパッケージ内のさまざまな機能を実行します。SSIS パッケージには、制御フロー タスクとデータ フロー タスクという 2 種類のタスクが含まれています。制御フロー タスクはさまざまなワークフロー アクションを実行します。たとえば、SQL 実行タスクはターゲット データベース プラットフォーム上で SQL ステートメントを実行し、ファイル システム タスクはホスト サーバーのファイル システムに対して読み取りと書き込みを実行します。ファイル転送プロトコル タスクは FTP プロトコルを使用してファイルをリモート システムに転送し、メール送信タスクは SMTP プロトコルを使用して電子メール メッセージを送信します。さらに、メンテナンス プランのタスクは一連の基本的なデータベース保守操作を実行します。メンテナンス プランのタスクには、データベース バックアップ タスク、履歴クリーンアップ タスク、インデックスの再構築タスク、データベースの圧縮タスクなどがあります。最も重要で特別なタスクは、データ ソース間でデータを移動するデータ フロー タスクです。データ フロー タスクを使用すると、フラット ファイル、Excel、OLE DB、SQL Server などの変換元および変換先を定義することができます。

優先順位制約は、パッケージ内の項目を論理フローにリンクし、その項目の実行条件を指定します。3 種類の既定の優先順位制約があり、タスクの完了、成功、失敗のいずれかに基づいてパッケージ実行制御フローを制御できます。たとえば、SQL 実行タスクとデータ フロー タスクをリンクする優先順位制約を作成し、SQL 実行タスクが成功した場合のみデータ フロー タスクを実行するようにできます。SSIS では、評価演算子やタスクの実行結果に基づく優先順位制約を作成できます。評価演算子に基づく優先順位制約の例として、変数の内容または式の評価結果に基づいて次のタスクへのフローを決定するものがあります。

データ フロー タスクは、データ変換パイプライン エンジンを使用して、データ変換元アダプタからデータ変換先アダプタまでのデータおよび変換の流れを管理します。Integration Services には、変換元アダプタ、変換、変換先アダプタという 3 種類のデータ フロー要素があります。説明するまでもなく、変換元アダプタはソース (テーブル、ビュー、ファイルなど) からデータを抽出し、変換はデータを変更および要約し、変換先アダプタはデータをターゲット データ ストアに読み込みます。

SSIS の開発ツールと配置ツール

SSIS の新しい生産性向上ツールと管理ツールにより、さまざまな作業環境でグラフィカル インターフェイスを使用して、データ変換ソリューションの設計、作成、デバッグ、管理を行うことができます。SSIS にはコマンド ライン ユーティリティも用意されているため、SSIS パッケージをコマンド ラインから実行し、管理することもできます。

SSIS のウィザード

SSIS パッケージを作成するには、インポートおよびエクスポート ウィザードを使用するのが最も簡単な方法です。インポートおよびエクスポート ウィザードは以下の場所から起動できます。

Business Intelligence Development Studio   ソリューション エクスプローラを開き、[SSIS パッケージ] ノードを右クリックして、[SSIS インポートおよびエクスポート ウィザード] をクリックします。

SQL Server Management Studio   [SQL Server] ノードを開き、いずれかのデータベースを右クリックして、[タスク] - [データのインポート] または [データのエクスポート] をクリックします。

DTSWizard.exe の実行   DTSWizard.exe はインポートおよびエクスポート ウィザードを起動するコマンド ライン ユーティリティです。

インポートおよびエクスポート ウィザード

インポートおよびエクスポート ウィザードでは、その指示に従って操作することで、SQL Server、フラット ファイル、Microsoft Access (.mdb)、Microsoft Excel (.xls)、その他の OLE DB プロバイダなどの各種ソースからデータをコピーすることができます。インポートおよびエクスポート ウィザードを使用すると、最小限の変換機能でパッケージが作成されます。作成したパッケージを DTSX ファイルとしてファイル システムに保存してからデザイナで開き、より複雑なタスクやパッケージ ワークフローを追加することができます。

パッケージ構成ウィザード

パッケージ構成ウィザードでは、その指示に従って操作することで、パッケージと共に配置する構成を作成できます。パッケージ構成ウィザードは SSIS デザイナからのみ起動できます。

構成ウィザードを起動するには :

1.

[SSIS] メニューの [パッケージ構成] をクリックします。

2.

[パッケージの構成を有効にする] をオンにします。

3.

[追加] をクリックします。

パッケージ構成ウィザードでは、実行時に変数やオブジェクト プロパティを動的に変更する SSIS 構成を作成できるので、パッケージを開発環境から実稼動環境へ移行する際の柔軟性と簡便性が高まります。たとえば、パッケージ構成を使用すると、システム名やログイン情報などのパラメータを実行時にパッケージに渡すことができるため、パッケージを複数のサーバー間で移動することが可能となります。

パッケージ インストール ウィザード

パッケージ インストール ウィザードにより、パッケージをファイル システムまたは SQL Server データベースにインストールします。パッケージを配置するには、Business Intelligence (BI) Development Studio を使用して、配置するパッケージを収めた SSIS プロジェクトの配置ユーティリティを作成します。次に、変換先のシステム上でパッケージ インストール ウィザードを実行し、その指示に従ってパッケージをインストールし、構成オブジェクトを編集します。

パッケージ インストール ウィザードを起動するには、DTSInstall.exe コマンド ライン プログラムを実行します。このユーティリティは、SSIS デザイナで作成したパッケージに含まれています。

移行ウィザード

SSIS 移行ウィザードでは、既存の SQL Server 2000 DTS パッケージを SQL Server 2005 に移行することができます。SSIS 移行ウィザードでは、既存の SQL Server 2000 DTS パッケージが標準のタスクや変換を使用している場合はその大半を自動的に変換できますが、カスタムのタスクや変換を使用している DTS パッケージは変換できません。SSIS 移行ウィザードを起動するには、BI Development Studio で [プロジェクト] をクリックし、[DTS 2000 パッケージを移行] をクリックします。

SSIS 配置ツール場所

インポートおよびエクスポート ウィザード

[スタート] - [すべてのプログラム] - [Microsoft SQL Server 2005]、[Business Intelligence Development Studio] または [SQL Server Management Studio]

構成ウィザード

SSIS デザイナ、パッケージ デザイナ、[SSIS] - [パッケージ構成] - [パッケージの構成を有効にする] - [追加]

パッケージ インストーラ

DTSInstall.exe

移行ウィザード

BI Development Studio、[プロジェクト] - [DTS 2000 パッケージを移行]

表 1   SSIS ツール

SSIS デザイナ

SSIS デザイナは、SSIS パッケージの作成、実行、デバッグに必要な機能を備えたグラフィカル ツールの集まりです。SSIS デザイナは Business Intelligence Development Studio に含まれています。SSIS デザイナを起動するには、次の手順に従います。

1.

BI Development Studio を開きます。

2.

[ファイル] をクリックし、[新規作成] - [プロジェクト] をクリックします。[新しいプロジェクト] ダイアログ ボックスが表示されます。

3.

[Integration Services プロジェクト] をクリックして [OK] をクリックします。SSIS デザイナが開きます。

SSIS デザイナは強力なドラッグ アンド ドロップ開発環境であり、異種データ ソースとの接続、複雑なワークフロー、データ変換、およびイベント ドリブン ロジックで構成される堅牢で複雑なデータ変換ソリューションを作成することができます。SSIS デザイナはまったく新しいツールであるため、経験豊富な DTS ユーザーであっても使いこなすまでには少し時間を要します。SSIS デザイナがどのようなツールであるかを簡単にひととおり学ぶには、SSIS インポートおよびエクスポート ウィザードを使用して作成された単純なパッケージを開き、編集するのが効果的です。SSIS デザイナのウィンドウを図 3 に示します。

図 3   SSIS デザイナ

図 3   SSIS デザイナ
拡大表示する

BI Development Studio で新しい SSIS ソリューションを作成すると、空のパッケージが自動的に作成され、プロジェクトに追加されます。SSIS デザイナのグラフィカル ユーザー インターフェイスから別のウィンドウが表示され、そこでパッケージの制御フロー、データ フロー、イベント ハンドラを構築することができます。SSIS デザイナでは、ログ、パッケージを再開するチェックポイントの実装、トランザクションの組み込みによるロールバックの管理、変数のマッピング、デバッグ用ブレークポイントの設定などの機能を実行できます。SSIS デザイナには、パッケージ要素が階層形式で表示される [パッケージ エクスプローラ] ペインも組み込まれています。

SQL Server Management Studio

SQL Server Management Studio は SQL Server 2000 Enterprise Manager の後継ツールです。SQL Server Management Studio には、SQL Server Enterprise Manager に含まれていた機能がすべて含まれています。それに加え、パッケージの実行状況をグラフィカルに表示し、管理する機能もあります。Management Studio には、SQL Server データベースやファイル システムに保存されているパッケージのフォルダ ビューが表示されます。このビューでは、フォルダの追加、削除、および名前の変更が可能です。インポート/エクスポート機能があるため、パッケージを別のストレージ形式にコピーすることもできます。詳細については、後述の「SQL Server Management Studio による SSIS パッケージの管理」を参照してください。

SQL Server 2005 には新しい SSIS サービスとして Microsoft Windows サービスが追加され、これにより、SQL Server Management Studio による SSIS パッケージの管理とパッケージ実行の監視が可能になりました。

SSIS パッケージ管理ユーティリティ (dtutil)

SSIS には、コマンド ラインから実行できるパッケージ管理ユーティリティ (dtutil) が含まれています。dtutil コマンド プロンプトでは、データベースやファイル システムに保存された SSIS パッケージの管理作業を実行することができます。コマンド プロンプト オプションを使用して、パッケージのコピー、移動、削除、存在確認のいずれかを指定できます。

SSIS パッケージ実行ユーティリティ (dtexec & dtexecui)

SSIS には、パッケージ管理ユーティリティに加え、dtexec と dtexecui という 2 つのパッケージ実行ユーティリティが用意されています。

dtexec は、適切なコマンド プロンプト オプションを使用してコマンド ラインから実行できます。dtexec では、接続、プロパティ、変数、ログなど、パッケージのすべての構成機能および実行機能を設定することができます。この新しいツール dtexec は、SSIS パッケージをコマンド ラインまたは独自に作成したコマンド シェル スクリプトから実行する際に使用する主要なツールとなります。

dtexecui は、パッケージの読み込みおよび実行に使用するグラフィカル ユーザー インターフェイスを表示するユーティリティです。このインターフェイスでは、実行するパッケージの構成や実行時属性を設定することができます。dtexecui のきわめて便利な機能の 1 つに、dtexec と必要なパラメータを指定して実行コマンドを作成できることがあります。このようなコマンドをコピーし、独自に作成した SSIS パッケージ実行バッチ ファイルに貼り付けることができます。

SSIS コマンド ライン ツール説明

dtutil

SSIS パッケージの管理

dtexec

SSIS パッケージの実行

dtexecui

SSIS パッケージの読み込みおよび実行に使用するグラフィカル ユーザー インターフェイスの表示

dtswizard

インポートおよびエクスポート ウィザードの起動

表 2   SSIS コマンド ライン ツール

開発フロー

SSIS データ ソリューション プラットフォームによって、データの抽出、操作、読み込みのプロセスがわかりやすく簡単になりました。まず、データの制御フローとデータ フローを管理する SSIS パッケージを設計します。SSIS パッケージは、グラフィカル ツールである BI Development Studio を使用して設計できるほか、インポートおよびエクスポート ウィザードを使用して単純なパッケージをすばやく作成することもできます。作成したパッケージは、ファイル システムと SQL Server データベースのどちらにも保存できます。dtutil コマンド ライン ユーティリティを使用すると、パッケージを SQL Server システム間で移動したり msdb データベースからファイル システムに移動したりすることができます。次に、SQL エージェント ジョブ スケジューラを使用するか、dtexec または dtexecui のいずれかを使用して、パッケージを実行します。SQL Server Management Studio を使用してパッケージの実行状況を監視および管理することができます。パッケージの開発フローについては、図 4 を参照してください。

図 4   SSIS 開発フロー

図 4   SSIS 開発フロー
拡大表示する

SSIS サービスの管理

SQL Server Management Studio を使用して SSIS パッケージの実行状況を監視することができます。SQL Server Management Studio には新たに [Integration Services] ノードが追加され、格納されている SSIS パッケージや実行中の SSIS パッケージがそこに表示されます。この SSIS 管理ノードは SSIS サービスを開始した後でなければ表示されません。SSIS サービスは SQL Server Integration Services をインストールするオプションを選択した場合にインストールされます。このサービスの目的は SSIS パッケージの管理を可能にすることです。SSIS サービスは、通常は SSIS をインストールすると既定で開始されます。開始されない場合は、次の手順に従って手動で開始することができます。

SSIS サービスを手動で開始するには :

1.

[スタート] をクリックし、[すべてのプログラム] をクリックします。

2.

[Microsoft SQL Server 2005] をポイントし、[SQL コンピュータ マネージャ] をクリックします。

3.

下方へスクロールし、[サービスとアプリケーション] セクションで [SQL Server 構成マネージャ] を展開します。次に [SQL Server 2005 のサービス] ノードを展開します。

4.

[SQL Server Integration Services] をクリックします。

5.

図 5 に示すように、右側のペインで SSIS Server のサービス エントリを右クリックし、ショートカット メニューの [開始] をクリックします。SSIS サービスが開始されます。

図 5   SSIS Server の開始

図 5   SSIS Server の開始
拡大表示する

SSIS サービスを常に実行しておくには、スタートアップの種類を [自動] に変更します。これによって、サーバーを起動すると自動的に SSIS サービスが開始されます。

SSIS サービスの目的は SSIS パッケージの実行状況を監視することであり、SSIS サービスが動作していることがパッケージの実行に必須であるわけではない点に留意してください。つまり、SSIS サービスを停止しても SSIS パッケージが実行できなくなることはありません。ただし、SSIS サービスが動作していると、SSIS デザイナが使用中のオブジェクトをキャッシュに格納できるため、デザイナのパフォーマンスが向上します。

SQL Server Management Studio による SSIS パッケージの管理

SSIS サービスを開始すると、SQL Server Management Studio で SSIS パッケージの実行状況を監視することができます。SSIS サービスの主要なメリットの 1 つは、SQL Server Management Studio に登録されているローカル SQL Server システムとリモート SQL Server システムの両方で実行されているパッケージを監視できることです。ただし、SQL Server Management Studio で既存の SSIS パッケージを管理しているときには、新たな SSIS パッケージを作成することはできません。パッケージを作成するには、BI Development Studio またはインポートおよびエクスポート ウィザードを使用するか、SSIS API で作成したプログラムを使用します。

SQL Server Management Studio を使用して SSIS パッケージを管理するには :

SQL Server Management Studio を開きます。

[サーバーへの接続] ダイアログ ボックスの [サーバーの種類] ボックスで [Integration Services] を選択します。

[サーバー名] に SQL Server の名前を入力し、認証情報を入力します。

SQL Server Management Studio が開き、オブジェクト エクスプローラに SSIS 管理情報が表示されます (図 6)。

図 6   SQL Server Management Studio による SSIS パッケージの管理

図 6   SQL Server Management Studio による SSIS パッケージの管理

既定では、[Integration Services] サーバー ノードには [実行中のパッケージ] と [格納されたパッケージ] という 2 つのフォルダがあり、これらのフォルダで SSIS パッケージを操作します。[実行中のパッケージ] フォルダには、現在ローカル サーバーで実行されている SSIS パッケージが表示されます。ご推察のとおり、このフォルダの内容はシステムの処理状況に従って変化します。現在実行されているパッケージの最新情報を表示するには、[実行中のパッケージ] フォルダの内容を手動で更新する必要があります。

[格納されたパッケージ] フォルダにはローカル サーバーに登録されている保存済みの SSIS パッケージが表示されます。既定では、このフォルダには [File System] と [MSDB] という 2 つのサブフォルダがあります。[File System] フォルダにはファイル システムに保存されている SSIS パッケージが表示され、[MSDB] フォルダには msdb データベースの sysdtspackages90 テーブルに保存されているパッケージが表示されます。注意が必要な点は、SSIS サーバーがファイル システムに保存されているパッケージを認識するのは、それらのパッケージが SSIS サービスの [File System] フォルダにインポートされた後であることです。また、保存済みの SSIS パッケージを表示できるだけでなく、SQL Server Management Studio でそれらのパッケージを操作することもできます。パッケージを右クリックすると、ショートカット メニューから以下の操作を実行できます。

新規フォルダ   ファイル システムまたは sysdtapackages90 テーブルに保存されたパッケージを表示するための新しいフォルダをオブジェクト エクスプローラに作成します。

パッケージのインポート   パッケージをファイル システムから msdb データベースにインポートします。

パッケージのエクスポート   パッケージをファイル システムから msdb データベースにエクスポートします。

パッケージの実行   dtexecui を使用してパッケージを実行します。

削除   パッケージを削除します。

名前の変更   パッケージの名前を変更します。

SQL Server Management Studio では、出荷時には [MSDB] フォルダと [File System] フォルダが既定の場所にありますが、[新しいフォルダの作成] を使用して、このフォルダ構造に新しいフォルダを追加することができます。[File System] フォルダの下位に新しいフォルダを作成すると、ファイル システムに新しいディレクトリが作成されます。それらのディレクトリの既定の場所は c:\Program Files\SQL Server\90\Packages です。[File System] フォルダにパッケージをインポートすると、ファイル システム内の同名のディレクトリにコピーされます。[MSDB] フォルダの下位にフォルダを作成すると、そのフォルダ構造を追跡する sysdtspackackefolder90 テーブルに新しいエントリが追加されます。ただし、パッケージ自体はその後も msdb データベースの sysdtspackaes90 テーブルに保存されたままです。SQL Server Management Studio の [フォルダ] を使用すると、組織構造をパッケージに適用し、類似したパッケージをグループ化することができます。

既定の SSIS パッケージ フォルダの変更

[File System] フォルダと [MSDB] フォルダは SQL Server Management Studio の既定のフォルダですが、実際にはユーザーによる構成が可能です。これらのフォルダの定義は SSIS サービスが起動時に読み取る XML ファイルに保存されています。SSIS サービスは、このファイルの場所をレジストリ パス HKLM\SOFTWARE\Microsoft\MSDTS\ServiceConfigFile から取得します。

SSIS スタートアップ フォルダをカスタマイズするには、定められた形式に従った XML ファイルを作成し、SSIS サービスがそのファイルを参照するように ServiceConfigFile レジストリ キーを変更します。次に、SSIS サービス構成ファイルの例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<DtsServiceConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<StopExecutingPackagesOnShutdown>true</StopExecutingPackagesOnShutdown>
<TopLevelFolders>
<Folder xsi:type="FileSystemFolder">
<Name>Fsystem__SQL2005-SSIS</Name>
<StorePath>C:\_work\VisualStudioProjects\DTS</StorePath>
</Folder>
<Folder xsi:type="FileSystemFolder">
<Name>Fsystem__SQL2005-SSIS MSN Money Projects</Name>
<StorePath>C:\_MoneyChartingRebuild\MoneyChartingRebuild2</StorePath>
</Folder>

<Folder xsi:type="FileSystemFolder">
<Name>Fsystem__SQL2005-SSISdts01 test packages</Name>
<StorePath>\\SQL2005-SSISdts01\c$\_work\testPackages</StorePath>
</Folder>
<Folder xsi:type="SqlServerFolder">
<Name>SQL__SQL2005-SSIS</Name>
<ServerName>SQL2005-SSIS</ServerName>
</Folder>
<Folder xsi:type="SqlServerFolder">
<Name>SQL__SQL2005-SSISdts01</Name>
<ServerName>SQL2005-SSISdts01</ServerName>
</Folder>

</TopLevelFolders>
</DtsServiceConfiguration>

このカスタム SSIS サービス構成ファイルを使用した場合の結果を図 7 に示します。

図 7   SSIS サービス フォルダのカスタマイズ

図 7   SSIS サービス フォルダのカスタマイズ

SSIS サービス構成ファイルの使用目的の 1 つは、複数のサーバーで共有する管理フォルダ構造を作成することです。そのためには、サービス構成ファイルをファイル共有に置き、各サーバーが共有構成ファイルを参照するように設定します。これによって、SSIS フォルダ構造がすべてのサーバーで同じものとなります。

SQL Server Management Studio による DTS 2000 パッケージの管理

SQL Server Management Studio では、SSIS パッケージだけでなく、SQL Server 2000 で作成され msdb データベースの dtspackages テーブルに保存された DTS パッケージも管理することができます。SQL Server Management Studio を使用して SQL Server 2000 DTS パッケージを管理するには、オブジェクト エクスプローラを開き、[サーバーへの接続] ダイアログ ボックスの [サーバーの種類] ボックスで [データベース サーバー] を選択します。図 8 に示すように、オブジェクト エクスプローラに [DTS 2000 パッケージ] ノードが表示されます。

図 8   SQL Server Management Studio による DTS 2000 パッケージの管理

図 8   SQL Server Management Studio による DTS 2000 パッケージの管理

[DTS 2000 パッケージ] フォルダには msdb データベースの sysdtspackages テーブルにある SQL Server 2000 パッケージが表示されます。DTS を管理するには、パッケージを右クリックし、表示されたショートカット メニューから実行するタスクを選択します。メニューには次のようなタスクがあります。

開く   SQL Server 2000 DTS デザイナを開きます。

パッケージの移行   移行ウィザードを開き、DTS パッケージを SSIS パッケージに移行します。

パッケージのエクスポート   パッケージを msdb データベースからファイル システムにエクスポートします。

削除   パッケージを msdb データベースから削除します。

名前の変更   パッケージの名前を変更します。

[開く] を使用するためには SQL Server 2005 システムに SQL Server 2000 DTS デザイナがインストールされている必要があることに注意してください。SQL Server 2000 DTS デザイナは、既存の SQL Server インストールが SQL Server 2005 にアップグレードされている場合、または SQL Server 2005 システムに SQL Server 2000 管理ツールがインストールされている場合は既にインストールされています。従来の DTS パッケージの使用に関する詳細については、後述の「SQL Server 2000 DTS パッケージの移行」を参照してください。

パッケージの管理性

SQL Server Management Studio と SSIS サービスによって、システムの見地から SSIS パッケージの実行を管理することが可能となります。さらに、SSIS の新機能を活用することにより、従来よりはるかにきめ細かい管理と堅牢性を SSIS パッケージに組み込むことができます。

チェックポイントからの再開

パッケージの実行エラーからの回復が SQL Server 2000 の DTS に付随する制限の 1 つでした。パッケージの実行が失敗した場合、パッケージ全体を始めから再実行する必要がありました。複雑なパッケージや大規模なデータ転送を伴うパッケージの実行中にエラーが発生した場合、回復には長い時間がかかっていました。SQL Server 2005 では、SSIS に追加されたチェックポイントのサポートによって、この DTS の制限に対処しています。SSIS パッケージにチェックポイントを設定すると、パッケージの実行とステータスに関する情報がチェックポイント ファイルに書き込まれます。チェックポイントが設定されているパッケージでエラーが発生した場合、パッケージを始めから再実行する必要はありません。データ変換ランタイム エンジンがチェックポイント ファイルを処理することにより、エラーの発生時に処理されていたコンテナの位置からパッケージの実行を再開することができます。チェックポイントからの再開によって、チェックポイントより前のタスクを再実行する必要がないため、複雑な操作を含むパッケージのエラー回復がきわめて容易になり、長時間を要するタスクを含むパッケージの実行時間も大幅に削減できます。

注意しなければならないのは、チェックポイントがパッケージのデータ フローではなく制御フローに適用されることです。チェックポイントによる再開の基本単位は制御フロー コンテナです。チェックポイントが設定されたパッケージの実行を再開するときには、エラーが発生した制御フロー タスクから開始されます。そのタスク内のすべてのデータ フローが制御フロー タスクの先頭から再実行されます。つまり、あるデータ フロー タスクの実行中にパッケージが停止した場合、そのデータ フロー タスクが始めから実行されます。最後に転送された行からタスクが再開するわけではありません。

チェックポイントを有効にするには、SSIS パッケージ プロパティでパッケージの SaveCheckpoints プロパティを True に設定します。チェックポイントを有効にした場合は、データの保存先も指定する必要があります。そのためには、パッケージの CheckpointFileName プロパティにチェックポイント ファイルを指定します。さらに、CheckpointUsage プロパティでチェックポイント ファイルの処理方法を指定します。CheckpointUsage プロパティには以下の値を指定できます。

Never   チェックポイント ファイルは使用されず、パッケージはパッケージ制御フローの先頭から実行されます。

Always   チェックポイント ファイルが必ず使用され、パッケージは実行エラーが発生したポイントから再開されます。チェックポイント ファイルが見つからない場合、パッケージの実行は失敗します。

IfExists   チェックポイント ファイルが存在する場合、パッケージは実行エラーが発生したポイントから再開されます。チェックポイント ファイルが存在しない場合は、パッケージの制御フローの先頭から実行されます。

パッケージのチェックポイント プロパティの例を図 9 に示します。

図 9   チェックポイントの有効化

図 9   チェックポイントの有効化

パッケージのチェックポイントを有効にすると、SSIS はチェックポイント ファイルにデータを書き込むことによってパッケージの実行状況を追跡します。SSIS は、このファイル内のデータに基づき、パッケージ内のどの制御フロー タスクが実行されたかを判断します。ログ プロバイダのログを使用しているパッケージの場合は、パッケージのチェックポイントの使用状況を示すイベントがプロバイダに書き込まれます。ログ プロバイダの詳細については、後述の「SSIS パッケージのログ」を参照してください。

パッケージ コンテナには、エラーへの対処方法を指定するプロパティである FailPackageOnFailure と FailParentOnFailure が含まれています。FailPackageOnFailure を有効にした場合、コンテナの実行中にエラーが発生すると、パッケージの実行が中断され、そのコンテナから実行が再開されます。FailParentOnFailure を有効にし、パッケージを親コンテナから子パッケージとして実行した場合は、エラーが発生すると、子パッケージと親パッケージの実行が中断され、子パッケージから実行が再開されます。

トランザクション サポート

パッケージの実行が失敗した場合でもデータベースが整合性のとれた状態を保つように、SSIS はデータベース トランザクションを完全にサポートしています。通常のデータベース トランザクションと同じように、パッケージによるデータベースへの変更をパッケージ タスクが成功した場合は 1 つの単位としてコミットし、タスクが失敗した場合は 1 つの単位としてロールバックすることにより、データベースの整合性を維持することができます。たとえば、トランザクション サポートを有効にしている場合、複数のデータ フロー タスクを含むパッケージの実行が失敗すると、すべてのデータ フロー タスクが行ったデータベース更新操作が完全にロールバックされるため、データベースの整合性が保たれます。エラー状態が修復され、パッケージの実行が再開されると、すべてのデータ フロー タスクが再実行されます。SSIS トランザクションでは、Microsoft 分散トランザクション コーディネータ (MS DTC) を利用することもできます。ただし、その場合、MS DTC をサポートする接続を使用する必要があります。SQL Server 接続の場合と同様、SSIS トランザクションは複数のアクティブな結果セット (MARS) もサポートしています。

トランザクションは、パッケージ、コンテナ、For ループ コンテナ、ForEach ループ コンテナ、シーケンス コンテナを含め、すべての SSIS コンテナ タイプについて有効にすることができます。トランザクション サポートを有効にするには、コンテナの TransactionOption プロパティを使用します。このプロパティは SSIS デザイナのプロパティ ウィンドウまたはプログラムによって設定できます。TransactionOption プロパティには以下の値を指定できます。

Not Supported   コンテナはトランザクションを開始せず、親コンテナが開始した既存のトランザクションにも参加しません。

Supported   コンテナはトランザクションを開始しませんが、親コンテナが開始した既存のトランザクションに参加します。

Required   コンテナがトランザクションを開始します。親コンテナによって開始されたトランザクションが既に存在する場合、コンテナはそのトランザクションに参加します。

変換エラーの処理

SSIS パッケージでは、データを変換すると同時に変換元アダプタから変換先アダプタへ移動することができます。SSIS には、変換プロセス中に発生したエラーに対処するために、変換できないデータの処理方法を列ごとに決定する機能があります。特定のフィールドの不正なデータを無視することも、また不正なデータが存在する行を保留テーブルに送り、後で処理することもできます。このような行を中央データベースに保存することにより、パッケージ変換エラーの一元的な監査および検証が可能となります。エラーが発生したパッケージを特定できるように、エラー フロー プロセスは、中央のエラー ログ データベースに書き込まれるエラー行にパッケージ名と実行識別情報を追加します。

イベント ハンドラ

イベントの発生と処理も SSIS の管理性を高める SQL Server 2005 の新機能の 1 つです。SSIS パッケージでは、イベント ハンドラを使用することによって、実行時にコンテナおよびタスクが発生させたイベントをプログラム的に処理することができます。

実行時には、タスク、コンテナ、パッケージなどのパッケージ実行可能ファイルがさまざまな状態を報告するためにイベントを発生させます。報告される状態には、エラー状態、タスクの開始、タスクの完了、可変ステータスの変化などがあります。SSIS では各種パッケージ要素に対応するカスタム イベント ハンドラを追加できるため、それによってパッケージの機能を拡張することができます。カスタム イベント ハンドラを使用すると、一時ファイルおよびデータベース オブジェクトのクリーンアップ、電子メールまたはその他の通知の送信、ログ情報の作成など、さまざまな管理タスクをパッケージで自動的に実行することができます。イベント ハンドラは、SSIS デザイナの [イベント ハンドラ] タブで作成します。このタブは BI Development Studio にあります。

パッケージ実行タスク

複雑なパッケージ ワークフローを複数のパッケージまたは作業単位に分割した方がよい場合があります。このような場合は、パッケージ実行タスクを使用することにより、あるパッケージを別のパッケージから実行することができます。たとえば、電子メールを送信する親パッケージがある場合は、SMTP サーバーに接続する子パッケージを作成し、親パッケージから子パッケージに電子メール アドレスを渡すことができます。

特定の操作に絞った小型の子パッケージを作成し、それを複数の親パッケージから呼び出すことにより、開発プロセスが簡略化し、パッケージの再利用度と管理性が向上します。

パッケージ実行のスケジュール設定

SQL Server エージェントを使用して SSIS パッケージの実行スケジュールを設定することができます。SQL Server エージェントは SQL Server 2005 の組み込みジョブ スケジュール設定ツールです。SQL Server エージェントは SSIS Server と同じように Windows サービスとして実装されており、ジョブのスケジュールを設定するためには、このサービスが動作している必要があります。また、これも SSIS Server と同様、SQL Server エージェント サービスはコンピュータの管理 MMC コンソールの SQL コンピュータ マネージャで管理します。

SQL Server Management Studio を使用して SSIS パッケージのスケジュールを設定する SQL Server エージェント ジョブを作成するには :

1.

オブジェクト エクスプローラを開きます。

2.

[SQL Server エージェント] ノードを展開します。

3.

[ジョブ] ノードを右クリックします。

4.

SQL Server エージェント ジョブは一連のジョブ ステップで構成されます。SSIS パッケージを実行するには、SQL Server エージェント ジョブに新しいジョブ ステップを追加します。そのためには、[手順] ページを選択し、[新規作成] をクリックします。図 10 に示す [新規ジョブ ステップ] ダイアログ ボックスが表示されます。

図 10   SSIS パッケージのスケジュール設定

図 10   SSIS パッケージのスケジュール設定
拡大表示する

SQL Server エージェントでは、SSIS パッケージを実行するジョブ ステップを作成するときに、SSIS デザイナまたは dtexec ユーティリティを使用してパッケージを実行する場合と同じ実行時プロパティを指定することができます。そうしたプロパティには、構成ファイルの指定、チェックポイントの有効化、ログの追加などが含まれます。ジョブに複数のパッケージまたは一連のジョブ ステップが含まれている場合は、各ジョブ ステップの完了、成功、または失敗に基づいてジョブの実行を制御するプロシージャを、各ステップの間に追加することができます。

パッケージのリモート実行

SSIS パッケージをリモート SQL Server システムで実行する場合は、SQL Server Management Studio を使用して、リモート サーバー上に SQL エージェント ジョブを作成することができます。この SQL エージェント ジョブでは、dtexec ユーティリティを呼び出してリモート システム上で SISS パッケージを実行する "エージェント実行タスク" を実行できます。

さらに、この SQL Server エージェント実行タスクを使用して、リモート SQL Server システム上で SISS パッケージを実行するパッケージを作成することもできます。SQL Server エージェント実行タスクは、"メンテナンス プラン" タスク セクションの下の SSIS デザイナのツールボックスにあります。SSIS デザイナに SQL Server エージェント実行タスクを追加する際に、Connection プロパティをリモート サーバーに設定することができます。これにより、SQL Server エージェント実行タスクを実行すると、パッケージがリモート サーバー上で実行されます。

SSIS パッケージのセキュリティ確保

SQL Server 2005 には、パッケージの暗号化やデジタル署名など、SSIS パッケージのセキュリティを確保するためのメカニズムが新たにいくつか追加されています。SSIS パッケージの暗号化によって、パッケージ内のデータを保護することができます。SSIS パッケージは、作成またはエクスポートの際に暗号化できます。SSIS では トリプル DES (Triple Data Encryption Standard) 暗号化アルゴリズムを使用しており、キーの長さは 192 ビットです。ユーザー キーに基づく暗号化では、データ保護 API (DPAPI) 標準が使用されます。パッケージの暗号化は、ProtectionLevel プロパティによって指定します。SSIS では、ProtectionLevel プロパティに以下の値を指定できます。

DontSaveSensitive   ユーザー認証データなどの機密データはパッケージに保存されません。SSIS デザイナでパッケージを開いても機密データは存在しないため、ユーザーがこれらのデータを入力する必要があります。"Sensitive" を含む他のすべての ProtectionLevel プロパティ値と同様、この値に設定した場合、影響を受けるのはパッケージ内の機密データだけです。パッケージの残りのデータは変更されません。

EncryptSensitiveWithUserKey   機密データはパッケージに保存されますが、パッケージを作成またはエクスポートしたユーザーに基づくキーによって暗号化されます。パッケージを実行できるのは、それを作成したユーザーだけです。このパッケージを別のユーザーが SSIS デザイナで開くと、機密データは暗号化されたままであるため、開いたパッケージに機密データは表示されません。

EncryptSensitiveWithPassword   機密データはパッケージに保存されますが、パッケージを作成またはエクスポートするときに指定したパスワードで暗号化されます。このパッケージを別のユーザーが SSIS デザイナで開く場合は、パスワードを入力しなければ暗号化されたデータにはアクセスできません。パスワードがわからない場合は、SSIS デザイナでパッケージを開いても機密データは表示されません。

EncryptAllWithPassword   パッケージの内容全体がパッケージを作成またはエクスポートするときにユーザーが指定したパスワードで暗号化されます。このパッケージを SSIS デザイナで開くときには、パッケージのパスワードを入力する必要があります。パスワードがわからない場合は、パッケージを開くことはできません。

EncryptAllWithUserKey   パッケージの内容全体がパッケージを作成またはエクスポートしたユーザーのユーザー キーに基づくキーで暗号化されます。パッケージを開くことができるのは、それを作成したユーザーだけです。

ServerStorage   パッケージは暗号化されません。パッケージの内容は、データベースのオブジェクト アクセス セキュリティによって保護されます。ServerStorage を使用する場合は、パッケージを SQL Server データベース msdb の sysdtspackages90 テーブルに保存する必要があります。パッケージをファイル システムに保存することはできません。

SSIS パッケージ セキュリティ モデルも拡張が可能です。SSIS パッケージの XML スキーマには、パッケージのプロパティへのアクセスを制御する Sensitive 属性があります。たとえば、パッケージの Sensitive 属性を 1 に設定した場合、ユーザーがそのパッケージを開いたときには、機密データはまったく表示されません。開発者は、この Sensitive 属性を使用することによって、SSIS カスタム コンポーネントに対する保護と同種の保護を適用することができます。

ProtectionLevel プロパティを ServerStorage に設定した場合、データベースに保存されたパッケージへのアクセスを制御するには、SQL Server データベース ロールを使用します。SQL Server 2005 には、以下の SSIS パッケージ管理ロールが既定で定義されています。これらのロールにアクセスするには、SQL Server Management Studio を開き、msdb データベースを展開し、[セキュリティ] - [ロール] - [データベース ロール] の順に展開します。

db_dtsadmin   SSIS パッケージ管理者権限

db_dtsltduser   ユーザーにアクセス許可が与えられた SSIS パッケージのみを実行する権限

db_dtsoperator   パッケージの実行、バックアップ、復元などの SSIS パッケージ操作権限

SSIS パッケージの管理用に独自のカスタム データベース ロールを作成することもできます。作成したロールに適切なユーザーを追加し、それらのロールを SSIS パッケージに割り当てます。

パッケージ ロールを有効にするには、図 11 に示すように、SQL Server Management Studio で保存済みのパッケージを右クリックし、ショートカット メニューの [パッケージのロール] をクリックします。

図 11   パッケージ ロールの追加

図 11   パッケージ ロールの追加

SSIS パッケージにはデジタル署名を付加することもできます。パッケージにデジタル署名を付加することにより、SQL Server は実行するパッケージの信憑性を確認することができます。パッケージのデジタル署名は、SSIS デザイナでの設計プロセス中に付加します。パッケージにデジタル署名を付加すると、そのパッケージは読み取り専用となり、変更することはできなくなります。

SSIS パッケージのログ

SSIS パッケージのイベントを記録することにより、パッケージの実行中に処理されたタスクの状況を確認することができます。SSIS パッケージのログを有効にすると、SSIS パッケージ内のタスクおよびコンテナの実行を追跡するレコードが作成されます。

パッケージの作成者は、パッケージごと、および制御フロー オブジェクトごとに、ログ エントリを生成するオブジェクトを選択し、ログ エントリの内容を指定することができます。ログ データは、1 つまたは複数の "ログ プロバイダ" に送信できます。ログ プロバイダは、パッケージ作成者がパッケージごとに構成できます。たとえば、パッケージのログ エントリをテキスト ファイルと Windows イベント ログの両方に送信することもできます。

[SSIS] メニューの [イベントの記録] をクリックして、[ログ イベント] ウィンドウを開くことにより、Business Intelligence Studio でログ エントリを参照したりクリップボードにコピーしたりすることができます。

図 12 は、SSIS パッケージ ログの概念図を示しています。ログはサポート サーバーに保存されるため、一元管理が可能です。

図 12   SSIS パッケージのログ

図 12   SSIS パッケージのログ

表 3 に、SSIS に組み込まれているログ プロバイダの一覧を示します。

ログ プロバイダ説明

SQL Server プロファイラ ログ プロバイダ

SQL Server プロファイラで表示可能なログ ファイルを作成します。既定のファイル拡張子は .trc です。

SQL Server ログ プロバイダ

SQL Server 2005 データベースの sysdtslog90 テーブルにログ エントリを書き込みます。

Windows イベント ログ プロバイダ

ローカル コンピュータ上の Windows イベント ログのアプリケーション ログにエントリを書き込みます。

XML ファイル ログ プロバイダ

XML ファイルにログ エントリを書き込みます。既定のファイル拡張子は .xml です。

テキスト ファイル ログ プロバイダ

ログ エントリをコンマ区切り値 (CSV) 形式で ASCII テキスト ファイルに書き込みます。既定のファイル拡張子は .log です。

表 3   ログ プロバイダ

SQL Server プロファイラ ログ プロバイダ

SQL Server プロファイラ ログ プロバイダを使用すると、SQL Server プロファイラの GUI で開くことができるログを作成できます。SQL Server プロファイラを使用してシステムのパフォーマンス モニタが取得するログ データを取り込むことによって、強力な解析ツールとなり、パッケージの実行がシステムのパフォーマンスに与える影響を解析し、パッケージやタスクの実行時間が予想以上に長くなるなどの問題に対処することができます。

SQL Server ログ プロバイダ

SQL Server ログ プロバイダを使用すると、SSIS パッケージの実行時データを取得し、データベースの sysdtslog90 テーブルに保存できます。このテーブルを SQL ステートメントで照会することができます。SSIS ログ データを SQL Server に書き込むと、1 つまたは複数のシステムで実行された複数の SSIS パッケージのログ データを 1 か所に保存することも可能となります。SQL Server ログ プロバイダは、複数の SSIS パッケージの動作を簡単にレポートして監視したい場合に適しています。

Windows イベント ログ プロバイダ

Windows イベント ログ プロバイダは、Microsoft Operations Manager (MOM) などの運用管理ソフトウェアを使用してサーバーを監視している場合に適しています。MOM と SQL Server Management Pack を使用することによって、警告を定義し、パッケージから取得されるログ エントリに基づいて操作を実行することができます。

XML ファイル ログ プロバイダ

XML ファイル ログ プロバイダは、ログを視覚的に検証する必要がある場合に適しています。XSLT 変換を作成し、ログ データを Web ページとして表示することができます。XML は、パッケージの実行結果を外部の者と共有したり、SQL Server を含むさまざまなデータ ソースのログ ファイルを統合したりすることが必要な場合にも便利な形式です。

テキスト ファイル ログ プロバイダ

テキスト ファイル ログ プロバイダを使用すると、操作が容易なログを作成できます。テキスト ファイルは参照や転送が簡単にできるため、特にパッケージの基本テスト フェーズで役に立ちます。

カスタム ログ プロバイダ

カスタム ログ プロバイダを作成して、業務上のニーズに即した情報を取得することができます。カスタム ログ プロバイダを使用することにより、アプリケーション内の SSIS ログを統合することができます。

運用管理を円滑化するために、SSIS パッケージは基本的なログ情報を Windows イベント ログに常に書き込んでいます。これはログを有効にしていないパッケージの場合も同様です。SSIS パッケージが書き込むイベントはパッケージの開始と完了であり、これらのイベントは SQLISPackage と SQLISService のいずれかのイベント ソースを使用して特定できます。

SQL Server DTS の下位互換性

SQL Server 2000 DTS パッケージを現在使用しており、SSIS にアップグレードする場合、現在のパッケージ機能の多くを引き続き使用したいことがあります。SSIS には、DTS パッケージを実行または移行するための方法がいくつか用意されています。たとえば、単純なパッケージであれば移行ウィザードを使用して移行できます。そのほか、パッケージを手動で移行したり、パッケージ実行タスクを使用して既存のパッケージを実行したりすることもできます。

DTS パッケージを現状のまま (少なくとも一定期間は) 維持したい場合は、既存の DTS パッケージの実行を、SQL Server 2000 DTS パッケージ実行タスクを呼び出す SSIS パッケージから行います。SQL Server 2000 Enterprise Manager がインストールされているサーバーでは、SQL Server 2005 SSIS エディタで DTS パッケージを編集することができます。タスク エディタの [パッケージの編集] をクリックすると、SQL Server 2000 DTS エディタでパッケージが開きます。この方法により、SQL Server 2005 にアップグレードした後も元の DTS パッケージを実行することができます。その後、DTS パッケージを段階的に SSIS パッケージに移行するか、または修正を加えることにより、SSIS の新機能を使用できるようにします。

SQL Server 2000 DTS パッケージの移行

SSIS でも従来どおり DTS パッケージを実行できますが、DTS パッケージを更新し、SSIS パッケージの新機能を組み込むことで新機能のメリットが得られます。SSIS は設計およびオブジェクト モデルが一新されているため、移行ウィザードで簡単に移行できる DTS パッケージもあれば、手動で移行したり全面的に書き直したりしなければ SSIS の利点を完全には活用できない DTS パッケージもあります。

移行ウィザードの使用

移行ウィザードが最も適しているのは、単純なパッケージを移行する場合です。DTS パッケージ内のタスクと SSIS タスクが一対一で対応している場合、通常は直接 SSIS パッケージへ移行でき、追加の作業は必要ありません。表 4 に、一対一で対応するタスクの一覧を示します。

タスク説明

SQL 実行タスク

パッケージから SQL ステートメントまたはストアド プロシージャを実行します。

一括挿入タスク

大量のデータをテーブルまたはビューにコピーします。

ファイル転送プロトコル タスク

ファイルをダウンロード/アップロードし、ディレクトリを管理します。

プロセス実行タスク

アプリケーションまたはバッチ ファイルを実行します。

メール送信タスク

電子メール メッセージを送信します。

SQL Server オブジェクトのコピー タスク

2 つのサーバー間でテーブルをコピーします。

パッケージ実行タスク

別のパッケージを実行します。

表 4   単純な SSIS タスク

SSIS タスクに直接移行できる上記 7 種類の DTS タスクに加え、SSIS パッケージには移行できるが、移行後に動作しない可能性のあるタスクもいくつか存在します。これらの DTS タスクは、ActiveX スクリプト タスク、動的プロパティ タスク、および Analysis Services 処理タスクの 3 種類です。これらのタスクは基本的に SQL Server 2000 DTS オブジェクト モデルと連携して動作します。SSIS オブジェクト モデルが新たに導入されたことにより、これらのタスク コンポーネントに変更を加える必要があります。

カスタム タスク、データベース コピー ウィザード タスク、データ ドリブン クエリ タスク、データ ポンプ タスク、並列データ ポンプ タスク、データ変換タスクなど、移行ウィザードでは移行することができないタスクもあります。これらのタスクは、ネイティブ SSIS コンポーネントを使用して作成し直す必要があります。また、DTS 2000 パッケージ実行タスクを使用して既存の DTS パッケージを実行することもできます。

移行ウィザードの起動には 2 とおりの方法があります。まず、SQL Server Management Studio で [DTS 2000 パッケージ] ノード内に表示されたパッケージを右クリックし、ショートカット メニューの [パッケージの移行] をクリックする方法があります。もう 1 つは、BI Development Studio のソリューション エクスプローラで [SSIS パッケージ] フォルダを右クリックし、ショートカット メニューの [DTS 2000 パッケージを移行] をクリックするという方法です。

移行ウィザードでは、その指示に従って操作することで DTS パッケージの移行プロセスを完了できます。移行する DTS パッケージを選択し、移行したパッケージの保存先を指定し、ウィザードが移行プロセス中に行った変更の内容を記録するログ ファイルを割り当て、最後に移行プロセスの概要を確認します。移行ウィザードを使用すると、移行の結果を記録したログ ファイルが生成されます。移行が完了したら、このログ ファイルを開き、移行プロセス中に警告やエラーが発生していないかどうかを確認することができます。移行プロセスの完了後、移行ウィザードを閉じ、移行によって生成された SSIS パッケージを BI Development Studio エディタで開きます。このパッケージにエラーがある場合は修正し、要素を追加します。

パッケージ構成の作成

パッケージ構成によって、実行時に SSIS パッケージにデータを追加することができます。構成を使用する一般的な目的の 1 つは、サーバー名とユーザーのログイン情報を実行時に動的に適用することです。構成を有効にした SSIS パッケージを実行すると、パッケージは自動的に構成情報を読み込みます。構成の最も一般的な使用目的は、変数と接続情報を実行時にパッケージへ渡すことです。変数の場合は、実行時に使用する値を Value プロパティに割り当てます。同様に、OLE DB 接続のプロパティを動的に設定するには、接続マネージャの 3 つのプロパティ ConnectionSting、ServerName、InitialCatalog に対し、それぞれ別の構成を使用して値を割り当てます。このようなパッケージを実行時に使用すると、個々の構成の値に基づいて接続文字列が構築されます。

SSIS パッケージ構成を作成するには、パッケージ構成オーガナイザを使用します。このツールは BI Development Studio から開きます。

パッケージ構成を作成するには :

1.

BI Development Studio で [SSIS] メニューの [パッケージ構成] をクリックします。図 13 に示すパッケージ構成オーガナイザが開きます。

図 13   SSIS パッケージ構成オーガナイザ

図 13   SSIS パッケージ構成オーガナイザ
拡大表示する

2.

パッケージ構成オーガナイザが開いたら、[パッケージの構成を有効にする] リンクをクリックします。

3.

[追加] をクリックします。SSIS 構成ウィザードが起動します。

4.

構成ウィザードに表示される指示に従ってパッケージ構成を作成します。まず、構成の種類を決定します。構成データは以下の場所からパッケージに読み込むことができます。

レジストリ

環境変数

親パッケージ

XML ファイル

SQL Server

1 つのパッケージに対して複数の構成を作成することができます。個々の構成は、パッケージ構成オーガナイザに表示されている順にパッケージに適用されます。矢印のボタンを使用して構成を上下に移動できます。たとえば、企業や部門において、すべてのパッケージに適用する構成がある場合は、その構成ファイルを最初に適用し、その後で各部門に固有の構成ファイルを適用します。

単一の構成オブジェクトを作成して複数のパッケージに適用することもできます。たとえば、複数のパッケージをいくつかのシステムに移動する必要があり、各パッケージのプロパティではサーバー名だけが異なっている場合は、構成の種類が環境変数である構成オブジェクトを 1 つ作成し、この構成を個々のパッケージに適用します。構成の種類として XML ファイルを選択した場合は、拡張子が .dtsConfig である XML 構成ファイルが作成されます。

5.

次に、パッケージの実行時に構成によって値が設定されるプロパティまたは変数を選択します。XML ファイル構成および SQL Server 構成では、1 つの構成オブジェクトで複数のプロパティを選択することができます。それ以外の種類の構成では、1 つの構成につき 1 つの構成プロパティのみ使用できます。

6.

ウィザードが完了すると、新しい構成が [パッケージ構成オーガナイザ] ダイアログ ボックスの構成リストに追加されます。構成に変更を加える場合は、[編集] をクリックします。再び構成ウィザードが起動するので、オブジェクトやプロパティの選択を変更することができます。

SSIS パッケージの配置

SQL Server 2000 DTS では、DTS パッケージをサーバー間で移動することがきわめて困難な作業でした。パッケージを開発環境から実稼動環境に移動したり、ある実稼動環境から別の実稼動環境に移動したりするためには、パッケージを手動で編集し、すべての接続オブジェクトに正しいサーバーとデータベースを指定する必要がありました。言うまでもなく、パッケージを手動で構成するのは時間がかかり、誤りも発生しやすくなります。SQL Server Integration Services ではパッケージ構成オブジェクトを作成できるため、これまでのようなパッケージの手動構成は不要になりました。パッケージ構成によって、変数やオブジェクトのプロパティを実行時に動的に変更できるため、パッケージを配置する際の柔軟性が高まり、配置プロセスの管理がきわめて容易になります。

SSIS パッケージの配置には、次の 4 とおりの方法があります。

BI Development Studio の配置ユーティリティを使用する

SQL Server Management Studio のインポート/エクスポート機能を使用する

パッケージのコピーをファイル システムに保存する

コマンド ライン ユーティリティ dtutil を実行する

配置ユーティリティでは、SSIS パッケージや、パッケージ構成および DTSDeploymentManifest.xml ファイルなどのパッケージ依存関係を配置することができます。プロジェクトの配置ユーティリティを構築したら、SSIS パッケージ インストーラ ウィザードを実行し、パッケージをファイル システムまたは SQL Server 2005 のインスタンスにインストールします。配置プロセスの概要を図 14 に示します。

図 14   配置ユーティリティによる SSIS パッケージの配置プロセス フロー

図 14   配置ユーティリティによる SSIS パッケージの配置プロセス フロー

パッケージ配置ユーティリティの作成

SSIS には "パッケージ配置ユーティリティ" と呼ばれる便利な機能があります。この機能を使用すると、SSIS パッケージ、パッケージ構成、およびサポート ファイルを 1 つの配置フォルダにまとめ、パッケージをインストールするための実行可能セットアップ ファイルを構築することができます。

BI Development Studio でパッケージを設計し、プロジェクトに構成を追加したら、ソリューション エクスプローラでプロジェクト名を右クリックします。ショートカット メニューの [プロパティ] をクリックすると、図 15 に示す [プロパティ ページ] ダイアログ ボックスが表示されます。

図 15   パッケージ配置ユーティリティのプロパティ

図 15   パッケージ配置ユーティリティのプロパティ
拡大表示する

[プロパティ ページ] ダイアログ ボックスで [配置ユーティリティ] をクリックし、プロパティ値を設定します。表 5 に、配置ユーティリティのプロパティの一覧を示します。

プロパティ説明

AllowConfigurationChange

配置プロセス中に構成の更新を可能にするかどうかを指定します。このプロパティの既定値は True です。

CreateDeploymentUtility

プロジェクトの構築時にパッケージ配置ユーティリティを作成するかどうかを指定します。このプロパティの既定値は False です。配置ユーティリティを作成するためには、このプロパティを True に設定する必要があります。

DeploymentOutputPath

プロジェクトの配置で使用するファイルの場所を示す SSIS プロジェクトからの相対パスを指定します。

表 5   パッケージ配置プロパティ

配置ユーティリティを作成するには、プロジェクトのプロパティ ページで CreateDeploymentUtility プロパティを True に設定します。次に、BI Development Studio メニューの [ビルド] をクリックします。プロジェクトを構築すると、プロジェクト名 .SSISDeploymentManifest.xml ファイルが bin/Deployment フォルダまたは、DeploymentOutputPath プロパティで指定されている場所に生成されます。

パッケージ インストーラ ウィザードの使用

パッケージ インストーラ ウィザードを使用するには :

インストール プロセスの手順を示すパッケージ インストーラ ウィザードを起動するには、プロジェクト名 .SSISDeploymentManifest.xml ファイルをダブルクリックします。

配置の種類として、[ファイル システムに配置] と [SQL Server に配置] のいずれかを選択します。

[ファイル システムに配置] は、パッケージを .dtsx ファイルとしてファイル システムにインストールします。インストール後に SSIS デザイナを使用して .dtsx ファイルを開き、編集することができます。SSIS ファイル システム パッケージをカスタム フォルダに保存している場合は、適切なターゲット フォルダを選択します。

[SQL Server に配置] は、パッケージを SQL Server 2005 データベース msdb の sysdtspackages90 テーブルにインストールします。このオプションを選択した場合は、XML 構成ファイルなどのパッケージの依存関係ファイルもファイル システム上の指定したフォルダにコピーされます。

いずれの配置オプションでも、パッケージが登録され、SQL Server Management Studio の Stored Packages フォルダに表示されます。

次に、[ファイル システムに配置] の場合はインストール フォルダの場所、[SQL Server に配置] の場合はターゲット SQL Server をそれぞれ指定します。SQL Server に配置する場合は、パッケージと依存関係ファイルをコピーするファイル システム フォルダも指定します。構成が組み込まれたパッケージの場合は、更新可能な構成値を必要に応じて編集することもできます。パッケージ インストーラ ウィザードには、図 16 に示すような指示が表示されます。

図 16   パッケージ インストーラ ウィザード

図 16   パッケージ インストーラ ウィザード

パッケージ インストーラ ウィザードを実行すると、パッケージの ProtectionLevel プロパティを指定するよう指示されます。パッケージの ProtectionLevel プロパティの詳細については、前述の「SSIS パッケージのセキュリティ確保」を参照してください。

パッケージの手動配置

BI Development Studio に組み込まれたパッケージ配置ツールを使用するだけでなく、手動でパッケージを配置することもできます。手動配置の場合も、パッケージの作成手順は配置ツールを使用する場合と同じです。BI Development Studio の SSIS デザイナを使用してパッケージを作成します。その結果、.dtsx パッケージ ファイルが生成されます。

パッケージ ファイルが生成されたら、それを変換先のシステムに手動でコピーすることもできれば、カスタム配置スクリプトにファイル コピー ルーチンを挿入することも可能です。SSIS パッケージを手動で配置する場合は、必要なサポート ファイルを配置スクリプトに明示的に指定する必要があります。パッケージを SQL Server にインストールする場合、またはファイル システム内のパッケージを SSIS サービスが認識できるようにする場合は、配置プロセス中に dtutil ツールを実行する必要があります。dtutil では、パッケージをファイル システムと SQL Server データベース msdb のどちらにもコピーできます。パッケージを変換先に移動したら、dtexec または dtexecui を使用してパッケージを実行することができます。

SSIS パッケージは SQL Server がインストールされていないシステムでも実行できます。ただし、SQL Server 2005 がインストールされていないシステムでパッケージを実行するためには、.NET Framework と SSIS ランタイムをインストールする必要があります。

まとめ

SQL Server 2005 の新しいツール SQL Server Integration Services (SSIS) は、エンタープライズ レベルのデータ統合プラットフォームです。SSIS には、データ転送からデータベース保守まで、さまざまなタスクに対応するワークフロー開発エンジンが組み込まれています。SSIS の管理機能や配置機能は、これまでのデータ変換サービスの同じ機能よりも大幅に強化されています。SSIS では、パッケージの構成を作成し、パッケージを実行時のさまざまな条件に柔軟に適応させることができます。SSIS サービスを使用することにより、パッケージの保存を管理し、パッケージの実行を監視することができます。SQL Server 2005 が備えるツール群により、パッケージの管理および配置を、統合開発環境とコマンド ラインのどちらからでも実行することができます。

その他の関連資料

SQL Server 2005 の Integration Services の詳細については、次のサイトを参照してください。

http://msdn.microsoft.com/SQL/sqlwarehouse/SSIS/default.aspx (英語)

Michael Otey 氏は、Windows IT Pro Magazine のテクニカル ディレクタであり、SQL Server Magazine のシニア テクニカル エディタでもあります。相互運用性およびデータベース アプリケーションを専門とするソフトウェア開発コンサルティング会社 TECA, Inc. の社長も務めています。1983 年以来、DB2 の各種バージョンにかかわってきました。『SQL Server 2005 New Features Guide』(Osborne McGraw Hill) の著者でもあります。

Denielle Otey 氏は、TECA, Inc. の副社長であり、C、VC++、VB、Visual Studio .NET によるソフトウェアの設計、実装、テスト、デバッグに関して豊富な知識を備えたソフトウェア コンサルタントでもあります。SQL Server ユーティリティの開発者であり、DB2 アプリケーションを開発し、TECA, Inc. から提供しています。『ADO.NET The Complete Reference』(Osborne McGraw Hill) の共著者でもあります。

このドキュメントは A23 Consulting と共同で作成されたものです。