sorting - 在 Pentaho 中对 200-3 亿条记录进行排序的最佳方法?

标签 sorting csv pentaho etl kettle

我正在执行这项新任务,其中我的输入 csv 文件包含大约 200 到 3 亿条记录,我的要求是对传入数据进行排序,执行查找,获取键值并将其插入到目标表中。一个建议是编写一个 java 插件,它将数据排序并存储在多个临时文件(假设每个临时文件一百万个)中并从那里检索。我正在考虑在 pentaho 中使用排序步骤并设置启动的副本数。但我不确定最好的方法是什么。任何人都可以建议如何解决这个问题。谢谢。

最佳答案

我已经使用 PDI 对这么多行进行排序。 Sort 步骤工作正常,但可能有点挑剔。我将“可用内存阈值(百分比)”设置为 ~50。该步骤将在您的“排序目录”中生成大量临时文件;如果作业崩溃(通常是由于内存不足),您将必须手动删除临时文件。

如果我必须再次这样做,我可能会设置“压缩 TMP 文件?”因为多次失败导致我的磁盘空间不足。祝你好运!

Java 中的自定义排序可能会给您带来更好的性能,但开发时间会很长。如果您要每天/每周对这么多行进行排序,无论如何,这可能是值得的。如果没有,请坚持使用 PDI 的 Sort

关于sorting - 在 Pentaho 中对 200-3 亿条记录进行排序的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855066/

相关文章:

c# - 对循环缓冲区进行排序的最有效方法

c# - 排序多个列表

csv - 读取CSV时如何指定编码格式?

mysql - docker pentaho mysql驱动问题

sftp - 在 Pentaho SFTP 步骤中将日期作为参数传递

python - 将元组列表拆分为同一元组字段的子列表

python - 向后解析 CSV 文件

matlab - 数字大于 7 位的 Csvwrite

hadoop - 商业智能中的 Spark

ios - 对 NSMutableArray 中的 NSString 对象进行排序