我正在处理这项新任务,其中我的输入csv文件有大约2亿到3亿条记录,我的要求是对传入数据进行排序,执行查找获取键值并插入目标表。一个建议是编写一个java插件,它将数据排序并存储在多个临时文件中(比如每个一百万个)并从那里检索。我想在pentaho中使用排序步骤并设置要开始的副本数量。但我不确定这是最好的方法。任何人都可以建议如何解决这个问题。感谢。
答案 0 :(得分:2)
我已经使用PDI对这么多行进行排序。 int* (*ptr)[16][128];
步骤工作正常,因为它可能很挑剔。我设置了我的"可用内存阈值(以%为单位)"到~50。该步骤将在您的"排序目录中生成大量临时文件&#34 ;;如果作业崩溃(通常是内存不足),则必须手动删除临时文件。
如果我不得不再次这样做,我可能会设置"压缩TMP文件?"选项,因为多个故障使我超出了磁盘空间。祝你好运!
Java中的自定义排序可能会为您带来更好的性能,但开发时间会很长。如果你每天/每周排序这么多行,无论如何,它可能是值得的。如果没有,请坚持使用PDI' Sort
。