チュートリアル: SSIS パッケージを SQL ビューとして公開する

適用対象: はいSQL Server (サポートされているすべてのバージョン) はい Azure Data Factory の SSIS 統合ランタイム

このチュートリアルでは、SSIS パッケージを SQL Server データベースに SQL ビューとして公開する詳細な手順について説明します。

前提条件

このチュートリアルを実行するには、コンピューターに次のソフトウェアがインストールされている必要があります。

  1. SQL Server および SQL Server Integration Services。

  2. SQL Server Data Tools

手順 1: SSIS プロジェクトを構築して SSIS カタログに配置する

この手順では、SSIS 対応データ ソース ( SQL Server データベースを使用します) からデータを抽出し、そのデータを Data Streaming Destination コンポーネントを使用して出力する SSIS パッケージを作成します。 その後、SSIS プロジェクトを構築して SSIS カタログに配置します。

  1. SQL Server Data Tools を起動します。 [スタート] メニューで、 [すべてのプログラム][Microsoft SQL Server] の順にポイントし、 [SQL Server Data Tools] をクリックします。

  2. 新しい Integration Services プロジェクトを作成します。

    1. メニュー バーの [ファイル] をクリックし、 [新規作成] をポイントし、 [プロジェクト] をクリックします。

    2. 左側のウィンドウで [ビジネス インテリジェンス] を展開し、ツリー ビューで [Integration Services] をクリックします。

    3. まだ選択していない場合は [Integration Services プロジェクト] を選択します。

    4. [プロジェクト名] に「 SSISPackagePublishing」を指定します。

    5. プロジェクトの場所を指定します。

    6. [OK] をクリックして、 [新しいプロジェクト] ダイアログ ボックスを閉じます。

  3. Data Flow コンポーネントを、 SSIS ツールボックス から [コントロール フロー] タブのデザイン画面にドラッグします。

  4. コントロール フローData Flow コンポーネントをダブルクリックして データ フロー デザイナー を開きます。

  5. ソース コンポーネント を、ツールボックスから データ フロー デザイナー にドラッグし、データ ソースからデータを抽出するように構成します。

    1. このチュートリアルを実行するために、 Employee テーブルがあるテスト データベース TestDB を作成します。 IDFirstNameLastName という 3 つの列があるテーブルを作成します。

    2. ID を主キーとして設定します。

    3. 次のデータを持つ 2 つのレコードを挿入します。

      id FIRSTNAME LASTNAME
      1 John Doe
      2 Jane Doe
    4. OLE DB Source コンポーネントを SSIS ツールボックス から データ フロー デザイナー にドラッグします。

    5. コンポーネントを、 TestDB データベースの Employee テーブルからデータを抽出するように構成します。 [OLE DB 接続マネージャー][(local).TestDB] を、 [データ アクセス モード][テーブルまたはビュー] を、 [テーブルまたはビューの名前][[dbo].[Employee]] を選択します。

      Data Streaming Destination - OLE DB 接続

  6. 次に、 Data Streaming Destination をツールボックスからデータフローにドラッグします。 このコンポーネントはツールボックスの [共通] セクションにあります。

  7. データ フローの OLE DB Source コンポーネントを Data Streaming Destination コンポーネントに接続します。

  8. SSIS プロジェクトを構築して SSIS カタログに配置します。

    1. メニュー バーの [プロジェクト] をクリックし、 [配置] をクリックします。

    2. ウィザードの指示に従って、プロジェクトをローカル データベース サーバーの SSIS カタログに配置します。 次の例では、 Power BI をフォルダー名として、 SSISPackagePublishing をSSIS カタログ内のプロジェクト名として使用します。

手順 2: SSIS データ フィード公開ウィザードを使用して SSIS パッケージを SQL ビューとして公開する

この手順では、SQL Server Integration Services (SSIS) データ フィード公開ウィザードを使用して、SSIS パッケージを SQL Server データベースにビューとして公開します。 パッケージの出力データは、このビューをクエリすることで使用できます。

