Mach dir keine Sorgen, 20 Millionen Datensätze ist eine kleine Zahl für PDI, und Sie werden die Tabelle nicht sperren, wenn es für die Eingabe offen ist. Aus diesem Grund ist Bulk load
für Ausgabetabellen nicht Eingabetabellen.
Eine gewöhnliche Beginner-Falle ist jedoch die Truncate table
Option in der Ausgabetabelle. Wenn Sie den Ausgabeschritt zweimal ausführen (nicht oder nur für die parallele Verarbeitung), wird jeder den anderen sperren. Für immer.
Zur Beschleunigung: Sie können das Kontrollkästchen Lazy conversion
bei der Eingabe verwenden, damit die Daten im Byte-Format bleiben, bis sie verwendet werden. Aber ich bin nicht sicher, ob Sie etwas auf einer einfachen Eingabe/Ausgabe-Tabelle gewinnen. Wenn mit Dates oder Blobs beim Schreiben der Ausgabedatei etwas nicht in Ordnung ist, wird die Fehlermeldung ziemlich kryptisch sein.
Sie können auch die Geschwindigkeit der Ausgabe erhöhen, indem Sie die Commit-Größe (am schlechtesten einige Versuche in Oracle) und number of rows in row set
erhöhen, was die Anzahl der gelesenen Zeilen erhöht, die von table input
gelesen werden. Klicken Sie dazu mit der rechten Maustaste auf eine beliebige Stelle und dann auf Properties/Miscelanous
.
Etwas, das ich wirklich rate, ist, die JVM-Speichergröße zu erhöhen. Verwenden Sie einen Editor (Editor oder besser), um die Datei mit dem Namen spoon.bat
zu bearbeiten. In der Zeile 94-96 finden Sie eine Zeile, die etwa "-Xmx256K" enthält. Ändern Sie es in "-Xmx4096M" (wobei 4096 die Hälfte des Arbeitsspeichers Ihrer Maschine ist).
Die Durchführung der "Stapelverarbeitung" hat viele Bedeutungen. Eines davon ist Make the transformation database transactional
. Was Sie tun können mit dem Kontrollkästchen unter dem oben genannten Number of row in rowset
(und buchstabiert als Make the transformation database
in PDI neueste Version). Wenn dieses Kontrollkästchen aktiviert ist, wird bei einem Fehler der Zustand der Datenbanken zurückgesetzt, als ob die Umwandlung nie ausgeführt würde. Aber ich rate nicht, dies in Ihrem Fall zu tun.