0

SSIS - 当社製品の複数バージョンのサポート

当社のエンタープライズ データ ウェアハウスは、複数のデータ ソースからのデータを統合します。これらのデータ ソースの異なるバージョンからのデータ収集を同時にサポートできる必要があります。

元。お客様は、7.3、7.3.1、および 7.3.2 の 3 つの異なるバージョンの製品をインストールしています。この場合、データ ウェアハウスはバージョン 7.3.2 になりますが、以前のバージョンのデータ ソースからデータを収集できる必要があります。

ストアド プロシージャを使用してソースからステージング エリアにデータを収集し、それを変換してウェアハウスにロードします。SSIS パッケージの設計では、ソースからデータを収集するテーブルごとにパッケージを実行するメイン パッケージが 1 つあります。メイン パッケージは、データを収集する必要があるソースごとに呼び出されます。実行時に 3 つのソースがある場合、メイン パッケージの 3 つのインスタンスが実行されます。これらのパッケージはウェアハウス マシン上で実行され、ソース システムからデータを取得します。

これらのパッケージの 1 つのバージョンをウェアハウスで維持し、さまざまなソース バージョンからのデータ収集をサポートしたいと考えています。

課題

  • ソース システムのストアド プロシージャの署名がバージョン間で変更されている
  • 新しいリリースでは、これらのストアド プロシージャによって返される追加のフィールドがいくつかあります。

7.3 バージョンの署名: [dbo].[PDW_GetMediaAgentSummary](@LastVersionID AS BIGINT、@InitializeDays as INT = 60、@NextVersionID AS BIGINT OUTPUT)

7.3 SP1 バージョンの署名: [dbo].[PDW_GetMediaAgentSummary](@LastVersionID AS BIGINT、@DataStartDate AS DateTime2(3)、@NextVersionID AS BIGINT OUTPUT)

また、7.3 ではこのストアド プロシージャが 8 つのフィールドを返し、7.3 sp1 では 10 のフィールドが返されたとします。

私たちが対応しようとしている方法は、OLE DB ソースで「SQLCmd from variable」オプションを使用して署名の違いをカバーすることですが、このオプションではパラメーターを変数にバインドして出力値を取得することはできません。追加フィールドの 2 つ目の問題 (または 7.3 手順からの追加フィールドの欠如) として、メタデータの検証をオフにしようとしましたが、7.3 バージョンに対して SSIS パッケージを実行すると、実行時にフィールドが見つからないというエラーが発生します。私たちが解決できる唯一の方法は、ソース バージョンに基づいてデータ フロー タスクを複製することです。リリース数が増えると制御不能になる可能性があるため、これを行うためのより良い方法を探しています。

これについての助けに感謝します

4

1 に答える 1