Voglio caricare circa 2 milioni di file dal file CSV in formato database e eseguire alcune istruzioni SQL per l'analisi, quindi rimuovere i dati. La dimensione del file è di 2 GB. I dati sono messaggi di log del server web. Ha fatto qualche ricerca e trovato il database in memoria di H2 sembra essere più veloce, dal momento che mantiene i dati in memoria. Quando provo a caricare i dati ho ricevuto il messaggio di errore OutOfMemory a causa di 32 bit java. Pianificazione per provare con java a 64 bit.database H2 Carica dati csv più veloce
Sto cercando tutte le opzioni di ottimizzazione per caricare rapidamente ed eseguire SQL.
test.sql
CREATE TABLE temptable (
f1 varchar(250) NOT NULL DEFAULT '',
f2 varchar(250) NOT NULL DEFAULT '',
f3 reponsetime NOT NULL DEFAULT ''
) as select * from CSVREAD('log.csv');
esecuzione come questo in Java a 64 bit:
java -Xms256m -Xmx4096m -cp h2*.jar org.h2.tools.RunScript -url 'jdbc:h2:mem:test;LOG=0;CACHE_SIZE=65536;LOCK_MODE=0;UNDO_LOG=0' -script test.sql
Se qualsiasi altro database a disposizione da utilizzare in AIX per favore fatemelo sapere.
grazie