Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo del comando COPY con Aurora PostgreSQL Limitless Database
Puoi utilizzare la funzionalità\copypsql per importare ed esportare dati in Aurora PostgreSQL Limitless Database.
Utilizzo del comando COPY per caricare dati in Aurora PostgreSQL Limitless Database
Aurora PostgreSQL Limitless Database è compatibile con la funzionalità \copypsql per l’importazione dei dati.
In Limitless Database come in Aurora PostgreSQL, quanto segue non è supportato:
-
Accesso SSH diretto alle istanze database: non puoi copiare un file di dati (ad esempio in formato .csv) sull’host dell’istanza database ed eseguire
COPYdal file. -
Utilizzo di file locali sull’istanza database: utilizza
COPY ... FROM STDINeCOPY ... TO STDOUT.
Il comando COPY in PostgreSQL offre opzioni per lavorare con file locali (FROM/TO) e trasmettere dati utilizzando una connessione tra il client e il server (STDIN/STDOUT). Per ulteriori informazioni, consulta COPY
Il comando \copy nell’utilità psql PostgreSQL funziona con i file locali sul computer in cui viene eseguito il client psql. Invoca il rispettivo comando COPY ... FROM STDIN o COPY ... FROM STDOUT sul server remoto (ad esempio, Limitless Database) a cui effettui la connessione. Legge i dati dal file locale verso STDIN o li scrive da STDOUT.
Divisione dei dati in più file
I dati vengono archiviati su più shard in Aurora PostgreSQL Limitless Database. Per velocizzare il caricamento dei dati utilizzando \copy, puoi suddividere i dati in più file. Quindi importa in modo indipendente ogni file indipendentemente eseguendo comandi \copy separati in parallelo.
Ad esempio, hai un file di dati di input in formato CSV con 3 milioni di righe da importare. Puoi dividere il file in blocchi contenenti ciascuno 200.000 righe (15 blocchi):
split -l200000 data.csv data_ --additional-suffix=.csv -d
Questo genera i file da data_00.csv fino a data_14.csv. Quindi, puoi importare i dati utilizzando 15 comandi \copy paralleli, ad esempio:
psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table from '/tmp/data_00.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_01.csv';" postgres_limitless & ... psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_13.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_14.csv';" postgres_limitless
Utilizzando questa tecnica, la stessa quantità di dati viene importata circa 10 volte più velocemente rispetto all’utilizzo di un singolo comando \copy.
Utilizzo del comando COPY per copiare dati di Limitless Database in un file
Puoi utilizzare il comando\copy
postgres_limitless=> \copy test_table TO '/tmp/test_table.csv' DELIMITER ',' CSV HEADER;