Chcę załadować około 2 miliony wierszy z pliku w formacie CSV do bazy danych i uruchomić trochę instrukcji SQL do analizy, a następnie usunąć dane. Rozmiar pliku to 2 GB. Dane to komunikat dziennika serwera WWW. Zrobiłem trochę badań i okazało się, że baza danych H2 w pamięci wydaje się szybsza, ponieważ zachowuje dane w pamięci. Kiedy próbuję załadować dane otrzymałem komunikat o błędzie OutOfMemory z powodu 32-bitowego java. Planuję wypróbować 64-bitową wersję Java.Baza danych H2 Szybsze ładowanie danych CSV
Szukam wszystkich opcji optymalizacji, aby szybko załadować i uruchomić 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');
Running tak w 64 bitowym Java:
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
Jeśli jakakolwiek inna baza danych dostępna do wykorzystania w systemie AIX proszę dać mi znać.
dzięki