2018年12月30日日曜日

SSISプロジェクトを統合サービスカタログへ配置

前回の投稿 でSSISプロジェクトの作成方法をまとめました。
今回は作成したSSISプロジェクトをSQL Serverの統合カタログに登録しSQL Serverから実行してみたいと思います。

環境

   ※SQL Server はEvaluation又はStandard以上のライセンスが必要です!!
  • データ保存先:ローカル ファイル(テキスト ファイル)

統合サービスカタログの作成

SSISのプロジェクトは「統合サービスカタログ」に配置することが出来る。
まずは、統合サービスカタログの初期設定を行う。
  • SSMSを起動し該当のDBインスタンスで接続する。(192.168.1.50¥SQLEVA)
     ※Windows認証でSSMSにログインすること。
  • SSMSのオブジェクトエクスプローラーから「統合サービス カタログ」を右クリックし「カタログの作成」を選択する。
    フォルダ名を「AdventureWorksLT2012」と設定する。

enter image description here


enter image description here

カタログの作成を行うとオブジェクトエクスプローラーの統合サービスカタログの下に「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. 配置プロジェクトのターゲットバージョンを設定
・プロジェクトのプロパティを選択

enter image description here

・ターゲットバージョンを変更
構成プロパティ→全般から設定出来る。
既定でSQL Server 2017 になっているのを SQL Server 2012 に変更する。

enter image description here


2. パッケージの配置
・プロジェクトメニューから「配置」を選択する。
 →「Integration Services 配置ウィザード」が起動する

enter image description here


・「Integration Services 配置ウィザード」が起動

enter image description here


・配置先を選択
サーバー名と認証を設定し「接続」を選択
※サーバー名:192.168.1.50\SQLEVA
※認証はWindows認証を選択すること

enter image description here


・パスを設定するため、「参照」を選択

enter image description here


・統合サービスカタログの選択
「AdventureWorksLT2012」を選択しOKする。

enter image description here


・設定された配置先情報
入力内容に問題なければ「次へ」

enter image description here


・配置内容の確認
問題が無ければ「配置」を実行

enter image description here


・配置結果

enter image description here

※SQL Server認証で実施すると最後の「プロジェクトを配置しています」でエラーが発生する。
※リモート接続でSQL Server認証にしたからかも…

enter image description here


・配置結果の確認
SSISプロジェクトの配置処理が正常に終了したら、SSMSの統合サービスカタログを確認すると、配置したプロジェクトのディレクトリが作成される。

enter image description here



3. パッケージの実行
Step 2 で配置したSSISプロジェクトのパッケージを実行する。
・SSMSの統合サービスカタログの該当するプロジェクトのディレクトリを展開して「パッケージ」内の「Package.dtsx」を右クリックし「実行」を選択

enter image description here


・パラメータの値を設定
パラメータの値が設定されていない警告が出ているため左のボタンから値を設定する。

enter image description here


enter image description here


enter image description here


パラメータ値の設定をしたら「OK」する。


・実行結果レポートを表示するため「はい」を選択

enter image description here



・実行結果レポート(概要)

enter image description here


・出力データの確認

enter image description here



パッケージの実行エラー
SSISプロジェクトの配置ターゲットバージョンを適切に設定しないと以下のエラーが実行時に発生する。
※配置時にエラーが発生しないので注意!!
・実行結果レポート(エラー発生時)
実行情報の「状態」が「失敗」となる。

enter image description here


・エラー内容例

enter image description here

Package:エラー: エラー 0xC001700A
“パッケージに含まれるバージョン番号が無効です。バージョン番号を現在のバージョン番号より大きくすることはできません。”
により、パッケージをバージョン 8 から 6 に移行できませんでした。
上記エラーはSSISプロジェクトの配置ターゲットバージョンが配置するSQL Serverに対応していないことを示している。
※バージョン 8 : SQL Server 2014 - 2017
※バージョン 6 : SQL Server 2012


参考

What SQL version is my SSIS package? | SQL Studies

SSIS 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 件のコメント:

コメントを投稿