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