View a markdown version of this page

Menggunakan perintah COPY dengan Aurora PostgreSQL Limitless Database - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan perintah COPY dengan Aurora PostgreSQL Limitless Database

Anda dapat menggunakan fungsionalitas\ copy di psql utilitas untuk mengimpor data ke dan mengekspor data dari Aurora PostgreSQL Limitless Database

Menggunakan perintah COPY untuk memuat data ke Aurora PostgreSQL Limitless Database

Aurora PostgreSQL Limitless Database kompatibel dengan fungsi\ copy di utilitas untuk mengimpor data. psql

Di Limitless Database seperti di Aurora PostgreSQL, berikut ini tidak didukung:

  • Akses SSH langsung ke instans DB - Anda tidak dapat menyalin file data (seperti dalam format.csv) ke host instans DB dan dijalankan COPY dari file.

  • Menggunakan file lokal pada instans DB — Gunakan COPY ... FROM STDIN danCOPY ... TO STDOUT.

COPYPerintah di PostgreSQL memiliki opsi untuk bekerja dengan file lokal FROM/TO () dan mentransmisikan data menggunakan koneksi antara klien dan server (). STDIN/STDOUT Untuk informasi selengkapnya, lihat COPY dalam dokumentasi PostgreSQL.

\copyPerintah dalam utilitas psql PostgreSQL bekerja dengan file lokal di komputer tempat Anda menjalankan klien. psql Ini memanggil masing-masing COPY ... FROM STDIN atau COPY ... FROM STDOUT perintah pada server remote (misalnya, Limitless Database) yang Anda sambungkan. Ia membaca data dari file lokal ke STDIN atau menulis dari file tersebutSTDOUT.

Memisahkan data menjadi beberapa file

Data disimpan pada beberapa pecahan di Aurora PostgreSQL Limitless Database. Untuk mempercepat pemuatan data menggunakan\copy, Anda dapat membagi data Anda menjadi beberapa file. Kemudian impor secara independen untuk setiap file data dengan menjalankan \copy perintah terpisah secara paralel.

Misalnya, Anda memiliki file data input dalam format CSV dengan 3 juta baris untuk diimpor. Anda dapat membagi file menjadi beberapa bagian yang masing-masing memegang 200.000 baris (15 potongan):

split -l200000 data.csv data_ --additional-suffix=.csv -d

Ini menghasilkan file data_00.csv melaluidata_14.csv. Anda kemudian dapat mengimpor data menggunakan 15 \copy perintah paralel, misalnya:

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

Dengan menggunakan teknik ini, jumlah data yang sama diimpor sekitar 10 kali lebih cepat daripada menggunakan satu \copy perintah.

Menggunakan perintah COPY untuk menyalin data Limitless Database ke file

Anda dapat menggunakan perintah\ copy untuk menyalin data dari tabel tanpa batas ke file, seperti yang ditunjukkan pada contoh berikut:

postgres_limitless=> \copy test_table TO '/tmp/test_table.csv' DELIMITER ',' CSV HEADER;