今回は作成したSSISプロジェクトをSQL Serverの統合カタログに登録しSQL Serverから実行してみたいと思います。
環境
- 開発環境:VS2015 Community Update 3
- SQL Server Data Tools:SSDT for VS2015 (14.0.61712.50)
→ SSIS用のプロジェクトを作成するためにはVisual Studioの導入後に対応するSSDTをインストールする必要があります。
Visual Studio の SQL Server Data Tools (SSDT) をダウンロードし、インストールする - データソース: SQL Server 2012 SP4 (11.0.7001.0 (X64)) Evaluation
AdventureWorksLT2012
※SQL Server はEvaluation又はStandard以上のライセンスが必要です!!
- データ保存先:ローカル ファイル(テキスト ファイル)
統合サービスカタログの作成
SSISのプロジェクトは「統合サービスカタログ」に配置することが出来る。まずは、統合サービスカタログの初期設定を行う。
- SSMSを起動し該当のDBインスタンスで接続する。(192.168.1.50¥SQLEVA)
※Windows認証でSSMSにログインすること。 - SSMSのオブジェクトエクスプローラーから「統合サービス カタログ」を右クリックし「カタログの作成」を選択する。
フォルダ名を「AdventureWorksLT2012」と設定する。
カタログの作成を行うとオブジェクトエクスプローラーの統合サービスカタログの下に「SSISDB」が作られその下に作成したカタログ名のディレクトリが作成される。
SSISプロジェクトの配置
前回の投稿 で作成したプロジェクトをSQL Server の統合サービスカタログに配置する。プロジェクトはVisual Studio 2015 で作成しており、SSDTは14.0.61712.50を使用している。この環境設定の場合は既定でSQL Server 2017 に対応している。
SSISプロジェクトを統合サービスカタログに配置するためには、SSISのPackageFormatVersion等のConfig設定が対象のSQL Serverに適合していなければならない。
※配置するまではエラー無く出来るが、SSMSからパッケージを実行するとエラーが発生する。
※手動でConfigを変更するのは難儀…
Visual Studio 2015以降であれば、SSISプロジェクトのプロパティの設定で配置対象のSQL Serverを変更することが出来る。
1. 配置プロジェクトのターゲットバージョンを設定
・プロジェクトのプロパティを選択
・ターゲットバージョンを変更
構成プロパティ→全般から設定出来る。
既定でSQL Server 2017 になっているのを SQL Server 2012 に変更する。
2. パッケージの配置
・プロジェクトメニューから「配置」を選択する。
→「Integration Services 配置ウィザード」が起動する
・「Integration Services 配置ウィザード」が起動
・配置先を選択
サーバー名と認証を設定し「接続」を選択
※サーバー名:192.168.1.50\SQLEVA
※認証はWindows認証を選択すること
・パスを設定するため、「参照」を選択
・統合サービスカタログの選択
「AdventureWorksLT2012」を選択しOKする。
・設定された配置先情報
入力内容に問題なければ「次へ」
・配置内容の確認
問題が無ければ「配置」を実行
・配置結果
※SQL Server認証で実施すると最後の「プロジェクトを配置しています」でエラーが発生する。
※リモート接続でSQL Server認証にしたからかも…
・配置結果の確認
SSISプロジェクトの配置処理が正常に終了したら、SSMSの統合サービスカタログを確認すると、配置したプロジェクトのディレクトリが作成される。
3. パッケージの実行
Step 2 で配置したSSISプロジェクトのパッケージを実行する。
・SSMSの統合サービスカタログの該当するプロジェクトのディレクトリを展開して「パッケージ」内の「Package.dtsx」を右クリックし「実行」を選択
・パラメータの値を設定
パラメータの値が設定されていない警告が出ているため左のボタンから値を設定する。
パラメータ値の設定をしたら「OK」する。
・実行結果レポートを表示するため「はい」を選択
・実行結果レポート(概要)
・出力データの確認
パッケージの実行エラー
SSISプロジェクトの配置ターゲットバージョンを適切に設定しないと以下のエラーが実行時に発生する。
※配置時にエラーが発生しないので注意!!
・実行結果レポート(エラー発生時)
実行情報の「状態」が「失敗」となる。
・エラー内容例
Package:エラー: エラー 0xC001700A上記エラーはSSISプロジェクトの配置ターゲットバージョンが配置するSQL Serverに対応していないことを示している。
“パッケージに含まれるバージョン番号が無効です。バージョン番号を現在のバージョン番号より大きくすることはできません。”
により、パッケージをバージョン 8 から 6 に移行できませんでした。
※バージョン 8 : SQL Server 2014 - 2017
※バージョン 6 : SQL Server 2012
参考
What SQL version is my SSIS package? | SQL StudiesSSIS The version number in the package is not valid ? SQLGardner
まとめ
SSISプロジェクトを実装するためのVisual Studio のVersion(正確にはSSDTのVersion) とSSISプロジェクトのターゲットバージョンが関連していることに気が付かず3日くらい「バージョン番号問題」に苦しみました…それまでVisual Studio 2013で作成しており、ターゲットバージョンの変更が出来ずにConfigの手動書き換えもやってみましたが動かず…
Visual Studio 2015 を導入しプロジェクトのプロパティでターゲットバージョンの変更が出来るようになり解決。
実際にSSISプロジェクトを開発しパッケージを運用する場合は開発環境、運用環境の各Versionに十分に注意する必要がありそうです。
0 件のコメント:
コメントを投稿