Copia
Tweet
Che cos’è la copia
Postgres viene fornito con diverse grandi utility per spostare i tuoi dati. Quelle ovvie sono pg_dump e pg_restore per i backup e i ripristini dei database. Un’utilità simile di cui si parla molto meno, ma altrettanto preziosa, è l’utilità copy di Postgres. Copy ti permette di copiare dati dentro e fuori le tabelle del tuo database. Supporta diverse modalità tra cui:
- binario
- tab delimitato
- csv delimitato
Che sia per il caricamento di massa dei dati per i test, per fare un ETL leggero, o semplicemente per prendere un estratto di dati da inviare a qualcuno, è una utility che ogni sviluppatore vorrà utilizzare ad un certo punto.
Copy in azione
Estrazione di tutti i dipendenti in un file delimitato da tabulazione:
\copy (SELECT * FROM employees) TO '~/employees.tsv';
Estrazione di tutti i dipendenti in un file delimitato da csv:
\copy (SELECT * FROM employees) TO '~/employees.csv' WITH (FORMAT CSV);
Estrarre tutti i dipendenti in un file binario (notare le virgolette intorno alla parola Binario):
\copy (SELECT * FROM employees) TO '~/employees.dat' WITH (FORMAT "Binary");
E per caricare i dati in una tabella l’equivalente per ognuno dei precedenti:
\copy employees FROM '~/employees.tsv';\copy employees FROM '~/employees.csv' WITH CSV;\copy employees FROM '~/employees.dat' WITH BINARY;