hola companeros, he estado trabajando en un algoritmo desde hace algunos dias y necesito almacenar 10 millones de registro en una base de datos. Estuve investigando para estas cantidades, que me conviene mas si Oracle o MySQL, y me di cuenta que MySQL puede manejar esa cantidad de registros sin sudar ni una gota, asi que como estoy muy acostumbrado a utilizar MySQL, decidi quedarme con MySQL.
(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:
Ver original71420::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
Que corresponde a los siguientes campos:
UserID::MovieID::Rating::Timestamp
La estructura de mi tabla Rating es la siguiente:
Código SQL:
Ver originalCREATE 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 originalLOAD 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?