2017-01-25 3 views
1

Ich arbeite an dieser neuen Aufgabe, wo meine Eingabe-CSV-Datei etwa 200 bis 300 Millionen Datensätze hat meine Anforderung ist, die eingehenden Daten zu sortieren führen Sie Lookup den Schlüsselwert erhalten und in Zieltabelle einfügen. Ein Vorschlag war, ein Java-Plugin zu schreiben, das Daten in mehreren temporären Dateien (etwa jeweils eine Million) sortiert und speichert und von dort abruft. Ich dachte daran, den Sortierschritt in Pentaho zu verwenden und die Anzahl der zu startenden Kopien festzulegen. Aber ich bin mir nicht sicher, was der beste Ansatz ist. Kann jemand vorschlagen, wie man das macht? Vielen Dank.Der beste Weg, um 200-300 Millionen Datensätze in Pentaho zu sortieren?

Antwort

2

Ich habe PDI verwendet, um diese Zeilen zu sortieren. Der Sort Schritt funktioniert gut, aber es kann knifflig sein. Ich habe meinen "Free memory threshold (in%)" auf ~ 50 gesetzt. Der Schritt erzeugt Gobs temporärer Dateien in Ihrem "Sort-Verzeichnis"; Wenn der Job abstürzt (normalerweise, wenn nicht genügend Arbeitsspeicher zur Verfügung steht), müssen Sie die temporären Dateien manuell entfernen.

Wenn ich es nochmal machen müsste, würde ich wahrscheinlich "Compress TMP Files?" Option, da mehrere Fehler mir den Speicherplatz aus dem Speicher gerissen haben. Viel Glück!

Eine benutzerdefinierte Sortierung in Java kann zu einer besseren Leistung führen, die Entwicklungszeit ist jedoch erheblich. Wenn Sie diese vielen Zeilen täglich/wöchentlich sortieren, was auch immer, es ist es wahrscheinlich wert. Wenn nicht, kleben Sie einfach mit PDIs Sort.

+0

Ich probierte einige Tests mit Pentaho-Sortierschritt funktioniert es gut, wenn ich einen Reihengeneratorschritt verwende, aber friert ein oder stürzt ab, wenn ich einen cvs-Eingang verwende. Nicht sicher warum. – DUnkn0wn1

+0

Wahrscheinlich wegen der Größe Ihres Datensatzes. Stellen Sie sicher, dass "Lazy Conversion" deaktiviert ist. Versuchen Sie, die Einstellung für den Schwellenwert für den freien Speicher anzupassen. –

+0

Danke. Das hat geholfen. Die Verringerung der Puffergröße hilft auch. – DUnkn0wn1

Verwandte Themen