5

データフロー内で、ルックアップを実行し、一致しない行を挿入し、再ルックアップしてから、完全な(元の)データセットを続行することは可能ですか?

に移動した後、挿入された行を取得/再利用する方法がわかりません。また、ルックアップ挿入ブランチが完了するまで(そしてすべての行を結合して戻すまで)待機OLE DB Destinationできることもわかりません。Multicast

データフロー内で実行できない場合、ルックアップ挿入を最初に実行するために、前のデータフロータスクですべてのフィルタリングロジックを繰り返す必要がありますか?

これは明らかな/すでに答えられた質問かもしれませんが、検索した後、私は多くを見つけることができません。

4

1 に答える 1

5

これは、単一のデータフロー内では不可能です。十分にグーグルすると、さまざまな「解決策」がありますが、それらは、行が並列に処理されたバッファー/バッチ内のデータフローを移動するというアーキテクチャ上の現実を見落としています。

したがって、2つの隣接するバッファに到着する複数の「新しい」行があることを想像してください。バッファ2がアップストリームルックアップに到達する前に、バッファ1からの「新しい」行のダウンストリーム処理が完了したことを確認する方法はありません。これにより、同じキーのルックアップターゲットテーブルに複数の「新しい」行が挿入されます。

必要なすべてのルックアップ挿入を実行するアップストリームデータフロータスクが必要です。ルックアップインサートは高速ロードとテーブルロックを使用でき、ダウンストリームルックアップはフルキャッシュになる可能性があるため、これは実行時に全体的に効率的なソリューションになります。

于 2012-11-08T03:20:44.730 に答える