SSIS データ フィード公開ウィザードにより、OLE DB Provider for SSIS (SSISOLEDB) を利用するリンク サーバーが作成され、リンク サーバーのクエリを構成する SQL ビューが作成されます。 このクエリには、SSIS カタログのフォルダー名、プロジェクト名、およびパッケージ名が含まれます。

実行時、このビューにより、作成したリンク サーバーを経由して OLE DB Provider for SSIS にクエリが送信されます。 OLE DB Provider for SSIS はクエリに指定されたパッケージを実行し、表形式の結果セットをクエリに返します。

  1. C:\Program Files\Microsoft SQL Server\130\DTS\Binn から ISDataFeedPublishingWizard.exe を実行するか、[スタート] メニュー、[すべてのプログラム]、[Microsoft SQL Server 2016]、[SQL Server 2016 データ フィード発行ウィザード] をクリックして SSIS データフィード発行ウィザード を起動します。

  2. [概要] ページで [次へ] をクリックします。

    データ フィード公開ウィザード - [説明] ページ

  3. [パッケージの設定] ページで、次のタスクを実行します。

    1. SSIS カタログを含む SQL Server インスタンスの 名前 を入力するか、 [参照] をクリックしてサーバーを選択します。

      データ フィード公開ウィザード - [パッケージの設定] ページ

    2. [パス] フィールドの横にある [参照] をクリックして SSIS カタログを参照し、公開する SSIS パッケージを選択し (例: SSISDB->SSISPackagePublishing->Package.dtsx)、 [OK] をクリックします。

      データ フィード公開ウィザード - パッケージの参照

    3. ページ下部の [パッケージ パラメーター]、[プロジェクト パラメーター]、[接続マネージャー] タブを使用して、パッケージのパッケージ パラメーター、プロジェクト パラメーター、または接続マネージャーの設定値を入力します。 パッケージを実行するために使用される環境参照を指定して、プロジェクト/パッケージ パラメーターを環境変数にバインドすることもできます。

      環境変数には機密性のあるパラメーターをバインドすることをお勧めします。 これにより、機密性のあるパラメーターの値が、ウィザードによって作成される SQL ビューにプレーン テキスト形式で格納されないことが保証されます。

    4. [次へ] をクリックして、 [公開の設定] ページに切り替えます。

  4. [公開の設定] ページで、次のタスクを実行します。

    1. ビューを作成する データベース を選択します。

      データ フィード公開ウィザード - [公開の設定] ページ

    2. ビュー名前 を入力します。 ボックスの一覧から既存のビューを選択することもできます。

    3. [設定] リストに、ビューと関連付ける リンク サーバー名前 を指定します。 リンク サーバーが存在しない場合、ウィザードは、ビューを作成する前にリンク サーバーを作成します。 User32BitRuntimeTimeout の値をここに設定することもできます。

    4. [詳細設定] をクリックします。 [詳細設定] ダイアログ ボックスが表示されます。

    5. [詳細設定] ダイアログ ボックスで、次の操作を行います。

      1. ビューを作成するデータベース スキーマを指定します ([スキーマ] フィールド) 。

      2. ネットワーク経由で送信する前にデータを暗号化するかどうかを指定します ([暗号化] フィールド)。 この設定と TrustServerCertificate 設定の詳細については、「 検証を伴わない暗号化の使用 」トピックを参照してください。

      3. 暗号化設定が有効な場合に自己署名サーバー証明書を使用できるかどうかを指定します ([TrustServerCertificate] フィールド)。

      4. [OK] をクリックして [詳細設定] ダイアログ ボックスを閉じます。

    6. [次へ] をクリックして [検証] ページに移動します。

  5. [検証] ページで、すべての設定値の検証結果を確認します。 次の例では、選択した SQL Server インスタンスにリンク サーバーが存在しないために、リンクサーバーの存在に関する 警告 が表示されています。 [結果][エラー] が表示された場合は、 [エラー] の上にマウス カーソルを合わせると、エラーの詳細を確認できます。 たとえば、SSISOLEDB プロバイダーの [InProcess 許可] オプションを有効にしていなかった場合は、リンク サーバーの構成操作でエラーが発生します。

    データ フィード公開ウィザード - [検証] ページ

  6. このレポートを XML ファイルとして保存するために [レポートの保存] をクリックします。

  7. [検証] ページで [次へ] をクリックして [概要] ページに切り替えます。

  8. [概要] ページで選択内容を確認し、 [公開] をクリックして公開プロセスを開始します。リンク サーバーがサーバー上に存在していない場合は、リンク サーバーの作成後にそのリンク サーバーを使用するビューが作成されます。

    データ フィード公開ウィザード - [概要] ページ

    これで、次の SQL ステートメントを TestDB データベースに対して実行することで、パッケージの出力データをクエリできます: SELECT * FROM [SSISPackageView]。

  9. このレポートを XML ファイルとして保存するために [レポートの保存] をクリックします。

  10. 公開プロセスの結果を確認し、 [完了] をクリックしてウィザードを閉じます。

    注意

    次のデータ型はサポートされていません: text、ntext、image、nvarchar(max)、varchar(max)、varbinary(max)。

