3

着信 CSV ファイルをインポートしてデータベース テーブルにダンプする Biztalk プロジェクトがあります。インポートは正常に機能しますが、100 万行以上のファイルから約 200 ~ 300 レコードを保持するだけで済みます。私のオーケストレーションはこれらの行を破棄しますが、問題はインポートしているフラット ファイルがまだ 250 MB であり、通常のフラット ファイル パイプラインを使用して XML に変換すると、処理に数時間かかり、サーバーのメモリが不足することがあります。

カスタム パイプライン自体に関係のない行を破棄させるためにできることはありますか? 各 CSV 行の最初の項目は数少ない文字列の 1 つであり、特定の文字列で始まる行のみを保持したいと考えています。

ご協力いただきありがとうございます。

4

1 に答える 1

4

カスタム パイプライン コンポーネントが最適なソリューションであることは間違いありません。ただし、逆アセンブラー コンポーネントの前のデコード ステージで実行する必要があります。

100% ストリーミング対応にするのは複雑ですが (確かに実行可能です)、結果のトリミングされた CVS ファイルのサイズによっては、カスタム コンポーネントが実行されるとすぐに入力ファイル全体を単純に前処理して、結果を生成することができます。小さい場合はメモリ内 (MemoryStream 内) に保存するか、ファイルに書き込み、結果の FileStream を BizTalk に返して、そこから処理を続行します。

于 2010-04-07T20:16:18.097 に答える