Menggunakan COPY perintah dengan Aurora SQL Postgre 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 COPY perintah dengan Aurora SQL Postgre Limitless Database

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

Menggunakan COPY perintah untuk memuat data ke Aurora SQL Postgre Limitless Database

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

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

  • SSHAkses 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 Postgre SQL memiliki opsi untuk bekerja dengan file lokal (FROM/TO) dan mentransmisikan data menggunakan koneksi antara klien dan server (). STDIN/STDOUT Untuk informasi lebih lanjut, lihat COPYdi dokumentasi PostgreSQL.

\copyPerintah dalam SQL psql utilitas Postgre 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 di beberapa pecahan di Aurora SQL Postgre 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 CSV format 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 COPY perintah 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;