我正在执行这项新任务,其中我的输入 csv 文件包含大约 200 到 3 亿条记录,我的要求是对传入数据进行排序,执行查找,获取键值并将其插入到目标表中。一个建议是编写一个 java 插件,它将数据排序并存储在多个临时文件(假设每个临时文件一百万个)中并从那里检索。我正在考虑在 pentaho 中使用排序步骤并设置启动的副本数。但我不确定最好的方法是什么。任何人都可以建议如何解决这个问题。谢谢。
最佳答案
我已经使用 PDI 对这么多行进行排序。 Sort
步骤工作正常,但可能有点挑剔。我将“可用内存阈值(百分比)”设置为 ~50。该步骤将在您的“排序目录”中生成大量临时文件;如果作业崩溃(通常是由于内存不足),您将必须手动删除临时文件。
如果我必须再次这样做,我可能会设置“压缩 TMP 文件?”因为多次失败导致我的磁盘空间不足。祝你好运!
Java 中的自定义排序可能会给您带来更好的性能,但开发时间会很长。如果您要每天/每周对这么多行进行排序,无论如何,这可能是值得的。如果没有,请坚持使用 PDI 的 Sort
。
关于sorting - 在 Pentaho 中对 200-3 亿条记录进行排序的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855066/