Ich habe einen Pentaho-Job und in einer der Transformationen möchte ich die Anzahl der Dateien in einem Ordner erhalten. Ich habe zwei verschiedene Ansätze ausprobiert, aber beide benötigten mehr als 2 Minuten für die Ausführung. Ich würde gerne wissen, ob es einen Schritt gibt, der dazu genutzt werden könnte, dies auf effizientere Weise zu tun.Schnell Dateianzahl des Ordners
Ansatz 1-Get Datei Reihen zählen -> Set Variablen
In meinen Get Datei Reihen zählen Schritt Ich habe das Verzeichnis und eine Wildcard die Anzahl der XML-Dateien zu erhalten (* xml..) in einem Ordner. In der Registerkarte "Inhalt" habe ich die Dateianzahl in einem Feld (fileCount) gespeichert, das dann in einer Variablen gespeichert wird. Für einen Ordner mit 3.722 xml Dateien dauerte es 2:15 um zu laufen.
Ansatz 2-Get Dateinamen -> Gruppierung -> Set Variablen
Mit diesem Ansatz, den ich eine ähnliche Einstellung wie der Schritt habe ‚File Get rows count 'aber dann, nachdem ich eine Gruppe nach Aktion mit dem Typ' Anzahl der Zeilen (ohne Feldargument) 'gemacht habe. Diese Methode lief in 2:30 für die gleichen 3.722 Dateien.
Ich denke, das dauert so lange, weil es versucht, die Dateien im Speicher zu bekommen, aber ich kümmere mich nur um die Anzahl. Hoffte, einen Weg zu finden, um einfach zu zählen.
Danke für die Eingabe, es macht mehr Sinn, Ansatz zwei zu verwenden, besonders wenn Sie sich nicht um die Anzahl der Zeilen kümmern. Ich habe einen weiteren Test gemacht und herausgefunden, was die Langsamkeit verursacht hat. Als ich einen lokalen Ordner anschaute, lief er sehr schnell, in einer ähnlichen Geschwindigkeit wie der Screenshot, den Sie anschlossen. Wenn ich gegen einen Netzwerkordner lief, dauerte es mehr als zwei Minuten. Dies führt mich zu der Annahme, dass das Problem die Kommunikation mit dem Speicherort der Freigabe und nicht der Schritt selbst ist. –