ich Datensätze in Postgres DB einzufügen versuchen, und seine etwa 3 Stunden dauern, während es 40 Sekunden mit Python psycopg2 und cursor.copy_from MethodeDatei einfügen Datensätze in Postgres DB clojure jdbc mit nehmen lange Zeit im Vergleich zu Python psycopg2
nimmtWas ist falsch mit meinem Code, mit clojure.java.jdbc/db-do-prepared dauert auch etwa 3 Stunden. Bitte helfen!
Dateigröße ist 175M und es hat 409.854 Datensätze
(defn-
str<->int [str]
(let [n (read-string str)]
(if (integer? n) n)))
(with-open [file (reader "/path/to/foo.txt")]
(try
(doseq [v (clojure-csv.core/parse-csv file)]
(clojure.java.jdbc/insert! db :records
nil
[(v 0) (v 1) (v 2) (str<->int (v 3))]))
(println "Records inserted successfully")
(Exception e
(println (.getNextException e) e))))
Ich benutze Clojure Version 1.8.0, können Sie ein Beispiel, wie es in clojure getan werden kann –
Ich habe ein Codebeispiel in Clojure hinzugefügt - testen Sie es, wie ich es nicht ausgeführt habe. –
Nun, ich habe den PSQL Copy-Befehl, den Sie vorgeschlagen haben, verwendet, nicht einmal jedes Feld zu werfen, das ist in der Tat einfacher und schneller. Vielen Dank –