(Aunque alguna sugerencia sobre Oracle, tambien es bien recibida).
El punto es que tengo, un archivo .dat , que contiene 10 millones de registros,
la informacion en mi archivo .dat tiene el siguiente formato
Código movies.dat:
Que corresponde a los siguientes campos:Ver original
71420::5335::2.5::1205382999 71420::5349::4::1170717409 71420::5374::0.5::1191693940 71420::5377::3::1170717861 71420::5378::4.5::1122962739 71420::5400::3.5::1184708469 71420::5418::4.5::1122961830 71420::5427::4::1188275462 71420::5444::3.5::1179869232 71420::5445::4::1122963148 71420::5449::3::1184708865 71420::5452::3::1208486911 71420::5459::3.5::1179867329 71420::5463::3::1184709456 71420::5464::3.5::1184708953 71420::5476::0.5::1195964324
UserID::MovieID::Rating::Timestamp
La estructura de mi tabla Rating es la siguiente:
Código SQL:
Ver original
CREATE TABLE Ratings ( UserID INT(5) UNSIGNED PRIMARY KEY, MovieID INT(5) UNSIGNED, Rating FLOAT(5,2), TIMESTAMP BIGINT(10) UNSIGNED);
Utilizo un BIGINT, aunque creo que un INT funcionaria, pero como son 10 millones de registros, no se cual sea el timestamp mas grande que tenga.
el problema es que cuando MySQL llega a la linea
Código SQL:
Ver original
LOAD DATA LOCAL INFILE 'ratings.dat' INTO TABLE Ratings FIELDS TERMINATED BY '::' (UserID,MovieID,Rating,TIMESTAMP);
Me aparece:
Query OK, 69878 rows affected (20.15 sec)
Records: 10000054 Deleted: 0 Skipped: 9930176 Warnings: 0
Eso quiere decir, que de mis 10 millones de registros, solamente 69,878 se insertaron... he consultado ya la documentacion y este error se debe a que la estructura de mis datos no es uniforme... sin embargo he checado rapidamente la estructura de la misma y es congruente, todos los datos tienen esa forma
UserID::MovieID::Rating::Timestamp
Y es aqui donde me surge mi duda...
Existe alguna otra manera de introducir ese archivo en mi base de datos?