SQL Server Integration Services (SSIS) を使用して SQL Server または Azure SQL Database にデータを読み込む

適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム

SQL Server Integration Services (SSIS) パッケージを作成して、SQL Server または Azure SQL Database にデータを読み込みます。 SSIS データ フローを通過するときに、必要に応じてデータを再構築、変換、およびクレンジングすることができます。

この記事では、以下の操作の実行方法について説明します。

  • Visual Studio で新しい Integration Services プロジェクトを作成する。
  • データをソースから変換先に読み込むための SSIS パッケージを設計する。
  • SSIS パッケージを実行してデータを読み込む。

基本的な概念

このパッケージは SSIS での処理の基本単位です。 関連パッケージがプロジェクト内でグループ化されます。 SQL Server Data Tools を使用して Visual Studio でプロジェクトの作成およびパッケージの設計を行います。 設計プロセスは視覚的なプロセスであり、ツールボックスからデザイン画面にコンポーネントをドラッグ アンド ドロップし、コンポーネント同士を接続し、それらのプロパティを設定します。 パッケージが完成したら、パッケージを実行し、必要に応じて、包括的な管理、監視、およびセキュリティ保護のためにパッケージを SQL Server または SQL Database に配置することができます。

SSIS の詳細については、この記事では説明しません。 詳細については、以下の記事をお読みください。

ソリューションについて

ソリューションは、ソースと変換先を含むデータ フロー タスクを使用する一般的なパッケージです。 このアプローチは、SQL Server と Azure SQL Database を含む幅広いデータ ソースをサポートしています。

このチュートリアルでは、SQL Server をデータ ソースとして使用します。 SQL Server は、オンプレミスまたは Azure の仮想マシン上で実行されます。

SQL Server と SQL Database に接続するには、ADO.NET 接続マネージャー、ソース、および変換先を使用するか、OLE DB 接続マネージャー、ソース、および変換先を使用できます。 ADO.NET の構成オプションは最小限なので、このチュートリアルでは ADO.NET を使用します。 OLE DB は、ADO.NET よりもパフォーマンスがやや優れています。

ショートカットとして、SQL Server インポートおよびエクスポート ウィザードを使用して基本パッケージを作成できます。 次にパッケージを保存し、Visual Studio または SSDT で開いて表示し、カスタマイズします。 詳しくは、「SQL Server インポートおよびエクスポート ウィザードを使用してデータをインポートおよびエクスポートする」をご覧ください。

前提条件

このチュートリアルの手順を実行するには、以下の要素が必要です。

  1. SQL Server Integration Services (SSIS) . SSIS は SQL Server のコンポーネントであり、使用するには SQL Server のライセンス版、開発者版、または評価版が必要です。 SQL Server の評価版を取得するには、SQL Server の評価に関するページを参照してください。

  2. Visual Studio (省略可能)。 無料の Visual Studio Community Edition を取得するには、Visual Studio Community に関するページを参照してください。 Visual Studio をインストールしない場合は、SQL Server Data Tools (SSDT) のみをインストールできます。 SSDT をインストールすると、機能が制限されたバージョンの Visual Studio がインストールされます。

  3. Visual Studio 用 SQL Server Data Tools (SSDT) 。 Visual Studio 用 SQL Server Data Tools を取得するには、SQL Server Data Tools (SSDT) のダウンロードに関するページを参照してください。

  4. このチュートリアルでは、SQL Server または SQL データベース インスタンスに接続し、そのインスタンスにデータを読み込みます。 接続し、テーブルを作成し、次のいずれかにデータを読み込むためのアクセス許可が必要です。

    • Azure SQL Database データベース。 詳細については、Azure SQL Database に関するページを参照してください。
      or
    • SQL Server インスタンス。 SQL Server は、オンプレミスまたは Azure の仮想マシン上で実行されます。 無料の Evaluation Edition または Developer Edition の SQL Server をダウンロードする場合は、SQL Server のダウンロードに関するページを参照してください。
  5. サンプル データ。 このチュートリアルでは、ソース データとして、SQL Server の AdventureWorks サンプル データベースに格納されているサンプル データを使用します。 AdventureWorks サンプル データベースを取得するには、「AdventureWorks Sample Databases」 (AdventureWorks サンプル データベース) を参照してください。

  6. ファイアウォール規則 (SQL Database にデータを読み込む場合)。 SQL Database にデータをアップロードするには、事前にローカル コンピューターの IP アドレスを使用して SQL Database に対してファイアウォール規則を作成しておく必要があります。

新しい Integration Services プロジェクトを作成する

  1. Visual Studio を起動します。
  2. [ファイル] メニューの [新規 | プロジェクト] を選択します。
  3. [インストール済み | テンプレート | ビジネス インテリジェンス | Integration Services] のプロジェクトの種類に移動します。
  4. [Integration Services プロジェクト] を選択します。 [名前][場所] に値を指定し、 [OK] を選択します。

