3

我有一个 Biztalk 项目,它导入传入的 CSV 文件并将其转储到数据库表中。导入工作正常,但我只需要从一个超过一百万行的文件中保留大约 200-300 条记录。我的编排丢弃了这些行,但问题是我正在导入的平面文件仍然是 250MB,当使用常规平面文件管道转换为 XML 时,处理需要数小时,有时会导致服务器耗尽内存。

我可以做些什么来让自定义管道本身丢弃我不关心的行吗?每个 CSV 行中的第一项是几个字符串之一,我只想保留以某个字符串开头的行。

感谢您提供的任何帮助。

4

1 回答 1

4

自定义管道组件肯定是最好的解决方案;但它需要在反汇编组件之前的解码阶段执行。

使其 100% 支持流式传输会很复杂(但肯定可行),但根据生成的修剪后的 CVS 文件的大小,您可以在自定义组件运行后立即预处理整个输入文件并生成结果如果它很小,则在内存中(在 MemoryStream 中),或者将它们写入文件,然后将生成的 FileStream 返回到 BizTalk 以从那里继续处理。

于 2010-04-07T20:16:18.097 回答