提高Pentaho过滤行的速度

时间:2017-11-30 07:14:27

标签: excel pentaho pentaho-spoon

我试图通过简单的验证从Excel工作表中过滤掉94000多条记录中的记录,并使用Pentaho将它们放入新的Excel表格中。但是,在传递20000条记录后,读取输入文件和过滤记录的速度逐渐降低到50 r / s以下。

有没有办法提高处理记录的速度或保持1000 r / s的初始速度?

See Image Here

4 个答案:

答案 0 :(得分:2)

在Excel输出步骤的位置放置一个虚拟步骤,然后再次运行转换。如果你现在获得更好的吞吐量,你就可以理解excel writer是罪魁祸首。

请参阅https://support.pentaho.com/hc/en-us/articles/205715046-Best-Practices-Pentaho-Data-Integration-Performance-Tuning-以了解有关Pentaho等人的性能调整的更多信息。

答案 1 :(得分:0)

我嗅到瓶颈在Excel Inpu步而不是Filter step

事实上,Excel Input非常非常缓慢。我每次都可以使用CSV Input的原因。

Filter步骤很快,速度高于几千常见。在您的情况下,此步骤花费时间等待从Excel Input步骤获取行,而不是工作。这说明速度是49行/秒,离Input Excel的60行/秒不远。

x 行之后进程速度变慢的事实表明内存已满并且JVM将时间花在磁盘交换上。尝试增加spoon.bat / spoon.sh的内存大小。 [设置PENTAHO_DI_JAVA_OPTIONS =" -Xms1024m" " -Xmx的 4096 M" " -XX:MaxPermSize = 256m"]

您可以尝试的其他方法是调整PDI在每个步骤中保留的行数。单击任何位置,属性,杂项,行集中的行数。减少它,直到找到适当的平衡,在Excel输入读取的批次大小和内存中保存的记录总数之间。

但最好的方法是避免使用Excel 2007 XLSX Spredsheet类型。

答案 2 :(得分:0)

您的瓶颈在于写入Excel,从输入缓冲区中等待的10k行中可以很容易地看到。

已知写入excel的速度很慢。您可能希望尝试Excel编写器步骤,但不要指望奇迹。

步骤的速度由“通过的行数除以总时间”给出。如果下游步骤缓慢,则会随着时间减少。你可以通过禁用输出步骤来看到它,你会发现前两个步骤要快得多。

答案 3 :(得分:0)

我认为解决这个问题的最佳方法是将当前转换分为2个转换和1个作业。第一个转换将输入Excel行和过滤器,然后使用文本文件输出步骤作为"临时"结果。在下一个转换中,读取先前创建的CSV文件,并使用Excel Writer将其导出到Excel。使用纯文本CSV的行比读取excel更快。 Excel中的数字极为有限。玩得开心。