Verarbeitung großer Datenmengen
Die Fähigkeit, große Datenmengen in kurzer Zeit zu verarbeiten, hängt davon ab, dass alle Aspekte des Datenflusses und die Umgebung für maximalen Durchsatz und Leistung optimiert sind.
Leistungsoptimierung und -steigerung sind iterative Prozesse, die mit dem Jobdesign und den Unit-Tests beginnen, durch Integrations- und Volumentests fortgesetzt werden und sich über den gesamten Produktionslebenszyklus der Anwendung erstrecken. Hier sind einige Hinweise zur Leistung:
- Schreiben Sie beim Schreiben von Zwischenergebnissen, die nur von parallelen Aufträgen gemeinsam genutzt werden sollen, immer in persistente Datensätze (unter Verwendung von Datensatzphasen). Sie sollten sicherstellen, dass die Daten partitioniert sind und dass die Partitionen und die Sortierreihenfolge in jeder Phase beibehalten werden. Vermeiden Sie Formatkonvertierung oder serielle E/A.
- Data Set Stages sollten verwendet werden, um Wiederanlaufpunkte für den Fall zu schaffen, dass ein Job oder eine Sequenz erneut ausgeführt werden muss. Da Datensätze jedoch plattform- und konfigurationsabhängig sind, sollten sie nicht für die langfristige Sicherung und Wiederherstellung von Quelldaten verwendet werden.
- Je nach den verfügbaren Systemressourcen ist es möglich, die Gesamtverarbeitungszeit zur Laufzeit zu optimieren, indem kleinere Aufträge gleichzeitig ausgeführt werden können. Es muss jedoch für den Fall vorgesorgt werden, dass die Quelldateien später als erwartet eintreffen oder im Falle eines Fehlers erneut verarbeitet werden müssen.
- Parallele Konfigurationsdateien ermöglichen es, den Grad der Parallelität und die von parallelen Aufträgen verwendeten Ressourcen dynamisch zur Laufzeit einzustellen. Es sollten mehrere Konfigurationsdateien verwendet werden, um den Gesamtdurchsatz zu optimieren und die Auftragsmerkmale an die verfügbaren Hardwareressourcen im Entwicklungs-, Test- und Produktionsmodus anzupassen.
Die richtige Konfiguration von Scratch- und Ressourcendisketten sowie das zugrundeliegende Dateisystem und die physische Hardwarearchitektur können die Gesamtleistung eines Auftrags erheblich beeinflussen.
In geclusterten ETL- und Datenbankumgebungen kann die Benennung von Ressourcenpools verwendet werden, um die Verarbeitung auf bestimmte Knoten zu beschränken, gegebenenfalls auch auf Datenbankknoten.