手順 3: SQL ビューをテストする

ここでは、SSIS データ フィード公開ウィザードによって作成された SQL ビューを実行します。

  1. SQL Server Management Studio を起動します。

  2. [<machine name>]、 [データベース] 、[<database you selected in the wizard>]、 [ビュー] を展開します。

  3. ウィザードで作成した [<view created by the wizard>] を右クリックし、 [上位 1000 行を選択] をクリックします。

  4. SSIS パッケージの結果が表示されることを確認します。

手順 4: SSIS パッケージの実行を確認する

この手順では、SSIS パッケージが実行されたことを確認します。

  1. SQL Server Management Studio で、 [Integration Services カタログ][SSISDB] 、SSIS プロジェクトが存在する フォルダー[プロジェクト] 、プロジェクト ノード、 [パッケージ] の順に展開します。

  2. SSIS パッケージを右クリックし、 [レポート][標準レポート] の順にポイントし、 [すべての実行] をクリックします。

  3. SSIS パッケージの実行がレポートに表示されます。

    注意

    Windows Vista Service Pack 2 コンピューターでは、2 種類の SSIS パッケージの実行 (成功した実行と失敗した実行) が表示される場合があります。 失敗した実行は今回のリリースの既知の問題によって発生しているため、無視してください。

詳細情報

データ フィード公開ウィザードでは、次の重要な手順を実行します。

  1. リンク サーバーを作成し、OLE DB Provider for SSIS を使用するように構成します。

  2. SQL ビューを指定したデータベースに作成します。これは、選択したパッケージのカタログ情報があるリンク サーバーに対してクエリを実行します。

このセクションでは、データ フィード公開ウィザードを使用せずに、リンク サーバーと SQL ビューを作成するための手順について説明します。 OPENQUERY 関数を OLE DB Provider for SSIS で使用することに関する追加情報も記載されています。

OLE DB Provider for SSIS を使用してリンクサーバーを作成する

SQL Server Management Studio で次のクエリを実行して、OLE DB Provider for SSIS (SSISOLEDB) を使用するリンク サーバーを作成します。

  
USE [master]  
GO  
  
EXEC sp_addlinkedserver  
@server = N'SSISFeedServer',  
@srvproduct = N'Microsoft',  
@provider = N'SSISOLEDB',  
@datasrc = N'.'  
GO  
  

リンク サーバーと SSIS カタログ情報を使用するビューを作成する

この手順では、前のセクションで作成したリンク サーバーに対してクエリを実行する SQL ビューを作成します。 クエリには、SSIS カタログのフォルダー名、プロジェクト名、およびパッケージ名が含まれています。

