RE: COPY FROM

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <guillermovil(at)gmail(dot)com>, <hmiranda(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: COPY FROM
Date: 2010-06-02 14:46:17
Message-ID: BLU137-W27B8B6ED2ABB2DE371B66BE3D00@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


UHmmmm, lo malo de esa solucion es lo lenta que se puede volver, claro si hablamos de muchos records, millones.

Por que no probaste como te dije usando un trigger en la tabla y si podia pasar,de acuerdo al campo, return NEW sino return NULL esta forma la uso bastante y la verdad me quito un trabajo invetando programitas por fuera, pero al final es tu decision. Lo malo es que tendras que hacer un insert para lo que haces de la forma que digo solo usas COPY normalito pero si ya te funciono no hay problema/

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*

Date: Tue, 1 Jun 2010 21:07:35 -0300
Subject: Re: [pgsql-es-ayuda] COPY FROM
From: guillermovil(at)gmail(dot)com
To: hmiranda(at)gmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)org

Muchas gracias por tu respuesta.
Les cuento que solucioné el problema mas o menos como me lo recomienda Horacio.
Proceso de antemano los TXT utilizando un simple programita hecho con VB6 (que antiguedad no?) con este programa solo tomo las filas que me interesan y las grabo en otro TXT. Luego a este último lo cambio de ANSI a UTF8 y lo paso a postgres usando copy from.
El programita tarda unos 40 segundos en procesar unas 650mil filas y armar un TXT mas chico. Luego el copy from tarda en pasar unas 230mil filas unos 50 segundos. Creo que para algo que tengo que hacer una sola vez al mes, es una solución aceptable.... no?
Muchas gracias por su colaboración

El 1 de junio de 2010 20:06, Horacio Miranda <hmiranda(at)gmail(dot)com> escribió:

Hola, disculpa por no ver este mensaje antes, creo que lo mejor es
filtrar antes de procesar, si usas windows, y no quieres usar
herramientas linux sobre un linux (por que usas windows) te sugiero
usar una herramienta linux en tu windows, PERL
http://www.tanguay.info/web2008/tutorial.php?idCode=installPerl

Dale una vuelta, en lo personal me gusta filtrar antes de procesar,
perl como todo lenjuage de script es mas lento que un programa en C,
pero la pobrabilidada de programar algo en C y que sea tan rapido como
un script en perl creo que es baja (pero como todo puedo estar
equivocado). Dale una vuelta y me cuentas. Otra alternativa es usar
excel para filtrar, pero por la cantidad de filas y como es un proceso
repetitivo, creo que la mejor opcion es perl o script de microsoft,
windows vista, 7 y windows 2008, tienen un motor de script decente
(comparado con lo anterior). No soy experto en script de Windows, pero
me imagino que se podra hacer algo similar, pero perl para windows se
que funcionara.

2010/5/29 Guillermo Villanueva <guillermovil(at)gmail(dot)com>:

> Hola gente, cómo están?
> Quería saber si hay alguna posibilidad de filtrar (horizontal y
> verticalmente) los datos de un .TXT muuuuy grande al copiarlos con COPY. De
> unas 360mil líneas hay unas 120mil que no quiero copiar (puedo detectarlas
> por un valor de columna), y hay dos columnas que tampoco quiero.
> Voy a tener que hacer el copy completo a una tabla intermedia y después otro
> de tabla a tabla ?
>
>
> ¿Recomiendan el uso de tablas particionadas para manejar tablas que crecen
> al mes unas 200mil tuplas (una vez al mes se agregan en batch)?
> Desde ya muchas gracias.
> Guillermo

--
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases


_________________________________________________________________

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ernesto Quiñones 2010-06-02 15:04:26 Re: postgresql en aix
Previous Message Alvaro Herrera 2010-06-02 04:00:50 Re: Conexion postgres se desconecta