Share via


SQL Server 変換先

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

SQL Server 変換先はローカルの SQL Server データベースに接続し、データを SQL Server テーブルまたはビューに一括で読み込みます。 SQL Server 変換先は、リモート サーバーの SQL Server データベースにアクセスするパッケージでは使用できません。 代わりに、このパッケージでは OLE DB 変換先を使用する必要があります。 詳細については、「 OLE DB 変換先」を参照してください。

アクセス許可

SQL Server 変換先が含まれたパッケージを実行するユーザーには、"グローバル オブジェクトの作成" 権限が許可されている必要があります。 [管理ツール] のローカル セキュリティ ポリシー ツールを使用することにより、この権限をユーザーに許可できます。 SQL Server 変換先を使用するパッケージの実行時にエラー メッセージが表示された場合は、パッケージを実行しているアカウントに "グローバル オブジェクトの作成" 権限が許可されていることを確認してください。

一括挿入

SQL Server 変換先を使用してリモートの SQL Server データベースにデータを一括読み込みしようとすると、次のようなエラー メッセージが表示されることがあります。"OLE DB レコードを使用できます。 ソース : "Microsoft SQL Server Native Client" Hresult: 0x80040E14 説明 : "SSIS ファイル マッピング オブジェクト 'Global\DTSQLIMPORT' を開けなかったので、一括読み込みできませんでした。 オペレーティング システム エラー コード 2 (指定されたファイルが見つかりません)。 Windows セキュリティ経由でローカル サーバーにアクセスしていることを確認してください。""

SQL Server 変換先で行われるのは、一括挿入タスクで行われるものと同じ、SQL Server への高速なデータ挿入です。ただし、パッケージで SQL Server 変換先を使用することによって、データが SQL Server に読み込まれる前に変換を列データに適用できます。

SQL Serverにデータを読み込む場合は、OLE DB 変換先ではなく SQL Server 変換先を使用することをお勧めします。

一括挿入オプション

SQL Server 変換先で高速読み込みデータ アクセス モードを使用する場合、次の高速読み込みオプションを指定できます。

  • インポートしたデータ ファイルの ID 値を保持します。または、 SQL Serverによって割り当てられた一意の値を使用します。

  • 一括読み込み操作中に、NULL 値を保持します。

  • 一括インポート操作中に、インポート先のテーブルまたはビュー上の制約を確認します。

  • 一括読み込み操作中に、テーブルレベルのロックを取得します。

  • 一括読み込み操作中に、変換先のテーブル上で定義されている挿入トリガーを実行します。

  • 一括挿入操作中に読み込む、入力の最初の行番号を指定します。

  • 一括挿入操作中に読み込む、入力の最後の行番号を指定します。

  • 一括読み込み操作が取り消されるまでに許可されるエラーの最大数を指定します。 インポートできない各行は、エラーとしてカウントされます。

  • 並べ替えられたデータが含まれる入力内の列を指定します。

一括読み込みオプションの詳細については、「BULK INSERT (Transact-SQL)」を参照してください。

パフォーマンスの向上

一括挿入、および一括挿入操作中のテーブル データへのアクセスのパフォーマンスを向上するには、既定のオプションを次のように変更する必要があります。

  • 一括インポート操作中に、インポート先のテーブルまたはビュー上の制約を確認しません。

  • 一括読み込み操作中に、変換先のテーブル上で定義されている挿入トリガーを実行しません。

  • ロックをテーブルに適用しません。 これにより、一括挿入操作中、他のユーザーおよびアプリケーションはテーブルを引き続き使用できます。

SQL Server 変換先の構成

SQL Server 変換先は、次の方法で構成できます。

  • データの一括読み込み先となるテーブルまたはビューを指定します。

  • CHECK 制約を実行するかどうかなどのオプションを指定することにより、一括読み込み操作をカスタマイズします。

  • 同じバッチ内ですべての行をコミットするか、バッチとしてコミットする行の最大数を設定するかのいずれかを指定します。

  • 一括読み込み操作のタイムアウトを指定します。

この変換先は、OLE DB 接続マネージャーを使用してデータ ソースに接続します。OLE DB 接続マネージャーでは、使用する OLE DB プロバイダーを指定します。 詳細については、「 OLE DB 接続マネージャー」を参照してください。

Integration Services プロジェクトでは、OLE DB 接続マネージャーを作成できるデータ ソース オブジェクトも用意されます。 これにより、SQL Server 変換先でデータ ソースとデータ ソース ビューが使用できるようになります。

SQL Server 変換先は 1 つの入力をとります。 エラー出力はサポートされていません。

プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。

[詳細エディター] ダイアログ ボックスには、プログラムによって設定できるプロパティが反映されます。 [詳細エディター] ダイアログ ボックスまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。

[SQL 変換先エディター] ([接続マネージャー] ページ)