Visual Studio が開き、新しい Integration Services (SSIS) プロジェクトを作成します。 次に Visual Studio は、プロジェクト内の新しい単一の SSIS パッケージ (Package.dtsx) のためのデザイナーを開きます。 次の画面領域が表示されます。

  • 左側には、SSIS コンポーネントの ツールボックス

  • 中央には、複数のタブを備えたデザイン画面。 通常は、少なくとも [制御フロー] タブと [データ フロー] タブを使用します。

  • 右側には、ソリューション エクスプローラー[プロパティ] ウィンドウ。

    [ツールボックス] ペイン、[デザイン] ペイン、[ソリューション エクスプローラー] ペイン、および [プロパティ] ペインを示す Visual Studio のスクリーンショット。

基本的なデータ フローを作成する

  1. ツールボックスからデザイン画面の中央にデータ フロー タスクをドラッグします ( [制御フロー] タブ上で)。

    [デザイン] ペインの [制御フロー] タブにドラッグされている [データ フロー タスク] を示す Visual Studio のスクリーンショット。

  2. [データ フロー タスク] をダブルクリックして [データ フロー] タブに切り替えます。

  3. ツールボックスにあるその他のソースの一覧から、ADO.NET ソースをデザイン画面にドラッグします。 ソース アダプターが選択された状態で、 [プロパティ] ウィンドウでその名前を SQL Server ソース に変更します。

  4. ツールボックスにあるその他の変換先の一覧から、ADO.NET 変換先をデザイン画面にドラッグし、ADO.NET ソースの下に配置します。 変換先アダプターが選択された状態で、 [プロパティ] ウィンドウでその名前を SQL 変換先 に変更します。

    ソース アダプターの直下の位置にドラッグされている変換先アダプターのスクリーンショット。

ソース アダプターを構成する

  1. ソース アダプターをダブルクリックして、ADO.NET 変換元エディター を開きます。

    ADO.NET ソース エディターのスクリーンショット。 [接続マネージャー] タブが表示されます。データ フローのプロパティを構成するためのコントロールが用意されています。

  2. ADO.NET 変換元エディター[接続マネージャー] タブで、 [ADO.NET 接続マネージャー] リストの横にある [新規] ボタンをクリックして、 [ADO.NET の接続マネージャーの構成] ダイアログ ボックスを開き、このチュートリアルでのデータの読み込み元である SQL Server データベースに対する接続設定を作成します。

    [ADO.NET の接続マネージャーの構成] ダイアログ ボックスのスクリーンショット。 接続マネージャーを設定および構成するためのコントロールが用意されています。

  3. [ADO.NET 接続マネージャーの構成] ダイアログ ボックスで、 [新規] ボタンをクリックして [接続マネージャー] ダイアログ ボックスを開き、新しいデータ接続を作成します。

    [接続マネージャー] ダイアログ ボックスのスクリーンショット。 データ接続を構成するためのコントロールが用意されています。

  4. [接続マネージャー] ダイアログ ボックスで、次の操作を行います。

    1. [プロバイダー] で、SqlClient データ プロバイダーを選択します。

    2. [サーバー名] に SQL Server の名前を入力します。

    3. [サーバー ログオン] セクションで、認証情報を選択または入力します。

    4. [データベースへの接続] セクションで、AdventureWorks サンプル データベースを選択します。

    5. [接続テスト] をクリックします。

      [OK] ボタンと、テスト接続が成功したことを示すテキストが表示されたダイアログ ボックスのスクリーンショット。

    6. 接続テストの結果をレポートするダイアログ ボックスで、 [OK] をクリックして、 [接続マネージャー] ダイアログ ボックスに戻ります。

    7. [接続マネージャー] ダイアログ ボックスで、 [OK] をクリックして [ADO.NET の接続マネージャーの構成] ダイアログ ボックスに戻ります。

  5. [ADO.NET の接続マネージャーの構成] ダイアログ ボックスで、 [OK] をクリックして、ADO.NET 変換元エディター に戻ります。

  6. ADO.NET 変換元エディター[Name of the table or the view](テーブルまたはビューの名前) リストで、 [Sales.SalesOrderDetail] テーブルを選択します。

    ADO.NET ソース エディターのスクリーンショット。 [テーブル名またはビュー名] リストで、Sales.SalesOrderDetail テーブルが選択されています。

  7. [プレビュー] をクリックして、 [クエリ結果のプレビュー] ダイアログ ボックスにソース テーブルの先頭の 200 行のデータを表示します。

    [クエリ結果のプレビュー] ダイアログ ボックスのスクリーンショット。 ソース テーブルの複数行の売上データが表示されます。

  8. [クエリ結果のプレビュー] ダイアログ ボックスで、 [閉じる] をクリックして ADO.NET 変換元エディター に戻ります。

  9. ADO.NET 変換元エディター で、 [OK] をクリックしてデータ ソースの構成を完了します。

