SQL Server Integration Services (SSIS) を使用して Azure Synapse Analytics の専用 SQL プールにデータを読み込む
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 に接続してデータを読み込むためのさまざまなオプションを提供する柔軟なツール セットです。
最適なパフォーマンスを提供する推奨される方法は、Azure SQL DW アップロード タスクを使用してデータを読み込むパッケージを作成することです。 このタスクでは、ソースと変換先の情報の両方がカプセル化されます。 ソースのデータは、ローカルの区切りテキスト ファイルに保存されていることを前提としています。
また、ソースと変換先を含むデータ フロー タスクを使用するパッケージを作成することもできます。 このアプローチは、SQL Server と Azure Synapse Analytics を含む幅広いデータ ソースをサポートしています。
前提条件
このチュートリアルの手順を実行するには、以下の要素が必要です。
SQL Server Integration Services (SSIS) . SSIS は SQL Server のコンポーネントであり、使用するには SQL Server のライセンス版、開発者版、または評価版が必要です。 SQL Server の評価版を取得するには、SQL Server の評価に関するページを参照してください。
Visual Studio (省略可能)。 無料の Visual Studio Community Edition を取得するには、Visual Studio Community に関するページを参照してください。 Visual Studio をインストールしない場合は、SQL Server Data Tools (SSDT) のみをインストールできます。 SSDT をインストールすると、機能が制限されたバージョンの Visual Studio がインストールされます。
Visual Studio 用 SQL Server Data Tools (SSDT) 。 Visual Studio 用 SQL Server Data Tools を取得するには、SQL Server Data Tools (SSDT) のダウンロードに関するページを参照してください。
Azure Synapse Analytics データベースと権限。 このチュートリアルでは、Azure Synapse Analytics インスタンスの専用 SQL プールに接続して、これにデータを読み込みます。 接続し、テーブルを作成し、データを読み込むことができるアクセス許可が必要です。
新しい Integration Services プロジェクトを作成する
Visual Studio を起動します。
[ファイル] メニューの [新規 | プロジェクト] を選択します。
[インストール済み | テンプレート | ビジネス インテリジェンス | Integration Services] のプロジェクトの種類に移動します。
[Integration Services プロジェクト] を選択します。 [名前] と [場所] に値を指定し、 [OK] を選択します。
Visual Studio が開き、新しい Integration Services (SSIS) プロジェクトを作成します。 次に Visual Studio は、プロジェクト内の新しい単一の SSIS パッケージ (Package.dtsx) のためのデザイナーを開きます。 次の画面領域が表示されます。
左側には、SSIS コンポーネントのツールボックス。
中央には、複数のタブを備えたデザイン画面。 通常は、少なくとも [制御フロー] タブと [データ フロー] タブを使用します。
右側には、ソリューション エクスプローラーと [プロパティ] ウィンドウ。
オプション 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 アップロード タスクを追加および構成する
ツールボックスからデザイン画面の ( [制御フロー] タブの) 中央に SQL DW アップロード タスクをドラッグします。
タスクをダブル クリックして SQL DW アップロード タスク エディターを開きます。
Azure SQL DW アップロード タスクに関する記事のガイダンスを参照して、タスクを構成します。 このタスクで、ソースと変換先の両方の情報と、ソースと変換先のテーブル間のマップがカプセル化されるので、タスク エディターには構成する設定ページが複数あります。
同様のソリューションを手動で作成する
さらに細かく制御するには、SQL DW アップロード タスクによって実行される作業をエミュレートするパッケージを手動で作成する方法があります。
Azure Blob Upload Task を使用して、Azure Blob Storage でデータのステージングを行う。 Azure BLOB アップロード タスクを取得するには、Microsoft SQL Server Integration Services Feature Pack for Azure をダウンロードしてください。
次に、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 の前提条件
このオプションを選択してチュートリアルを続行するには、次の要素が必要です。
サンプル データ。 このチュートリアルでは、専用 SQL プールに読み込むソース データとして、SQL Server の AdventureWorks サンプル データベースに格納されているサンプル データを使用します。 AdventureWorks サンプル データベースを取得するには、「AdventureWorks Sample Databases」 (AdventureWorks サンプル データベース) を参照してください。
ファイアウォール規則。 専用 SQL プールにデータをアップロードするには、事前にローカル コンピューターの IP アドレスを使用して専用 SQL プールに対してファイアウォール規則を作成しておく必要があります。
基本的なデータ フローを作成する
ツールボックスからデザイン画面の中央にデータ フロー タスクをドラッグします ( [制御フロー] タブ上で)。
[データ フロー タスク] をダブルクリックして [データ フロー] タブに切り替えます。
ツールボックスにあるその他のソースの一覧から、ADO.NET ソースをデザイン画面にドラッグします。 ソース アダプターが選択された状態で、 [プロパティ] ウィンドウでその名前を SQL Server ソースに変更します。
ツールボックスにあるその他の変換先の一覧から、ADO.NET 変換先をデザイン画面にドラッグし、ADO.NET ソースの下に配置します。 変換先アダプターが選択された状態で、 [プロパティ] ウィンドウでその名前を SQL DW 変換先に変更します。
ソース アダプターを構成する
ソース アダプターをダブルクリックして、ADO.NET 変換元エディターを開きます。
ADO.NET ソース エディターの [接続マネージャーの] タブで、[ADO.NET 接続マネージャーの] ボックスの横にある [の新しい] ボタンを選択して、[ADO.NET 接続マネージャーの構成] ダイアログ ボックスを開き、このチュートリアルでデータを読み込む SQL Server データベースの接続設定を作成します。
[ADO.NET 接続マネージャー
構成] ダイアログ ボックスで、[ 新しい ] ボタンを選択して [接続マネージャー ] ダイアログ ボックスを開き、新しいデータ接続を作成します。[接続マネージャー] ダイアログ ボックスで、次の操作を行います。
[プロバイダー] で、SqlClient データ プロバイダーを選択します。
[サーバー名] に SQL Server の名前を入力します。
[サーバー ログオン] セクションで、認証情報を選択または入力します。
[データベースへの接続] セクションで、AdventureWorks サンプル データベースを選択します。
テスト接続を選択します。
接続テストの結果を報告するダイアログ ボックスで、[OK] を選択して、[接続マネージャー] ダイアログ ボックスに戻ります。
[接続マネージャー] ダイアログ ボックスで [OK] を選択して、[ADO.NET 接続マネージャーを構成] ダイアログ ボックスに戻ります。
[ADO.NET 構成マネージャーの] ダイアログ ボックスで、[OK] を選択して、[ADO.NET 変換先エディター] に戻ります。
ADO.NET 変換元エディターの [Name of the table or the view](テーブルまたはビューの名前) リストで、 [Sales.SalesOrderDetail] テーブルを選択します。
[プレビュー
選択すると、ソース テーブル内の最初の 200 行のデータが [ プレビュー クエリ結果 ] ダイアログ ボックスに表示されます。[クエリ結果のプレビュー] ダイアログ ボックスで、[閉じる] を選択して、ADO.NET ソース エディターに戻ります。
ADO.NET ソース エディター で、[OK]選択して、データ ソースの構成を完了します。
ソース アダプターを変換先アダプターに接続する
デザイン画面でソース アダプターを選択します。
ソース アダプターから延びている青い矢印を選択し、それが変換先エディターの所定の位置に固定されるまでドラッグします。
一般的な SSIS パッケージでは、ソースと変換先の間にある SSIS ツールボックスの他のいくつかのコンポーネントを使用して、SSIS データ フローを通過するときにデータを再構築、変換、クレンジングします。 この例をできるだけ簡単に保持するには、ソースを直接変換先に接続します。
変換先アダプターを構成する
変換先アダプターをダブルクリックして、ADO.NET 変換先エディターを開きます。
ADO.NET 変換先エディターの
[ADO.NET 変換先エディター]の [接続マネージャー] タブで、[接続マネージャーの] ボックスの横にある [新規] ボタンを選択して、[ADO.NET 接続マネージャーの構成] ダイアログ ボックスを開き、このチュートリアルでデータを読み込む Azure Synapse Analytics データベースの接続設定を作成します。
[ADO.NET 接続マネージャー
構成] ダイアログ ボックスで、[ 新しい ] ボタンを選択して [接続マネージャー ] ダイアログ ボックスを開き、新しいデータ接続を作成します。[接続マネージャー] ダイアログ ボックスで、次の操作を行います。
[プロバイダー] で、SqlClient データ プロバイダーを選択します。
[サーバー名] に、専用 SQL プール名を入力します。
[サーバー ログオン] セクションで、 [SQL Server 認証を使用する] を選択し、認証情報を選択または入力します。
[データベースへの接続] セクションで、既存の専用 SQL プール データベースを選択します。
[接続テスト] を選択します。
接続テストの結果を報告するダイアログ ボックスで、[OK] を選択して、[接続マネージャー] ダイアログ ボックスに戻ります。
[接続マネージャー] ダイアログ ボックスで [OK] を選択して、[ADO.NET 接続マネージャーの構成] ダイアログ ボックスに戻ります。
[ADO.NET の接続マネージャーの構成] ダイアログ ボックスで、[OK] を選択して、[ADO.NET 変換先エディター] に戻ります。
[ADO.NET 変換先エディター] で、[テーブルまたはビューを使用] リストの横にある [新規] を選択して、[テーブルの作成] ダイアログ ボックスを開き、ソース テーブルに一致する列リストを含む新しい変換先テーブルを作成します。
[テーブルの作成] ダイアログ ボックスで、次の操作を行います。
変換先テーブルの名前を SalesOrderDetail に変更します。
rowguid 列を削除します。 uniqueidentifier データ型は、専用 SQL プールではサポートされていません。
[LineTotal] 列のデータ型を [money] に変更します。 10 進 データ型は、専用 SQL プールではサポートされていません。 サポートされるデータ型に関する情報については、CREATE TABLE (Azure Synapse Analytics、Parallel Data Warehouse) に関するページを参照してください。
OK を選択してテーブルを作成し、ADO.NET 変換先エディターに戻ります。
ADO.NET 変換先エディターで、 [マッピング] タブを選択して、ソース内の列が変換先の列にどのようにマップされているか確認してください。
[OK] を選択して、宛先の構成を完了します。
パッケージを実行してデータを読み込む
ツール バーの
以下の段落では、この記事で説明した 2 つ目のオプション、つまりソースと変換先を含むデータ フローを使用してパッケージを作成した場合の表示について説明します。
パッケージの実行が開始されると、アクティビティとこれまでに処理された行数を示す黄色の回転ホイールが表示されます。
パッケージの実行が完了すると、成功を示す緑色のチェック マークと、ソースから宛先に読み込まれたデータ行の合計数が表示されます。
これで、SQL Server Integration Services を使用して Azure Synapse Analytics にデータを読み込むのに成功しました。
関連コンテンツ
- パッケージ開発 のトラブルシューティング ツール
- Integration Services (SSIS) プロジェクトとパッケージの配置