[SQL 変換先エディター] ダイアログ ボックスの [接続マネージャー] ページを使用すると、データ ソース情報を指定したり、結果をプレビューしたりできます。 SQL Server 変換先エディターにより、Microsoft SQL Server データベースのテーブルまたはビューにデータが読み込まれます。

オプション

[キャッシュなし]
一覧から既存の接続を選択するか、 [新規作成]をクリックして新しい接続を作成します。

[新規作成]
[OLE DB 接続マネージャーの構成] ダイアログ ボックスを使用して、新しい接続を作成します。

[テーブルまたはビューを使用する]
既存のテーブルまたはビューを一覧から選択するか、 [新規作成]をクリックして新しい接続を作成します。

[新規作成]
[テーブルの作成] ダイアログ ボックスを使用して新しいテーブルを作成します。

Note

[新規作成] をクリックすると、 Integration Services により、接続されているデータ ソースに基づいて既定の CREATE TABLE ステートメントが生成されます。 基になるテーブルの列に FILESTREAM 属性が宣言されていても、この既定の CREATE TABLE ステートメントには FILESTREAM 属性が含まれません。 FILESTREAM 属性を使用して Integration Services コンポーネントを実行するには、まず対象データベースに FILESTREAM ストレージを実装します。 次に、 [テーブルの作成] ダイアログ ボックスで CREATE TABLE ステートメントに FILESTREAM 属性を追加します。 詳細については、「バイナリ ラージ オブジェクト (Blob) データ (SQL Server)」を参照してください。

プレビュー
[クエリ結果のプレビュー] ダイアログ ボックスを使用して、結果をプレビューします。 プレビューでは、最大で 200 行を表示できます。

[SQL 変換先エディター] ([マッピング] ページ)

[SQL 変換先エディター] ダイアログ ボックスの [マッピング] ページを使用すると、入力列を変換先列にマップできます。

オプション

使用できる入力列
使用できる入力列の一覧を表示します。 ドラッグ アンド ドロップ操作により、テーブル内の使用できる入力列を変換先列にマップします。

使用できる変換先列
使用できる変換先列の一覧を表示します。 ドラッグ アンド ドロップ操作により、テーブル内の使用できる変換先列を入力列にマップします。

入力列
上の表で選択された入力列が表示されます。 [使用できる入力列] ボックスの一覧を使用して、マッピングを変更できます。

変換先列
マップされているかどうかに関係なく、使用できる変換先列を表示します。

[SQL 変換先エディター] ([詳細設定] ページ)

[SQL 変換先エディター] ダイアログ ボックスの [詳細設定] ページを使用すると、詳細な一括挿入オプションを指定できます。

オプション

[ID を保持する]
タスクが値を ID 列に挿入するかどうかを指定します。 このプロパティの既定値は Falseです。

[NULL を保持する]
タスクが NULL 値を保持するかどうかを指定します。 このプロパティの既定値は Falseです。

[テーブル ロック]
データが読み込まれるときにテーブルをロックするかどうかを指定します。 このプロパティの既定値は Trueです。

CHECK 制約
タスクが制約をチェックするかどうかを指定します。 このプロパティの既定値は Trueです。

[トリガーを起動する]
テーブルにおける一括挿入でトリガーを起動するかどうかを指定します。 このプロパティの既定値は Falseです。

[先頭行]
先頭行が挿入されるように指定します。 このプロパティの既定値は、 -1です。これは、値が割り当てられていないことを示します。

Note

このプロパティに値を割り当てない場合、 [SQL 変換先エディター] のテキスト ボックスをクリアします。 [プロパティ] ウィンドウ、 [詳細エディター]、およびオブジェクト モデルでは、-1 を使用します。

[最終行]
最終行が挿入されるように指定します。 このプロパティの既定値は、 -1です。これは、値が割り当てられていないことを示します。

Note

このプロパティに値を割り当てない場合、 [SQL 変換先エディター] のテキスト ボックスをクリアします。 [プロパティ] ウィンドウ、 [詳細エディター]、およびオブジェクト モデルでは、-1 を使用します。

[エラーの最大数]
一括挿入を停止する前に許容するエラー数を指定します。 このプロパティの既定値は、 -1です。これは、値が割り当てられていないことを示します。

Note

このプロパティに値を割り当てない場合、 [SQL 変換先エディター] のテキスト ボックスをクリアします。 [プロパティ] ウィンドウ、 [詳細エディター]、およびオブジェクト モデルでは、-1 を使用します。

タイムアウト
タイムアウトで一括挿入が停止されるまでの待機時間を秒数で指定します。

[列の順序]
キー列の名前を入力します。 各列は、昇順または降順で並べ替えることができます。 複数のキー列を使用する場合は、リストをコンマで区切ります。

参照

データ フロー