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
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
.
- 1. Der beste Weg, um ein Array zu sortieren
- 2. Was wäre der beste Weg, um Datensätze in SQL
- 3. Welches ist der beste Weg, CSV-Dateien mit riesigen Datenmengen zu erstellen (5 Millionen Datensätze)?
- 4. Der beste Weg, um Javascript zu teilen
- 5. Der beste Weg, um Fehlermeldungen zu behandeln
- 6. Der beste Weg, um Javascript zu speichern
- 7. Der beste Weg, um Erweiterungsmethoden zu implementieren
- 8. Der beste Weg, um IronPython zu erkennen
- 9. Der beste Weg, um Fehler zu behandeln
- 10. Der beste Weg, um Stringstream zu leeren?
- 11. Der beste Weg, um Rollover zu machen?
- 12. Der beste Weg, um Null zu überprüfen?
- 13. was ist der beste Weg, um Sitemap zu generieren
- 14. Der beste Weg, um "networkaddress.cache.ttl"
- 15. Was ist der beste Weg, um Datensätze in Akkas Actor with Slick einzufügen?
- 16. Der beste Weg, um eine Anzeigetafel zu erstellen
- 17. Der beste Weg, um die Gleichheit zweier Datensätze in Python zu bestimmen?
- 18. Der beste Weg, um zwei große Datensätze in Pandas zu verbinden
- 19. Was ist der beste Weg, um mehrere Datensätze mit unterschiedlichen Werten in Mungo zu aktualisieren?
- 20. Der beste Weg, um "Pfeil" in div
- 21. Der beste Weg, um eine Sammlung in einem CompositeView zu sortieren
- 22. Was ist der beste Weg, um eine Datentabelle in ADO.NET zu sortieren
- 23. Der beste Weg, um Iterator in Javascript
- 24. Logischer Weg, um Ihre Schnittstellen zu sortieren
- 25. PHP: Der beste Weg, um Text in Klammern zu extrahieren?
- 26. Der beste Weg, um Aufgaben in Windows zu automatisieren
- 27. Der beste Weg, um die Zeichenfolge in PHP zu komprimieren
- 28. Der beste Weg, um eine Formularbeschriftung in Rails zu beschreiben?
- 29. Der beste Weg, um generische ForeignKey in Django zu vermeiden
- 30. Der beste Weg, um zwei Spalten in Rails zu vergleichen
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
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. –
Danke. Das hat geholfen. Die Verringerung der Puffergröße hilft auch. – DUnkn0wn1