1

背景: Server1には 4 つのテーブルを持つソース データベースがあります。Server2は、これらの 4 ~ 5 個のテーブル (およびいくつかの追加フィールド) を持つ宛先データベースです。サーバー 1 からサーバー 2 にデータを移動する前に、フィールド マッピングといくつかの追加処理 (つまり、切り捨て、連結など) があります。4 つの独立した dtsx パッケージがあり、それぞれに 1 つずつあり、各 dtsx パッケージを順番に 1 つずつ呼び出す SQL ジョブがあります。

プラットフォーム: SQL 2005 & SSIS 2005

さて、ご想像のとおり、各 dtsx パッケージは、接続マネージャーで "ソース" と "宛先" のデータベース接続をレプリケートします。リモート宛先データベースの設定を変更すると、各 dtsx で接続を変更する必要があります。リモート データベース接続情報を 1 か所で保持するオプションは何ですか?

ここに私が知っているいくつかがあります -

  1. 4 つの dtsx のそれぞれを順番に呼び出す親 dtsxを作成し (ジョブで行われるのと同じ)、この (親) パッケージで定義された接続変数を渡します ()。ただし、これはジョブ内の単一の dtsx パッケージ ステップであるため、将来のデバッグが容易ではありません (現時点では、どのステップが失敗したかを簡単に特定できるため、どのテーブル/dtsx に問題があるかを確認できます)。

  2. 少し伝統的ですが、機能します -データベースのシノニムを使用します。データ比較 SP では、一部のリモート テーブルに対して既にシノニムを使用しています。4 つの新しいシノニム (リモート テーブルごとに 1 つ) を作成するとします。これらのテーブルは、同義語によって dtsx で直接参照できます。後で変更があった場合 - シノニムを削除して再作成するスクリプトを変更して再実行する必要があります (リモートでも実行できます!)

私は単純な dtsx の設計とプログラミングを行っているので、私の知識を許して、最善のアプローチを教えてください。

4

1 に答える 1

1

あなたが探しているのはPackage Configurationsです。

基本的に、構成値は、SSIS の一部のプロパティ (たとえば、接続マネージャーの接続文字列) の格納されたキーと値のペアです。

さまざまな形式で保存できます (リンクを参照)。私は個人的に XML ファイルを使用しています。これは、展開を処理し、ファイルを "取得" するサポート チームがいるからです。

次に、各パッケージは、独自の構成でその XML ファイルを参照するだけです。パッケージが実行されると、その接続の接続文字列の値が使用されるため、各パッケージは XML ファイルの内容 (または選択した構成形式) を使用します。

基本的な手順:

  1. パッケージで接続を作成します。
  2. [SSIS] -> [パッケージ構成] で、[パッケージ構成を有効にする] を選択し、[追加] を選択して、必要な形式を選択し、接続の接続文字列プロパティを選択して、構成を保存します。
  3. 他の 3 つのパッケージで、同じ領域に移動し、[追加] を選択します。今度は、作成した構成を参照します。その構成の値をパッケージの内容で上書きするか、既存のものを再利用するかを尋ねられます (つまり、作成済みの値を保持します) - [既存の再利用] を選択します。名前を付けて保存します。

詳細については、上記のリンクをチェックしてください。それはあなたが望むものです。

于 2013-02-27T15:21:14.973 に答える