0

ほぼ 2 つの都市の物語...2 列の文字列のペアとして入ってくる 17,000 行のデータがあります。行ごとに常に 5 つのアイテム番号と 5 つのアイテム ユニット カウントがあります (ユニット カウントは常に 4 文字です)。ユニットとアイテムを一致させる必要があります。そうしないと、無効になります。私がやろうとしているのは、文字列を個々の行に「アンピボット」することです-アイテム番号とアイテムユニット

1 行のデータと 2 つの列の例を次に示します。

  • レコード ID 列: 0
  • 項目番号列: A001E10 A002E9 A003R20 A001B7 XA917D3
  • 項目単位列: 001800110002000300293

データを個々の行にピボット解除するための C# Windows アプリ テスト ハーネスを作成しましたが、問題なく動作します。したがって、基本的にはデータを 85,000 行 (17,000 の 5 倍) にピボット解除し、期待どおりのグリッド (ID、アイテム番号、アイテム ユニット) に表示します。

  • 0 | A001E10 | 0018
  • 0 | A002E9 | 0011
  • 等々...

私の SSIS アプリでは、この同じデータを処理するスクリプト タスクを追加し、基本的にテスト ハーネスが使用するのと同じコードを使用しました。タスクを実行すると、17,000 行がロードされていることがわかりますが、出力では 15,000 +/- しか生成されないため、明らかに何かが正しくありません。

私が考えているのは、何らかの理由でレコードをドロップしているという点でテスト ハーネスが使用するのと同じコードを使用しているにもかかわらず、スクリプト タスクが正しくセットアップされていないということです。

タスクに戻って、最初のパスで取得できなかった特定のレコード ID を指定すると、その ID が処理され、正しい出力が生成されます。したがって、これは、レコードは問題ないことを示していますが、何らかの理由でそれを見逃すか、最初のプロセスでドロップします。多分バッファと関係がありますか?

4

1 に答える 1

1

よく-私はそれを理解しました。

並行して実行されている大量のデータフロー タスクを含むシーケンス タスクがあります。データの抽出と読み込みを正しく処理し、優先順位を付けるために、エンジンに依存しています。ただし、この 1 つの特定のスクリプト タスクは、エンジンによってそのシーケンス コンテナー内で正しく処理されません。

手がかりは、プロセス全体の外でスクリプト タスク自体を実行でき、正常に機能したことです。そのため、スクリプト タスクをシーケンス タスクから取り出し、シーケンス タスクの後に単独で配置したところ、正しく実行されるようになりました。

于 2015-09-15T14:31:41.707 に答える