El mejor enfoque para procesar automáticamente .csv --> MySQL

El mejor enfoque para procesar automáticamente .csv --> MySQL

Si es necesario, colóquelo en el lugar adecuado. No estoy seguro de dónde puedo obtener la mejor respuesta.

Necesito crear una aplicación de informes y, si es posible, me gustaría hacerlo con Ubuntu. Los datos de origen provienen de una aplicación basada en un dispositivo que periódicamente puede enviar por FTP un archivo de registro delimitado a una ubicación designada. Me gustaría desarrollar un mecanismo para usar esos datos para actualizar una base de datos MySQL (que se creará) que se usará para crear informes programados que eventualmente se enviarán por correo electrónico a varios grupos de distribución (ya sea como archivos PDF con formato Excel). Tenemos la inteligencia interna para crear las diversas consultas MySQL (y diseñar la base de datos), pero no tenemos los conocimientos de Linux/Ubuntu para determinar el mejor enfoque. Estamos haciendo algo similar para otra aplicación en Windows usando Crystal Reports, pero dada la necesidad de distribuir esta aplicación, nos encantaría no tener que lidiar con costos de licencia de Windows, etc.

Necesito asesoramiento sobre las herramientas/enfoque adecuados, pero también recomendaciones sobre dónde podría encontrar recursos calificados que puedan hacer esto de manera efectiva sin un costo significativo.

Respuesta1

Puede analizar comandos desde la línea de comandos con la siguiente sintaxis:

mysql -u {user} -p{password} {database} <{text.file}

Esto analizará todas las líneas desde {text.file} hasta {database}. El archivo de texto debe contener instrucciones válidas de MySQL y la contraseña se muestra en texto sin formato, pspor lo que es posible que desees incluirla my.cnf(la seguridad es lo primero).

2 métodos...

  • Puedes usar el comando MySQL.Cargar datos(ver enlace para más opciones):

    CARGAR DATOS [LOW_PRIORITY | CONCURRENTE] [LOCAL] INFILE {texto2.archivo} EN LA TABLA {tabla}

    dentro del archivo de texto para insertar un archivo de texto en una tabla. Probablemente esto sobrescriba las líneas existentes, por lo que deberá crear archivos nuevos cada vez. CARGAR DATOS es muy, muy rápido. Manera más corta (una línea del comentario de Caesium):

    mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
    
  • Puedes poner muchos INSERT INTOen el archivo de texto. Esto es más lento que LOAD DATA pero podría ser más fácil de implementar.

información relacionada