2017-07-26 5 views
0

Meine Eingabetabelle in MySQL hat 20 Millionen Datensätze und die Zieltabelle in Oracle ist leer. Ich muss die gesamte Tabelle von MySQL in Oracle laden. Ich verwende einfach einen Tabelleneingabe- und Tabellenausgabe-Schritt.Pentaho-Tabelle Eingabe in Tabellenausgabe in Batches

PentahoProcessing

Meine Absicht ist nicht die Quelltabelle für eine lange Zeit zu sperren beim Lesen. Gibt es ein Problem mit der Auslastung (Anzahl der Datensätze), die ich erreichen möchte? Ich konnte Use batch update for inserts Option in der Tabellenausgabe sehen. Ich konnte in der Tabelleneingabe nichts Ähnliches sehen. Gibt es eine Möglichkeit, Batch-Verarbeitung in Pentaho durchzuführen?

Antwort

3

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.

Verwandte Themen