NEC
Eラーニング事業部
鈴木 智行
2002 年 12 月 3 日
目次
1. DTS パッケージの作成
2. DTS インポート/エクスポートウィザードの各ステップ
2-1 DTS インポート/エクスポートウィザードの起動
2-2 データソース (変換元)/変換先の選択
2-3 テーブルのコピーまたはクエリの指定
2-4 変換元テーブルとビューの選択
2-5 パッケージの保存、スケジュール設定、およびレプリケート
2-6 DTS パッケージの保存
3. DTS パッケージの手動実行
4. DTS パッケージのセキュリティ
4-1 DTS パッケージのパスワード
4-2 スケジューリングされた DTS パッケージ実行時のセキュリティ
1. DTS パッケージの作成
第 1 章でご紹介したとおり、繰り返し行うような作業内容を DTS では DTS パッケージと呼び、DTS パッケージとして保存すれば再利用することができます。では DTS パッケージはどのようにして作成するのでしょうか? DTS パッケージを作成する方法は次の 3 つの方法です。
- DTS インポート/エクスポートウィザード
インポートとは SQL Server データベースにデータを入力することであり、エクスポートとは SQL Server からデータを出力することです。DTS インポート/エクスポートウィザードでは図 1-1 に示されるような 1:1 の簡単なデータ変換/転送で使用します。
図 1-1 簡単なデータ変換/転送
- DTS デザイナ
DTS デザイナは図 1-2 に示されるような n:n のデータ変換/転送や、複雑なワークフローを含む高度なデータ変換ソリューションで使用します。
図 1-2 高度なデータ変換ソリューション
DTS デザイナは DTS インポート/エクスポートウィザードの機能を包含し、簡単なデータ変換/転送を行う DTS パッケージの作成にも対処可能です。
- DTS アプリケーションのプログラミング
DTS オブジェクトモデルに直接アクセスして DTS パッケージを作成します。COM をサポートするアプリケーション(例えば Visual Basic や Visual C++ など)が利用可能です。
今回の連載では、第 2 章で DTS インポート/エクスポートウィザードを紹介し、第3章以降で DTS デザイナについて紹介します。
2. DTS インポート/エクスポートウィザードの各ステップ
では、Access のファイル (C:\casts.mdb) から SQL Server のデータベース (movie) 中のテーブル (casts) にデータ転送する簡単なケース (図 2-0-1) を使って DTS インポート/エクスポートウィザードの各ステップをみていきましょう。
図 2-0-1 SQL Server データベースから Access ファイルにデータ転送
2-1 DTS インポート/エクスポートウィザードの起動
DTS インポート/エクスポートウィザードは以下の 3 つの方法で起動可能です。
SQL Server Enterprise Manager
[ツール] - [ウィザード] や [表示] - [タスクパッド] の [ウィザード] タブからだけではなく、様々なメニューで起動できます。この方法では DTS インポートと DTS エクスポートを選択できますが、結局同じウィザードが起動します。Microsoft SQL Server メニュー
SQL Server Enterprise Manager を起動しなくても [スタート] - [プログラム] - [Microsoft SQL Server] - [データのインポートとエクスポート] から起動できます。dtswiz ユーティリティ
コマンドプロンプトから起動できます(画面 2-1-1)
画面 2-1-1 dtswiz ユーティリティから DTS インポート/エクスポートウィザードの起動
2-2 データソース(変換元)/変換先の選択
OLE DB アーキテクチャにより DTS は、多種多様な OLE DB 準拠の形式で格納されている変換元/変換先データを扱うことが可能です。図 2-0-1 のケースでは変換元に Microsoft Access (C:\casts.mdb) (画面 2-2-1)、変換先に Microsoft OLE DB Provider for SQL Server (movie) (画面 2-2-2) を選択し、設定します。
画面 2-2-1 データソース ( 変換元 ) の設定
画面 2-2-2 変換先の設定
2-3 テーブルのコピーまたはクエリの指定
ここでは変換元から 1 つ以上のテーブル/ビューをコピーするのか、クエリの結果をコピーするかを指定します(画面 2-3-1)。
画面 2-3-1 テーブル/ビューをコピーするのか、クエリの結果をコピーするかを指定
さらに変換元/変換先に SQL Server を指定した場合には、[SQL Server データベース間のオブジェクトとデータのコピー] が選択できるようになり、データだけではなく、データベースオブジェクトを転送することも可能です (画面 2-3-2)。
画面 2-3-2 コピーするオブジェクトの詳細を指定
[変換するデータの指定にクエリを使用] を選択した場合には、直接 Transact-SQL を入力することできますが、クエリビルダによってクエリを自動生成することも可能です (画面 2-3-3)。
画面 2-3-3 クエリビルダ ( 列の選択 )
図 2-0-1 のケースでは [変換元データベースからテーブルとビューをコピー] を選択します。
2-4 変換元テーブルとビューの選択
ここではコピーするテーブルまたはビューを 1 つ以上選択し、その変換先を指定します。変換先は既存のテーブルを選択 (画面 2-4-1) しても構いませんし、テーブル名を入力することで、新規テーブルを作成して変換先に指定することもできます。
画面 2-4-1 変換元/変換先テーブルの選択
また新規テーブルを作成した場合の列名やデータ型および桁数、データ転送でなくデータ変換のロジックを組み込みたい場合など、詳細を設定する場合には (...) を押下し、列マッピングと変換のウィンドウを開きます。列マッピングタブでは上記した列情報に加え、データを追加する、変換先のテーブルを削除して再作成するなどのオプションが選べます(画面 2-4-2)。
画面 2-4-2 列マッピングの指定
変換タブでは VB ScriptやJscript を使用して様々な変換の定義が可能です(画面 2-4-3)。
画面 2-4-3 ActiveX スクリプトによる変換の指定
例えば、変換元の FirstName 列と LastName 列を変換先の name 列に連結する VBScript は以下のような記述になります。
Function Main() DTSDestination("name") = DTSSource("FirstName")+DTSSource("LastName") Main = DTSTransformStat_OK End Function
2-5 パッケージの保存、スケジュール設定、およびレプリケート
ここではパッケージの実行時期、保存場所を設定します。ウィザード終了後、すぐに実行したい場合には[すぐに実行]を選択します(画面 2-5-1)。
画面 2-5-1 パッケージの保存、スケジュール設定、およびレプリケート
定期的に実行したい場合には [あとで実行するために、DTS パッケージをスケジュール]を選択します。ウィザード終了後にジョブが作成されます。このオプションは [DTSパッケージの保存] をチェックしないと使用することができません。
また [変換先データをパブリッシュするためにレプリケーションを使用] は、このデータ変換をレプリケーションの一部として適用するためのオプションです。簡単に DTS とレプロケーションを連携することができます。
DTS パッケージとして保存したい場合は、[DTS パッケージの保存] およぶ保存場所を指定します。第 1 章の 5.DTS パッケージと保存先で紹介しているので復習してください。
2-6 DTS パッケージの保存
ここでは DTS パッケージの名前と説明を記述します。SQL Enteprise Manager ではこの記述でパッケ-ジを区別することが可能です (画面 2-6-1)。またこの他に所有者パスワードとユーザーパスワードの指定ができますが、詳細は 4.DTS パッケージのセキュリティで紹介します。
画面 2-6-1 DTS パッケージの保存
以上のように DTS インポート/エクスポートウィザードは非常に簡単に DTS パッケージを作成可能です。
3. DTS パッケージの手動実行
DTS パッケージとして保存すれば、SQL Server Agent と連携して定期的に実行することも可能ですが、以下の3つの方法で実行可能です。
SQL Enterprise Manager
DTS パッケージの保存場所として SQL Server もしくは Meta Data Services を選択した場合には SQL Enterprise Manager から実行できます。SQL Server に保存した場合は、[データ変換サービス] - [ローカルパッケージ] から、Meta Data Services に保存した場合には、[データ変換サービス] - [Meta Data Services パッケージ] から対象のパッケージを右クリックして、[パッケージの実行] メニューから実行します。
画面 3-1 SQL Enterprise Manager での DTS パッケージの実行
dtsrun コマンド
dtsrun コマンドはコマンドプロンプトから起動します。例えば SQL Server に保存されている DTS パッケージは画面 3-1 のように実行します。
画面 3-2 dtsrun コマンドでの DTS パッケージの実行
dtsrun コマンドは構造化ストレージファイルに保存された DTS パッケージも実行可能です。表 3-3 に dtsrun コマンドの引数を表記しているので参考にしてください。
引数 |
説明 |
---|---|
/S サーバー名(\インスタンス名) |
接続する SQL Server のインスタンス |
/U ログインアカウント |
接続するときの SQL Server 認証ログインアカウント |
/P パスワード |
SQL Server 認証ログインアカウントのパスワード |
/E |
Windows 認証ログインアカウントの使用を指定 |
/N パッケージ名 |
DTSパッケージ名 |
/M パスワード |
DTS パッケージに設定されたパスワード |
/F ファイル名 |
構造化ストレージファイル名 |
/R リポジトリデータベース名 |
リポジトリデータベース名 |
表 3-3 dtsrun コマンドの引数
DTS Run ユーティリティ
DTS Run ユーティリティはコマンドプロンプト dtsrunui と起動します。その後 [DTS 実行] および [DTS の実行の詳細設定] ダイアログボックスで、接続設定とログ記録に関する情報を入力し(画面 3-4)、[実行] を押下します。[スケジュールボタン] では SQL Server Agent と連携することも可能です。
画面 3-4 DTS Run ユーティティでの DTS パッケージの実行
4. DTS パッケージのセキュリティ
DTS パッケージを表示、編集、スケジューリング、実行する場合にはセキュリティを考慮する必要があります。
4-1 DTS パッケージのパスワード
DTS パッケージの保存場所として SQL Server もしくは構造化ストレージファイルを選択した場合には、DTS パッケージに以下の 2 種類のパスワードを指定できます (画面 2-6-1)。
所有者パスワード
ユーザーパスワード
ユーザーパスワードの設定には所有者パスワードの設定も同時に必要です(画面4-1-1)。
画面 4-1-1 ユーザーパスワードの設定には所有者パスワードの設定も必要
ユーザーパスワードを知っていれば、パッケージの実行が可能 (画面 4-1-2) ですが、編集することはできません。
画面 4-1-2 実行時にはパスワードの入力が必要
4-2 スケジューリングされた DTS パッケージ実行時のセキュリティ
DTS パッケージは現在ログインしているユーザーのセキュリティコンテキストで実行されます。したがって変換元(データソース)や変換先に対し適切な権限がないと DTS パッケージの実行は失敗します。例えば画面 2-2-2 では変換先の SQL Server に対し、Windows 認証で接続しているため、現在ログインしているユーザーは movie データベースに対し、INSERT 権限を持っていないといけません (画面 4-2-1)。
画面 4-2-1 適切な権限がないと DTS パッケージの実行は失敗
DTS パッケージをスケジューリングした場合には作成したジョブの所有者によって異なります。詳しくは連載 「SQL Server エージェントを有効に使ってますか?」 の 「第 2 章 ジョブによる管理作業の自動化」 にある 「2. ジョブの実行権限」 を参考にしてください。
次回は DTS デザイナを紹介します。
鈴木 智行: NEC Eラーニング事業部に所属。 入社以来、インストラクタとして教育業務に従事。汎用機、UNIX を経て、1994 年より マイクロソフト認定トレーナー (MCT) として、管理者向け教育を担当。SQL Server は 4.21a から携わっており、現在は主に SQL Server 2000 に関わるデータベース教育を中心に担当。Windows 2000 および SQL Server 2000 での MCSA, MCSE, MCDBA を取得しており、情報処理技術者試験のテクニカルエンジニア (データベース) も取得済。最近は MCA の 3 科目 (データベース、OS/ネットワーク、アプリケーション構築) 全てに合格し、C# を勉強中。