Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cómo importar datos de un .tsv muuy grande a mysql

Hola a todos
Pues necesito importar los datos de un archivo .tsv de 974MB para mysql
Probé abrirlo con excel para guardarlo como csv, pero supera las filas admitidas por Excel y no lo carga completo
Traté de importarlo directamente a mysql pero me da error cuando va por 193'200 registros, y se queda "dormido" sin avanzar mas

[ERR] 2013 - Lost connection to MySQL server during query

Como podría importar todos los datos a mysql?
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 20-06-2022
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Tal vez no es la solución ideal, pero, ¿has pensado en partir el archivo en varios más pequeños? Dices que MySQL se "queja" cuando llevas unos 150.000 registros importados, pues bien, tal vez sea esa una forma de conseguirlo: partir el archivo grande en archivos que contengan como mucho ese número de registros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 21-06-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola a todos,

Tal vez no es la solución ideal, pero, ¿has pensado en partir el archivo en varios más pequeños? Dices que MySQL se "queja" cuando llevas unos 150.000 registros importados, pues bien, tal vez sea esa una forma de conseguirlo: partir el archivo grande en archivos que contengan como mucho ese número de registros.

Pensé en esa posibilidad, pero no se con "quien" partir el archivo, no se que aplicación me serviría para abrirlo y dividirlo en partes
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #4  
Antiguo 21-06-2022
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola,

Alguna vez que he necesitado abrir/tratar ficheros de backups de MySQL de tamaño descomunal (incluso de varios TB), lo he conseguido con el editor SublimeText que si no ha cambiado su licencia es libre.

Este es el enlace de descarga https://clockworkpcblog.tech/#/store/text

Con este editor podrás ir dividiendo el fichero al menos de forma manual.


Por otra parte con respecto a la pregunta original,

* ¿el fichero que estas intentando subir es de tipo CSV? ¿Y como estas importando el fichero?
Si es este tu caso, puede importar los datos con LOAD DATA

Código SQL [-]
LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

Este comando te permite configurar el numero de líneas a ignorar desde el principio del fichero. Lo que no se es en caso de error si los datos que ya se han procesado se quedan almacenados, o es de tipo transición donde es todo o nada, prueba si te puede servir. Y puedes ir importandolo en sucesivas veces, omitiendo cada vez el numero de líneas/registros que ya tienes insertados.

* Y si es un fichero de tipo script de SQL:
importando a través de su aplicación no deberías de tener problemas, o al menos a mi no me ha dado nunca problemas, por muy grande que haya sido el tamaño del fichero o numero de registros que contiene, (salvo que la estructura del script contenga errores de SQL)

Código SQL [-]
mysql -u [user] -p [database_name] < [filename].sql
Responder Con Cita
  #5  
Antiguo 22-06-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
* ¿el fichero que estas intentando subir es de tipo CSV? ¿Y como estas importando el fichero?

El fichero es un TSV, un archivo de texto parecido a CSV, pero separado por tabulaciones.
Y lo trato de importar desde el navicat con su asistente de importacion


Al principio me daba el error "[ERR] 2013 - Lost connection to MySQL server during query",

le cambie la configuracion a MySQL, aumentando el max_allowed_packet, y dejo de dar el error, pero ahora se estanca en el 8% con 331'400 registros, una vez en 1 h y 37 min. y otra vez en 42 min no se ha movido de ahi.


Probare con LOAD DATA, a ver si me resulta, y si no hare la prueba con SublimeTextpara hacer lo que me recomendo dec
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #6  
Antiguo 22-06-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Resuelto

Pues fue muy facil y rapido con LOAD DATA, en 250 seg cargó los 4'519'612 registros.

Al parecer esos eran todos, pues terminó sin dar error.


No sabia que ese comando existia


Muchas gracias por la ayuda
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Importar Base datos mysql jcrios_9 C++ Builder 9 21-09-2012 16:50:18
importar datos mysql-firebird Galahad MySQL 2 17-12-2011 23:41:44
Como puedo importar un csv a MYSQL Alvarus SQL 9 22-06-2011 16:07:08
CVS importar y exportar datos de Mysql 4.x y 5.x JXJ MySQL 8 19-11-2010 00:45:20
Importar Datos Desde Paradox A Mysql JUANRS Conexión con bases de datos 5 18-01-2008 01:48:35


La franja horaria es GMT +2. Ahora son las 14:31:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi