Schreiben Sie mit RJDBC nach SAP HANA, wobei Sie dbWriteable sehr langsam verwenden, da es sich um Record-by-Record-Einfügungen handelt

9

Ich versuche, einen großen Datensatz (10 Spalten, 100 Mio. Datensätze) von R nach SAP HANA zu schreiben, indem ich dbWriteable von RJDBC auf folgende Weise benutze:

%Vor%

Das funktioniert, ist aber extrem langsam (75k Datensätze pro Stunde). Ich habe auch RODBC ( sqlsave ) getestet und das zeigt das gleiche Problem.

Wenn man sich den Code hinter dbWriteTable anschaut, scheint es, dass das Schreiben Datensatz für Datensatz ist (d. h. dasselbe wie Einfügen) und in der Tat eine Zeile für Zeile einfügen verwendet dbSendUpdate zeigt die gleiche Leistung. Ich habe überprüft, dass das Problem nicht in der Verbindungsgeschwindigkeit selbst liegt.

ROracle hat eine bulk_write -Option, die dieses Problem zu lösen scheint, aber da ich versuche, auf HANA zu schreiben, brauche ich RJDBC oder RODBC.

Kann mir jemand sagen, wie ich den Schreibvorgang auf HANA beschleunigen kann, indem ich einen Massen-Schreibvorgang oder eine andere Methode ausführe?

    
Michiel 17.08.2015, 14:50
quelle

1 Antwort

0

Wenn Ihr Hauptziel eine Beschleunigung ist, ohne zu viel zu ändern, können Sie zum sjdbc -Paket wechseln, das in dieser Hinsicht viel performanter ist als RJDBC (was leider nicht viel erreicht hat) Aufmerksamkeit in den letzten Jahren).

Während ich dies schreibe und auf CRAN zurückblicke, sieht es so aus, als ob Simon gerade erst zurückgefunden und vor einer Woche eine neue Veröffentlichung veröffentlicht hat. Dies beinhaltet in der Tat eine Verbesserung in dbSendUpdate :

Ссылка

    
RolandASc 01.02.2018 13:34
quelle

Tags und Links