none
Importar 50 archivos CSV RRS feed

  • Pregunta

  • Hola, buen día.

    Tengo 50 archivos CSV, cada uno con 500,000 registros aproximadamente.

    ¿Cómo importarlos a Sql con código?

    Saludos.


    Irving Glez

    lunes, 15 de octubre de 2018 15:35

Respuestas

  • Todos los archivos contienen el mismo formato y el mismo número de columnas. Pero no sé cómo construir un paquete de SSIS.

    Irving Glez

    lunes, 15 de octubre de 2018 15:48
  • El paquete se construye desde el diseñador en las DataTools creando un nuevo proyecto de SSIS y luego arrastrando "rectangulitos" desde la barra de herramientas a la superficie de diseño, cambiándoles las Propiedades y conectándolos con "flechitas". No es algo que se pueda explicar en pocas líneas en un mensaje del foro. Pero si encuentras un buen tutorial y quieres molestarte en seguirlo, probablemente merezca la pena. Dependiendo de lo buen programador que seas, es posible que te cueste menos la suma del tiempo dedicado a aprender los fundamentos de SSIS más generar el paquete que lo que te costaría escribir un programa que haga lo mismo por código.

    Editado: Otra idea: Puedes usar el asistente para exportar e importar desde SSMS. En el último paso del asistente te da la opción de salvar la importación como paquete dtsx. Si lo salvas, luego puedes abrirlo desde el diseñador de SSIS y usarlo como punto de partida para construir el paquete que importa los 50 ficheros. O, si no tienes ganas de aprender a construir un bucle, usa copiar y pegar para duplicarlo 50 veces y cámbiale a cada copia el nombre del fichero.

    lunes, 15 de octubre de 2018 18:56

Todas las respuestas

  • ¿Cómo importarlos a Sql con código?

    ¿Qué clase de código? Si lo quieres hacer todo usando exclusivamente herramientas de SQL Server (lo digo porque ese es el foro en el que pusiste la pregunta), entonces puedes construir un paquete de SSIS. En el Control Flow, implementa un bucle que use como origen de datos los ficheros de la carpeta, y dentro llama a un DataFlow que tome como origen el fichero CSV devuelto por el bucle y como destino la tabla donde desees introducir los datos. Si tienes bastante dominado el SSIS y todos los CSV tienen el mismo formato y van a parar a la misma tabla, se puede hacer en pocos minutos.
    lunes, 15 de octubre de 2018 15:42
  • Todos los archivos contienen el mismo formato y el mismo número de columnas. Pero no sé cómo construir un paquete de SSIS.

    Irving Glez

    lunes, 15 de octubre de 2018 15:48
  • El paquete se construye desde el diseñador en las DataTools creando un nuevo proyecto de SSIS y luego arrastrando "rectangulitos" desde la barra de herramientas a la superficie de diseño, cambiándoles las Propiedades y conectándolos con "flechitas". No es algo que se pueda explicar en pocas líneas en un mensaje del foro. Pero si encuentras un buen tutorial y quieres molestarte en seguirlo, probablemente merezca la pena. Dependiendo de lo buen programador que seas, es posible que te cueste menos la suma del tiempo dedicado a aprender los fundamentos de SSIS más generar el paquete que lo que te costaría escribir un programa que haga lo mismo por código.

    Editado: Otra idea: Puedes usar el asistente para exportar e importar desde SSMS. En el último paso del asistente te da la opción de salvar la importación como paquete dtsx. Si lo salvas, luego puedes abrirlo desde el diseñador de SSIS y usarlo como punto de partida para construir el paquete que importa los 50 ficheros. O, si no tienes ganas de aprender a construir un bucle, usa copiar y pegar para duplicarlo 50 veces y cámbiale a cada copia el nombre del fichero.

    lunes, 15 de octubre de 2018 18:56
  • Saludos.

    Las opciones que te da Alberto son correctas.

    https://www.linkedin.com/pulse/ssis-looping-through-csv-files-directory-loading-them-apollis/

    Aqui tienes un ejemplo de como lograr lo que dice Alberto.


    Blog: www.sqlservertoolbox.blogspot.com.mx

    miércoles, 17 de octubre de 2018 19:58