快速获取文件夹的文件数

时间:2017-03-07 21:29:00

标签: pentaho kettle

我有一个Pentaho工作,在其中一个转换中我想获取文件夹中的文件数。我尝试了两种不同的方法,但都需要花费2分钟才能执行。我想知道是否有一个步骤可以用来以更有效的方式做到这一点。

方法1 - 获取文件行数 - >设置变量

在我的获取文件行计数步骤中,我有目录和通配符(。*。xml)来获取文件夹中xml文件的数量。在内容选项卡中,我将文件计数保存到字段(fileCount),然后将其保存到变量中。对于包含3,722 xml文件的文件夹,运行时间为2:15。

Get File rows count - File

Get File rows count - Content

方法2 - 获取文件名 - >分组依据 - >设置变量

使用这种方法,我有一个类似于“获取文件行计数”步骤的设置,但之后我按行动执行了一组“行数(没有字段参数)”。对于相同的3,722个文件,此方法在2:30运行。

我认为这些花了很长时间,因为它试图将文件存入内存,但我只关心计数。希望能找到一种方法来获得统计数据。

1 个答案:

答案 0 :(得分:1)

获取文件行计数步骤将计算每个文件中的每一行,因此难怪它的速度很慢。

使用获取文件名步骤,无论文件大小如何,都应该非常快。幸运的是我准备了一个装满XML文件的文件夹,所以这里有一个截图(在我的笔记本电脑上的Linux VM中)

enter image description here

如果您正在使用此步骤但仍有问题,请首先确保已从转换中删除了其他输入步骤,因为它们仍将运行并可能会发生干扰。其次,检查当Spoon访问元数据时,防病毒软件是否正在尝试扫描每个文件。