SSISを使用して複数のレコードタイプを持つフラットファイルを読み取る
質問
私たちは、SSISを評価して、今後の新しいプロジェクトに適しているかどうかを確認しています。プロセスの1つは、区切られたレコードを持つフラットファイルを処理する必要があります。ファイルには注文が含まれます。ヘッダー行、(オプションの)配送先住所行、および1つ以上の詳細行があります。各行のフィールドは区切られていますが、同じ形式ではありません。
この回答を読みました:
SSISトランザクションデータ(異なるレコードタイプ、1つのファイル)
そして、条件付き分割タスクを使用してデータを分割して複数の出力を生成することはできますが、そこからどのように進むかはわかりません。解決する必要がある2つの問題があります:
-
住所と詳細は注文レコードを参照するため、最初に住所と詳細の前に注文ヘッダーを挿入する必要があります。そのため、最初にその出力を処理する必要があると思いますが、SSISではどのように条件分岐タスクのそのブランチを他のブランチの前に処理するため。理想的には、注文ヘッダーを処理してから、ユーザーIDに注文IDを保存して、詳細を処理するときにその変数を参照できるようにします。
-
ファイルには複数の注文があるため、分割はより複雑になります。
C#でファイルを前処理したり、ステージングテーブルにファイルを読み込むアプリケーションを常に作成できましたが、そのアプローチが好きかどうかはわかりません。
このプロセスを経験した人は、どのように対処したかについての洞察を共有できますか?
ありがとう、
クリス
解決
分割後、各タイプのレコードを独自のステージングテーブルまたはssisの未加工データの宛先にデポジットします。これは、このような中間ステップに適しています。次に、すべてのヘッダーをファイナルテーブルにロードし、参照エラーなしで続行します。
詳細レコードにheaderIDがあると仮定していますか?これにより、2番目の質問を簡単に処理できるはずです。そうでない場合は、お知らせください。