Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

load data local infile... errores

Estas en el tema de load data local infile... errores en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/08/2010, 11:30
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 12 años
Puntos: 95
load data local infile... errores

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 original
  1. 71420::5335::2.5::1205382999
  2. 71420::5349::4::1170717409
  3. 71420::5374::0.5::1191693940
  4. 71420::5377::3::1170717861
  5. 71420::5378::4.5::1122962739
  6. 71420::5400::3.5::1184708469
  7. 71420::5418::4.5::1122961830
  8. 71420::5427::4::1188275462
  9. 71420::5444::3.5::1179869232
  10. 71420::5445::4::1122963148
  11. 71420::5449::3::1184708865
  12. 71420::5452::3::1208486911
  13. 71420::5459::3.5::1179867329
  14. 71420::5463::3::1184709456
  15. 71420::5464::3.5::1184708953
  16. 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 original
  1. CREATE TABLE Ratings (
  2. UserID INT(5) UNSIGNED PRIMARY KEY,
  3. MovieID INT(5) UNSIGNED,
  4. Rating FLOAT(5,2),
  5. 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
  1. 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?

Etiquetas: data, infile, load, local
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:50.