ソース アダプターを変換先アダプターに接続する

  1. デザイン画面でソース アダプターを選択します。

  2. ソース アダプターから延びている青い矢印を選択し、それが変換先エディターの所定の位置に固定されるまでドラッグします。

    ソース アダプターと変換先アダプターを示すスクリーンショット。 青色の矢印がソース アダプターから変換先アダプターを指しています。

    一般的な SSIS パッケージでは、ソースと変換先の間に SSIS ツールボックスからの他の複数のコンポーネントを使用して、データが SSIS データ フローを通過するときにデータの再構築、変換、およびクレンジングを行うことができます。 この例をできるだけ簡単に保持するには、ソースを直接変換先に接続します。

変換先アダプターを構成する

  1. 変換先アダプターをダブルクリックして、ADO.NET 変換先エディター を開きます。

    ADO.NET 変換先エディターのスクリーンショット。 [接続マネージャー] タブが表示されます。データ フローのプロパティを構成するためのコントロールがあります。

  2. ADO.NET 変換先エディター[接続マネージャー] タブで、 [接続マネージャー] リストの横にある [新規] ボタンをクリックして、 [ADO.NET の接続マネージャーの構成] ダイアログ ボックスを開き、このチュートリアルでのデータの読み込み先であるデータベースに対する接続設定を作成します。

  3. [ADO.NET 接続マネージャーの構成] ダイアログ ボックスで、 [新規] ボタンをクリックして [接続マネージャー] ダイアログ ボックスを開き、新しいデータ接続を作成します。

  4. [接続マネージャー] ダイアログ ボックスで、次の操作を行います。

    1. [プロバイダー] で、SqlClient データ プロバイダーを選択します。
    2. [サーバー名] には、SQL Server または SQL Database サーバーの名前を入力します。
    3. [サーバー ログオン] セクションで、 [SQL Server 認証を使用する] を選択し、認証情報を選択または入力します。
    4. [データベースへの接続] セクションで、既存のデータベースを選択します。 a. [接続テスト] をクリックします。 b. 接続テストの結果をレポートするダイアログ ボックスで、 [OK] をクリックして、 [接続マネージャー] ダイアログ ボックスに戻ります。 c. [接続マネージャー] ダイアログ ボックスで、 [OK] をクリックして [ADO.NET の接続マネージャーの構成] ダイアログ ボックスに戻ります。
  5. [ADO.NET の接続マネージャーの構成] ダイアログ ボックスで、 [OK] をクリックして、ADO.NET 変換先エディター に戻ります。

  6. ADO.NET 変換先エディター で、 [Use a table or view](テーブルまたはビューの使用) リストの横にある [新規] をクリックして [テーブルの作成] ダイアログ ボックスを開き、ソース テーブルと一致する列リストが含まれた新しい変換先テーブルを作成します。

    [テーブルの作成] ダイアログ ボックスのスクリーンショット。 変換先テーブルを作成する SQL コードが表示されています。

  7. [テーブルの作成] ダイアログ ボックスで、次の操作を行います。

    1. 変換先テーブルの名前を SalesOrderDetail に変更します。

      [テーブルの作成] ダイアログ ボックスのスクリーンショット。 SalesOrderDetail という名前のテーブルを作成する SQL コードが表示されています。

    2. [OK] をクリックして、テーブルを作成し、ADO.NET 変換先エディター に戻ります。

  8. ADO.NET 変換先エディター で、 [マッピング] タブを選択して、ソース内の列が変換先の列にどのようにマップされているか確認してください。

    ADO.NET 変換先エディターの [マッピング] タブのスクリーンショット。 行によって、ソース テーブルと変換先テーブルの同じ名前の列が接続されます。

  9. [OK] をクリックして、変換先の構成を完了します。

パッケージを実行してデータを読み込む

ツールバーの [開始] ボタンをクリックするか、 [デバッグ] メニューの [実行] オプションのいずれかを選択してパッケージを実行します。

以下の段落では、この記事で説明した 2 つ目のオプション、つまりソースと変換先を含むデータ フローを使用してパッケージを作成した場合の表示について説明します。

パッケージが実行を開始すると、アクティビティを示す黄色の糸車と、これまでに処理された行数が表示されます。

ソース アダプターと変換先アダプターを示すスクリーンショット。 各アダプターの上に黄色の糸車があり、それらの間に "89748 行" というテキストがあります。

パッケージが実行を終了すると、成功したことを示す緑色のチェックマークと、ソースから変換先に読み込まれたデータの行数の合計が表示されます。

ソース アダプターと変換先アダプターを示すスクリーンショット。 各アダプターの上に緑色のチェックマークがあり、それらの間に "121317 行" というテキストがあります。

お疲れさまでした。 SQL Server Integration Services を使用して、SQL Server または Azure SQL Database にデータを正常に読み込みました。

次のステップ