SQL Server Integration Services (SSIS) を使用して Azure Synapse Analytics の専用 SQL プールにデータを読み込む

適用対象:Azure Synapse Analytics

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

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

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

基本的な概念

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

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

SSIS を使用して Azure Synapse Analytics にデータを読み込むためのオプション

SQL Server Integration Services (SSIS) とは、Azure Synapse Analytics に接続するため、およびデータを読み込むためのさまざまなオプションを提供する柔軟性に優れたツール セットです。

  1. 最適なパフォーマンスを提供する推奨される方法は、Azure SQL DW アップロード タスクを使用してデータを読み込むパッケージを作成することです。 このタスクでは、ソースと変換先の情報の両方がカプセル化されます。 ソースのデータは、ローカルの区切りテキスト ファイルに保存されていることを前提としています。

  2. また、ソースと変換先を含むデータ フロー タスクを使用するパッケージを作成することもできます。 このアプローチは、SQL Server と Azure Synapse Analytics を含む幅広いデータ ソースをサポートしています。

前提条件

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

  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. Azure Synapse Analytics データベースと権限。 このチュートリアルでは、Azure Synapse Analytics インスタンスの専用 SQL プールに接続して、これにデータを読み込みます。 接続し、テーブルを作成し、データを読み込むことができるアクセス許可が必要です。

新しい 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 - SQL DW アップロード タスクを使用する

最初のアプローチは、SQL DW アップロード タスクを使用するパッケージです。 このタスクでは、ソースと変換先の情報の両方がカプセル化されます。 ソースのデータは、ローカルまたは Azure Blob Storage の区切りテキスト ファイルに保存されていることを前提としています。

オプション 1 の前提条件

このオプションを選択してチュートリアルを続行するには、次の要素が必要です。

  • Microsoft SQL Server Integration Services Feature Pack for Azure。 SQL DW アップロード タスクは、Feature Pack のコンポーネントです。

  • Azure Blob Storage アカウント。 SQL DW アップロード タスクは、Azure Blob Storage から Azure Synapse Analytics にデータを読み込みます。 Blob Storage に既に格納されているファイルから読み込むか、ローカル コンピューターからファイルを読み込むことができます。 ローカル コンピューター上のファイルを選択すると、SQL DW アップロード タスクはまず BLOB Storage にアップロードし、ステージングしてから、専用 SQL プールに読み込みます。

SQL DW アップロード タスクを追加および構成する

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

  2. タスクをダブル クリックして SQL DW アップロード タスク エディターを開きます。

    SQL DW アップロード タスク エディターの [全般] ページ

  3. Azure SQL DW アップロード タスクに関する記事のガイダンスを参照して、タスクを構成します。 このタスクで、ソースと変換先の両方の情報と、ソースと変換先のテーブル間のマップがカプセル化されるので、タスク エディターには構成する設定ページが複数あります。

同様のソリューションを手動で作成する

さらに細かく制御するには、SQL DW アップロード タスクによって実行される作業をエミュレートするパッケージを手動で作成する方法があります。

  1. Azure Blob Upload Task を使用して、Azure Blob Storage でデータのステージングを行う。 Azure BLOB アップロード タスクを取得するには、Microsoft SQL Server Integration Services Feature Pack for Azure をダウンロードしてください。

  2. 次に、SSIS の SQL 実行タスクを使用して、専用 SQL プールにデータを読み込む PolyBase スクリプトを起動します。 (SSIS を使用せずに) Azure Blob Storage から専用 SQL プールにデータを読み込む例については、「チュートリアル:Azure Synapse Analytics へのデータの読み込み」を参照してください。

オプション 2 - ソースと変換先を使用する

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

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

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

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

オプション 2 の前提条件

このオプションを選択してチュートリアルを続行するには、次の要素が必要です。

  1. サンプル データ。 このチュートリアルでは、専用 SQL プールに読み込むソース データとして、SQL Server の AdventureWorks サンプル データベースに格納されているサンプル データを使用します。 AdventureWorks サンプル データベースを取得するには、「AdventureWorks Sample Databases」 (AdventureWorks サンプル データベース) を参照してください。

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

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

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

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

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

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

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

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

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

  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 の接続マネージャーの構成] ダイアログ ボックスを開き、このチュートリアルでのデータの読み込み先である Azure Synapse Analytics データベースに対する接続設定を作成します。

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

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

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

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

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

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

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

    2. rowguid 列を削除します。 専用 SQL プールでは、uniqueidentifier データ型はサポートされていません。

    3. [LineTotal] 列のデータ型を [money] に変更します。 専用 SQL プールでは、decimal データ型はサポートされていません。 サポートされるデータ型に関する情報については、CREATE TABLE (Azure Synapse Analytics、Parallel Data Warehouse) に関するページを参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

お疲れさまでした。 SQL Server Integration Services を使用して Azure Synapse Analytics にデータを読み込むことに成功しました。

次のステップ