SSIS(パッケージ配置モデル)の構成ファイルを作成する

SSIS(SQL Server Integration Services)はMicrosoftのデータ統合ツールで、データの抽出、変換、ロード(ETL)プロセスを効率的に実行します。

今回はSSISの接続マネージャーの情報を構成ファイルに設定する方法を紹介します。

前提

本記事は、以下を前提としています。

  • SSISの開発経験があること
  • プロジェクト配置モデルのSSISプロジェクトがあること

開発環境

  • Visual Studio 2022 17.13.0

今回使用するデータフロー

今回使用するデータフローは、以下の通りです。

OLE DB ソースでSQL Server に接続後、クエリを実行し、フラット ファイル変換先でクエリ実行結果をファイルに出力しています。

OLE DB接続マネージャー(localhost.Test_DB)では、サーバー名とデータベース名を指定しています。

フラット ファイル接続マネージャーでは、ファイルの出力先パスを指定しています。

構成ファイルの作成

プロジェクト配置モデルに変換

構成ファイルを設定するには、パッケージ配置モデルに変換する必要があります。

プロジェクト配置モデルをパッケージ配置モデルに変換する手順を説明します。

  1. プロジェクト配置モデルの対象プロジェクトを右クリックします。

  2. 「パッケージ配置モデルに変換」をクリックします。

  3. 「パッケージ配置モデルに変換」のポップアップが表示されたら「OK」をクリックします。

  4. 結果に「成功」が表示されていることを確認し、「OK」をクリックします。

  5. プロジェクト名の後ろに「(パッケージ配置モデル)」という文字が追加されていることを確認します。

構成ファイルの作成

  1. SSISデザイナーで制御フローの背景をクリックします。

  2. ツールバーの「拡張機能」>「SSIS」>「パッケージ構成」をクリックします。

  3. 「パッケージ構成オーガナイザー」のポップアップが表示されたら、「パッケージの構成を有効にする」が選択されていることを確認し、「追加」ボタンをクリックします。

  4. 「Next」をクリックします。

  5. 「Configuration type」が「XML configuration file」であることを確認し、「Configuration file name」に設定したい構成ファイル名を入力します。以下のようにファイル名を入力すると、自動的にSSISプロジェクトのパスと拡張子(dtsConfig)が入力されますので、完了したら「Next」をクリックします。

  6. 画面左側のObjectsから、構成ファイルで設定したい項目を選択します。Objectsの項目をクリックすると画面右側に現在の設定値が表示されるので、ここで現在の設定値を確認できます。完了したら「Next」をクリックします。

  7. 構成名を入力し、画面に表示された各項目が正しいか確認します。構成名は構成作成時・作成完了時に表示される「パッケージ構成オーガナイザー」に表示される名前です。完了したら「Finish」をクリックします。

  8. 「パッケージ構成オーガナイザー」に今回作成した構成が表示されていることを確認し、「閉じる」をクリックします。

  9. ソリューションエクスプローラーで、「その他」に作成した構成ファイルが配置されていることを確認します。
    ※ 今回、作成した構成ファイルがその他に表示されなかったのですが、SSISプロジェクトを右クリック→追加→既存の項目→作成した構成ファイルを選択 で表示できました。

  10. 作成されたファイルの内容を確認し、適宜修正します。

構成ファイルの参照パスを変更

SSISが実行される際、コード内で指定されているパスに配置されているファイルを構成ファイルとして読み込みます。

構成ファイルの配置先を変更する場合はこちらの手順が必要になります。

  1. dtsxファイルを右クリックし、「コードの表示」をクリックします。

  2. 「DTS:ConfigurationString」の値に参照する構成ファイルのパスが記載されているので、変更先のパスに変更し保存します。

さいごに

本記事では、SSISの構成ファイル作成方法についてご紹介しました。

構成ファイルを作成することで、環境によって異なる値を書き換えることが容易になります。

この記事が参考になれば幸いです。

参考資料

learn.microsoft.com

執筆担当者プロフィール
岡田 弥侑

岡田 弥侑(日本ビジネスシステムズ株式会社)

Data&AI本部所属。主にPowerShellでの開発を行っています。

担当記事一覧