Sto cercando di inserire i record in Postgres DB, e la sua assunzione di circa 3 ore, mentre ci vogliono 40 secondi utilizzando python psycopg2 e il metodo cursor.copy_fromrecord dei file Inserire le Postgres DB utilizzando clojure JDBC sta prendendo molto tempo rispetto ai psycopg2 pitone
Cosa c'è di sbagliato nel mio codice, utilizzando anche clojure.java.jdbc/db-do-preparato richiede anche circa 3 ore. Per favore aiuto!
dimensione del file è 175M e ha 409,854 record
(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))))
Sto usando Clojure versione 1.8.0, puoi condividere un esempio di come può essere fatto in clojure –
Ho aggiunto un esempio di codice in Clojure - testarlo come non l'ho eseguito. –
Bene, ho usato il comando Copia PSQL che hai suggerito, non avevo nemmeno bisogno di trasmettere ogni campo, questo è davvero più facile e veloce. Grazie –