SQL Server Integration Services (SSIS) - パッケージの実行方法

Microsoft Japan Data Platform Tech Sales Team

佐藤秀和

 

SQL Server Integration Services (SSIS) のパッケージ実行方法は、用途に応じて様々な実行方法がありますが、今回はSQLステートメントからSSISパッケージを実行する方法についてご紹介いたします。

 

SSIS パッケージの実行方式

SSIS パッケージの実行には、以下の様な実行方式がありますが、それぞれパッケージの配置場所(SSISサーバーやファイルシステム)や実行タイミング(スケジュール実行やユーザによる実行)に特徴があります。

No. 実行方法 特徴
1 SQL Server Data Tools (SSDT) SSIS パッケージの開発時に、SSDT からパッケージを実行しデバックを行うことができます。
2 SQL Server Management Studio (SSMS) SSIS サーバーに登録されているパッケージを SSMS から実行できます。
3 SQL Server インポート・エクスポート ウィザード 複雑な変換が不要なデータ移行に利用でき、インポート・エクスポート ウィザードの裏で SSIS が動作しています。
4 dtexec/dtexecui GUI/CUI からSSISパッケージを実行します。3rd Party のジョブ管理ツールやシェルスクリプトからの SSIS パッケージの実行に利用します。
5 SQL Server エージェント 定期実行ジョブとして、SSISパッケージをスケジュール実行します。
6 組み込みストアドプロシージャ SSIS サーバーに登録されているパッケージをストアドプロシージャから実行します。
7 API .NET アプリケーションから SSIS パッケージを実行します。

SSIS パッケージの実行方法の詳細な内容については、こちらをご参照ください。

SSIS の使い方については、以前に本ブログの記事にてご紹介しており、その記事の中では上記 No.4 dtexecコマンドや No.5 SQL Server エージェントでのパッケージの実行方法について記載しておりますが、今回は No.6 ストアドプロシージャによる SSIS パッケージの実行方式をご紹介いたします。

SQL Server 2012 以降のバージョンでは、SSIS サーバーにてパッケージの格納や実行管理( Integration Services カタログ) を行うことが出来るようになっており、格納された SSIS パッケージをストアドプロシージャから実行する事が可能となっています。

ストアドプロシージャによる SSIS パッケージの実行のメリットとしては、dtexec コマンドを実行できない Linux などの Windows 以外の環境から、Java や ODBC をインターフェースとして SQL ステートメントでストアドプロシージャを実行する事で SSIS パッケージを起動する事が可能となります。

それでは、実行手順をご紹介いたします。

 

ストアドプロシージャによる SSIS パッケージの実行

・SSIS パッケージ開発と Integration Services カタログへの配置

SQL Server Data Tools にて SSIS パッケージの開発が完了しましたら、Integration Services 配置ウィザードを使って、SSIS パッケージを Integration Services カタログに配置します。

Integration Services カタログへの配置

image image

 

・SSIS パッケージのストアドプロシージャからの実行

Integration Services カタログに配置した SSIS パッケージは、下記サンプルクエリーの様に組み込みストアドプロシージャを実行することで、SSISパッケージが実行されます。

1. SSIS パッケージ実行インスタンスの作成
2. パラメータの設定
3. SSIS パッケージ実行インスタンスの起動

 --SSISパッケージ 実行インスタンス作成Declare @execution_id bigintEXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'Demo', @project_name=N'SSISDemo_01', @use32bitruntime=False, @reference_id=NullSelect @execution_id--SSISパッケージ パラメータを設定DECLARE @var0 smallint = 1EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0--SSISパッケージ 実行インスタンス起動EXEC [SSISDB].[catalog].[start_execution] @execution_id

 

・実行履歴の確認

SQL Server Management Studio の Integration Services カタログでは、SSIS パッケージの実行履歴や実行パフォーマンス統計等を確認することが出来ます。

image image

 

最後に

オープンな環境でも ETL処理やジョブパッケージを利用することが出来る SSIS をもっと深く理解したいという方は、以下の自習書や参考情報をご活用ください。

関連記事

SQL Server Integration Services (SSIS) の使い方