我正在使用CloverETL工具来读取超过100,000行的大型csv文件,在将数据库插入数据库表之前从数据库中转换一些查找值。
基本上我用过:
非常简单的过程,适用于少量记录。但是当我尝试导入整个文件时,它只是耗尽了内存(增加了内存分配并没有帮助)。
我发现ExtHashJoin试图等到它开始插入它们之前加入所有记录,这似乎是问题,因为它必须将所有记录存储在内存中。我真的不需要这种行为。这些记录都是独立的,可以批量处理,例如每1000行一次,但我无法想办法让它做到这一点。
我还尝试设置不同的阶段值,但在开始插入第一条记录之前,它仍尝试连接所有值。
如何告诉平面文件阅读器打破记录并分批处理?
感谢。
Eric
答案 0 :(得分:1)
没有简单的方法可以强制FlatFileReader组件分解记录并批量处理它们。但是,我可以建议一些可能有助于解决由ExtHashJoin组件引起的内存溢出问题的提示:
有关此主题的更多详细信息,请参阅CloverETL论坛:http://forum.cloveretl.com/viewtopic.php?p=12926#p12926