Re: Crear tabla a partir de un archivo de texto

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Crear tabla a partir de un archivo de texto
Date: 2009-05-28 11:05:18
Message-ID: 34194.38299.qm@web52106.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

________________________________
De: jose ricardo <joripeca(at)yahoo(dot)com(dot)ar>
Para: psql <pgsql-es-ayuda(at)postgresql(dot)org>
Enviado: miércoles 27 de mayo de 2009, 20:26:07
Asunto: [pgsql-es-ayuda] Crear tabla a partir de un archivo de texto

Un caluroso saludo a todos los miembros de esta comunidad.

Resulta que a partir de este mes voy a recibir un cd con varios archivos unos en una db acces y otras en texto plano. estos archivos debo vaciarlos en una o unas tablas de una db para que los usuarios de esta puedan consultarlo (la db en acces pienso exportarla a texto plano). el problema al que me enfrento es el numero de registro pues un solo archivo tiene alrrededor de 3.000.000 de esto el y los otros 3 unidos me dan unos 2.000.000 mas. tengo una tabla en la db la cual utilizo con este fin pero claro antes el archivo mas grande contenia alrrededor de 7000 registro un numero muy pequeño y facil de manipular. el otro problema es que los registro en los diferentes archivos no tienen el mismo tamaño, y sus campos tampoco coinciden en cuanto a dato. antes con los archivos pequewños yo hacia una manipulacion de ellos reacomodano campos suprimiendo los que me sobraban etc hasta lograr le estructura requerida para la tabla. pero con mas de 4.000.000 es
muy costoso hacerlo.
-Lo que se me ocurre es generar una tabla por cada archivo recibido, y luego para la consulta hacer una union de ellas, claro que esta idea no me cala 100% pues el coste de esa union seria muy alto.

-Otra idea seria generar una tabla por cada archivo y luego mediante un scrip obtener los datos requerido de cada tabla e insertarlos en una unica tabla formado por los registros de cada una de ellas me inclino mas por esta.

¿Alguien me podria dar luces sobre cual de estos metodos es mas eficiente? o si existe alguna forma de hacerlo lo mismo pero de una forma mas elegante y rapida.

¿Alguien me puede decir si existe en postgre algun comando que a partir de una archivo de texto plano (separado por algun caracter en especial ) permita generar una tabla?

agradezco cualqueir ayuda

________________________________

Yo tuve exactamente el mismo problema, pero con muchos mas registros. Lo que hice fue partir el texto plano en archivos mas pequeños, luego desde excel agregue lo necesario para transformar cada linea en llamadas a una funcion
Ej.
colA colB colC colD colE
select * from funcX(' dato1 dato2 =concat(colA;colB;" ',";colC;");") pego los valores de colD

ahora solo grabo en un archivo de texto con extension ".sql" solo la columnE.....(puedes volver a unirlos a todos en uno solo)
---otra posibiliad es usar comandos linux/bash para hacer esto.

programas a funcX para que procese los campos, vallide e inserte donde corresponda
luego desde el pgsql, solo le digo que cargue el o los archivos sql

me sirvio, demora, pero no es tanto laburo. ¿chancho?, puede ser..
Saludos..

____________________________________________________________________________________
¡Viví la mejor experiencia en la web!
Descargá gratis el nuevo Internet Explorer 8
http://downloads.yahoo.com/ieak8/?l=ar

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Ferro 2009-05-28 11:15:15 Re: Problema con OLE DB PROVIDER
Previous Message Rodriguez Fernando 2009-05-28 11:01:27 Re: Consulta 1:Problemas con un simple delete