Arbeiten an einem kleinen Beispiel, wo Millionen von Datensätzen von Teradata-Datenbank zu Oracle DB kopieren müssen.Kopieren Sie Tabelle mit Millionen von Datensätzen von einer Datenbank in eine andere - Spring Boot + Spring JDBC
Umwelt: Frühling Stiefel + Feder JDBC (jdbcTemplate) + Feder REST + Feder Scheduler + Maven + Oracle + Teradata
mit Spring JDBC batchupdate die Daten in die Zieldatenbank Oracle einzufügen.
Verwendung von Teradata 'Top 1000' in SQL-Abfrage aus der Quelldatenbank.
fecthDataResults = repository.queryForList(
"select top 1000 A, B, C, D, E from " + schemaName + ".V_X");
Abfrage von einer Ansicht "V_X".
Diese Ansicht hat 40 Millionen Datensätze und Spring Boot-Anwendung wird ersticken, wenn es ausgeführt wird.
Auch Einfügen in 2 Tabellen (Primary und Backup) in Ziel Oracle DB.
Was ist der beste Weg, um 40 Millionen Datensätze zu holen und zu laden/kopieren, um sicherzustellen, dass das Kopieren erfolgreich in 2 Tabellen durchgeführt wurde.
Spring Scheduler, um die Stapelkopie zu einem bestimmten Zeitpunkt/Intervall zu planen. Spring Rest, um manuell zu kopieren - beides erreicht.
Irgendwelche Vorschläge würden geschätzt.
Danke.
Ich würde das an native 'imp/exp'-Skripten delegieren ... aber wenn Sie es in Java tun müssen, könnten Spring Batch + Spring JDBC-Operationen (' top X in Y' auswählen) eine Option sein. –
Exportieren von Daten aus Teradata (in CSV oder ein anderes Format) -> Transform -> direkt in Oracle importieren (mit Tools wie SQL * Loader Dienstprogramm) eine Option für Sie? Auf diese Weise umgehen Sie die Feder Anwendung – Srinivas
Dank @Carlos. Verwenden Sie Top X (1000) in Y selbst. Überprüfen Sie jetzt, wie Sie mit 36 Millionen Datensätzen arbeiten können. – Manish