Sto cercando di caricare un file di CSV 95 GB in un database MySQL (MySQL 5.1.36) tramite il seguente comando:Carica file CSV da 95 GB nella tabella MyISAM MySQL tramite Caricamento infile dati: motore CSV un'alternativa?
CREATE TABLE MOD13Q1 (
rid INT UNSIGNED NOT NULL AUTO_INCREMENT,
gid MEDIUMINT(6) UNSIGNED NOT NULL ,
yr SMALLINT(4) UNSIGNED NOT NULL ,
dyyr SMALLINT(4) UNSIGNED NOT NULL ,
ndvi DECIMAL(7,4) NOT NULL comment 'NA value is 9',
reliability TINYINT(4) NOT NULL comment 'NA value is 9',
ndviquality1 TINYINT(1) NOT NULL ,
ndviquality2 TINYINT(1) NOT NULL ,
primary key (rid),
key(gid)
) ENGINE = MyISAM ;
LOAD DATA INFILE 'datafile.csv' INTO TABLE MOD13Q1 FIELDS TERMINATED by ',' LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(gid, yr, dyyr, ndvi, reliability,
ndviquality1, ndviquality2
) ;
Io corro questo script tramite DOS al momento, ma il database non risponde. Funziona con file CSV di dimensioni inferiori (1,5 GB). Funzionerebbe per questa dimensione del file?
Avete qualche suggerimento su come farlo in modo più efficiente/più veloce? Il motore = CSV sarebbe un'alternativa (indicizzazione non attivata! -> quindi le query potrebbero essere super lente?).
Aggiornamento
Grazie per i suggerimenti, ha funzionato!
mysql> LOAD DATA INFILE 'E:\\AAJan\\data\\data.csv' INTO TABL
E MOD13Q1
-> FIELDS TERMINATED by ','
-> LINES TERMINATED BY '\r\n'
-> IGNORE 1 LINES
-> (gid, yr, dyyr, ndvi, reliability,
-> ndviquality1, ndviquality2
-> ) ;
Query OK, -1923241485 rows affected (18 hours 28 min 51.26 sec)
Records: -1923241485 Deleted: 0 Skipped: 0 Warnings: 0
mysql>
Spero che questo sia utile per gli altri evitando di suddividere i dati in blocchi.
@ Mark: tokyo cabinet è chiave/valore DBM quindi niente da fare IMHO – RageZ