実行時、ビューが実行されると、ビューに定義されたリンク サーバー クエリが、クエリに指定された SSIS パッケージを開始し、パッケージの出力を表形式の結果セットとして受信します。

  1. ビューを作成する前に、新しいクエリ ウィンドウで次のクエリを入力して実行します。 OPENQUERY は、SQL Server でサポートされている行セット関数です。 それは、指定されたパススルー クエリを、リンク サーバーに関連付けられた OLE DB Provider を使用するリンク サーバーで実行します。 OPENQUERY は、テーブル名と同じように、クエリの FROM 句で参照できます。 詳細については、 MSDN ライブラリの OPENQUERY ドキュメント を参照してください。

    SELECT * FROM OPENQUERY(SSISFeedServer,N'Folder=Eldorado;Project=SSISPackagePublishing;Package=Package.dtsx')   
    GO  
    

    重要

    必要に応じて、フォルダー名、プロジェクト名、パッケージ名を更新します。 OPENQUERY が失敗した場合は、 [SQL Server Management Studio][サーバー オブジェクト][リンク サーバー][プロバイダー] の順に展開し、 SSISOLEDB プロバイダーをクリックし、 [InProcess 許可] オプションが有効であることを確認します。

  2. 次のクエリを実行して、このチュートリアル用のデータベース TestDB にビューを作成します。

    
    USE [TestDB]   
    GO   
    
    CREATE VIEW SSISPackageView AS   
    SELECT * FROM OPENQUERY(SSISFeedServer, 'Folder=Eldorado;Project=SSISPackagePublishing;Package=Package.dtsx')   
    GO  
    
    
  3. 次のクエリを実行して、ビューをテストします。

    SELECT * FROM SSISPackageView  
    

OPENQUERY 関数

OPENQUERY 関数の構文は次のとおりです。

SELECT * FROM OPENQUERY(<LinkedServer Name>, N'Folder=<Folder Name from SSIS Catalog>; Project=<SSIS Project Name>; Package=<SSIS Package Name>; Use32BitRuntime=[True | False];Parameters="<parameter_name_1>=<value1>; parameter_name_2=<value2>";Timeout=<Number of Seconds>;')  

Folder、Project、Package パラメーターは必須です。 Use32BitRuntime、Timeout、Parameters は省略可能です。

Use32BitRuntime の値は、0、1、true、または false を指定できます。 これは、SQL Server のプラットフォームが 64 ビットの場合に、パッケージを 32 ビット ランタイムで実行するかどうかを示します (1 または true で実行)。

Timeout は、SSIS パッケージから新しいデータが到着するまで OLE DB provider for SSIS が待機できる秒数を示します。 既定のタイムアウトは 60 秒です。 Timeout には 20 ~ 32000 の範囲の整数値を指定できます。

Parameters には、パッケージ パラメーターとプロジェクト パラメーターの両方の値が含まれます。 パラメーターのルールは、 DTExecのパラメーターと同じです。

クエリ句で使用できる特殊文字を次に示します。

  • 単一引用符 (') - これは標準的な OPENQUERY によってサポートされています。 クエリ句で単一引用符を使用する場合は、2 つの単一引用符 (") を使用します。

  • 二重引用符 (") - クエリのパラメーター部分は二重引用符で囲みます。 パラメーターの値そのものに二重引用符が含まれる場合は、エスケープ文字を使用します。 (例: ")。

  • 左右の角かっこ ([ と ]) - これらの文字は、前後のスペースを示すために使用されます。 たとえば、"[ some spaces ]" は、前に 1 つ、後ろに 1 つのスペースがある文字列 " some spaces " を示します。 これらの文字そのものをクエリ句で使用する場合は、エスケープする必要があります。 たとえば、 \[ や \] のように指定します。

  • スラッシュ (\) - クエリで使用するすべての \ では、エスケープ文字を使用する必要があります。 たとえば、クエリ句の \\ は \ として評価されます。

参照

Data Streaming Destination
Data Streaming Destination を構成する