次の方法で共有


第 2 章 「DTS インポート/エクスポートウィザード」 ~ DTS 編 ~

NEC

Eラーニング事業部

鈴木 智行

2002 年 12 月 3 日

目次

1. DTS パッケージの作成 1. DTS パッケージの作成
2. DTS インポート/エクスポートウィザードの各ステップ 2. DTS インポート/エクスポートウィザードの各ステップ
2-1 DTS インポート/エクスポートウィザードの起動
2-2 データソース (変換元)/変換先の選択
2-3 テーブルのコピーまたはクエリの指定
2-4 変換元テーブルとビューの選択
2-5 パッケージの保存、スケジュール設定、およびレプリケート
2-6 DTS パッケージの保存
3. DTS パッケージの手動実行 3. DTS パッケージの手動実行
4. 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 デザイナを紹介します。

dts.jpg

鈴木   智行: NEC Eラーニング事業部に所属。 入社以来、インストラクタとして教育業務に従事。汎用機、UNIX を経て、1994 年より マイクロソフト認定トレーナー (MCT) として、管理者向け教育を担当。SQL Server は 4.21a から携わっており、現在は主に SQL Server 2000 に関わるデータベース教育を中心に担当。Windows 2000 および SQL Server 2000 での MCSA, MCSE, MCDBA を取得しており、情報処理技術者試験のテクニカルエンジニア (データベース) も取得済。最近は MCA の 3 科目 (データベース、OS/ネットワーク、アプリケーション構築) 全てに合格し、C# を勉強中。