[postgresql-it] R: Re: Migliore pratica per gestione comando Copy

  • From: "acheriom@xxxxxxxxx" <acheriom@xxxxxxxxx>
  • To: <postgresql-it@xxxxxxxxxxxxx>
  • Date: Mon, 17 Dec 2012 11:39:24 +0100 (CET)

Ciao Daniele,

Questa era la prima opzione che avevo pensato pero' l'avevo scartata perche' 
pensavo che zippando i files e mandandoli sul server di destinazione diminuissi 
i tempi totali di caricamento.

Se tu mi dici che questa e' la migliore delle soluzioni allora questo 
renderebbe la vita molto piu' facile a me. Per di piu' il file csv e' gia' in 
un formato che puo' essere accettato direttamente da PostgreSQL.


Alberto



----Messaggio originale----
Da: piro@xxxxxxxxxxx
Data: 17/12/2012 11.10
A: <postgresql-it@xxxxxxxxxxxxx>
Ogg: Re: [postgresql-it] Migliore pratica per gestione comando Copy

On 2012-12-16 18:17, acheriom@xxxxxxxxx wrote:
Ciao a tutto il NG,



Vorrei un consiglio circa la migliore pratica da adottare per
risolvere un mio
problema.

Ho un'applicazione Windows che attinge i dati da un DB 
PostgreSQLremoto ; i
dati in questo DB provengono originariamente da files csv che poi
devono essere
riversati nel DB tramite comando COPY.

Per ridurre al massimo i tempi di caricamento dati la mia idea era di
mettere
un piccolo software sul server Windows di provenienza che:
1) trasferisca i files csv, compattati, dal server di provenienza a 
quello
dove risiede il DB PostgreSQL via FTP
2) scompatti i files
3) riversi i dati dei files scompattati nel DB tramite il comando 
COPY.
4) cancelli i files csv

Volevo sapere se questo sistema e' valido, tenendo presente che 
vorrei
minimizzare al massimo problemi che si possono verificare (mi vengono
in mente
errori durante il trasferimento del file ad esempio). Se si, vorrei 
anche
sapere quali sono le techniche per per scompattare i file compressi e
come fare
a lanciare il comando COPY dalla postazione remota.


Grazie 1000


Ciao,

No, quello che proponi non è assolutamente un modo pratico o robusto di 
caricare i dati sul server. Viola l'interfaccia principale che rende 
client e server indipendenti, ha problemi di permessi, più parti mobili 
del necessario e la capacità di scripting di windows è troglodita.

Collegati dal client che ha il file e usa copy from stdin invece di 
copy from nomefile, passando i dati da client a server direttamente dal 
client senza copiare alcun file. Se il file è già in un formato 
leggibile da postgres ti basta qualcosa come "psql -c 'copy from stdin 
into table' < nomefile" senza nessun programma aggiuntivo 
(...grossomodo: sono sul cell, non posso controllare la sintassi)

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Postgresql-it mailing list
Postgresql-it@xxxxxxxxxxxxx
http://lists.psql.it/mailman/listinfo/postgresql-it




Other related posts: