1

SSISを評価して、今後の新しいプロジェクトに適しているかどうかを確認しています。プロセスの1つは、レコードが区切られたフラットファイルを処理する必要があります。ファイルには注文が含まれます。ヘッダー行、(オプションの)配送先住所行、および1つ以上の詳細行があります。各行のフィールドは区切られていますが、同じ形式ではありません。

私はこの答えを読みました:

SSISトランザクションデータ(さまざまなレコードタイプ、1つのファイル)

また、条件付き分割タスクを使用してデータを分割し、いくつかの出力を生成することはできますが、そこからどのように進めるかがわかりません。解決する必要のある2つの問題があります。

  1. アドレスと詳細は注文レコードを参照するため、注文ヘッダーを最初にアドレスと詳細の前に挿入する必要があります。そのため、最初にその出力を処理する必要があると思いますが、SSISではそのブランチを作成する方法がわかりません。条件付き分割タスクは、他のブランチの前に処理されます。理想的には、注文ヘッダーを処理してから、注文IDをユーザー変数に格納して、詳細を処理するときにその変数を参照できるようにします。

  2. ファイルには複数の注文があるため、分割はより複雑になります。

ファイルを前処理したり、ファイルをステージングテーブルに読み込んだりするアプリケーションを、いつでもC#で作成できますが、そのアプローチが好きかどうかはわかりません。

このプロセスを経験した人は、どのように対処したかについての洞察を共有できますか?

ありがとう、

クリス

4

1 に答える 1

2

分割後、各タイプのレコードを独自のステージングテーブルに、またはssis生データの宛先にデポジットします。これは、このような中間ステップに適しています。次に、すべてのヘッダーを最終テーブルにロードし、参照エラーなしで続行します。

詳細レコードにはheaderIDが含まれていると思いますか?これで、2番目の質問に簡単に対処できるようになります。そうでない場合は、お知らせください。

于 2009-09-16T00:33:03.613 に答える