Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
MENYONTEK
Memuat data ke dalam tabel dari file data atau dari tabel Amazon DynamoDB. File dapat ditemukan di bucket Amazon Simple Storage Service (Amazon S3), cluster EMR Amazon, atau host jarak jauh yang diakses menggunakan koneksi Secure Shell (SSH).
catatan
Tabel eksternal Amazon Redshift Spectrum hanya bisa dibaca. Anda tidak dapat MENYALIN ke tabel eksternal.
Perintah COPY menambahkan data input sebagai baris tambahan ke tabel.
Ukuran maksimum satu baris input dari sumber apa pun adalah 4 MB.
Topik
Izin yang diperlukan
Untuk menggunakan perintah COPY, Anda harus memiliki INSERT hak istimewa untuk tabel Amazon Redshift.
COPY sintaks
COPY table-name [ column-list ] FROM data_source authorization [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [, ... ] ]
Anda dapat melakukan operasi COPY dengan sedikitnya tiga parameter: nama tabel, sumber data, dan otorisasi untuk mengakses data.
Amazon Redshift memperluas fungsionalitas perintah COPY untuk memungkinkan Anda memuat data dalam beberapa format data dari berbagai sumber data, mengontrol akses untuk memuat data, mengelola transformasi data, dan mengelola operasi pemuatan.
Bagian berikut menyajikan parameter perintah COPY yang diperlukan, mengelompokkan parameter opsional berdasarkan fungsi. Mereka juga menjelaskan setiap parameter dan menjelaskan bagaimana berbagai opsi bekerja sama. Anda dapat langsung menuju deskripsi parameter dengan menggunakan daftar parameter alfabet.
Parameter yang diperlukan
Perintah COPY membutuhkan tiga elemen:
Perintah COPY paling sederhana menggunakan format berikut.
COPY table-name FROM data-source authorization;
Contoh berikut membuat tabel bernama CATDEMO, dan kemudian memuat tabel dengan data sampel dari file data di Amazon category_pipe.txt
S3 bernama.
create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
Dalam contoh berikut, sumber data untuk perintah COPY adalah file data bernama category_pipe.txt
dalam tickit
folder bucket Amazon S3 bernama. redshift-downloads
Perintah COPY diizinkan untuk mengakses bucket Amazon S3 melalui peran AWS Identity and Access Management (IAM). Jika klaster Anda memiliki peran IAM yang sudah ada dengan izin untuk mengakses Amazon S3 terlampir, Anda dapat mengganti Nama Sumber Daya Amazon (ARN) peran Anda dalam perintah COPY berikut dan menjalankannya.
copy catdemo from 's3://redshift-downloads/tickit/category_pipe.txt' iam_role 'arn:aws:iam::
<aws-account-id>
:role/<role-name>
' region 'us-east-1';
Untuk petunjuk lengkap tentang cara menggunakan perintah COPY untuk memuat data sampel, termasuk petunjuk untuk memuat data dari AWS wilayah lain, lihat Memuat Data Sampel dari Amazon S3 di Panduan Memulai Amazon Redshift.
- nama-meja
-
Nama tabel target untuk perintah COPY. Tabel harus sudah ada dalam basis data. Tabel bisa bersifat sementara atau persisten. Perintah COPY menambahkan data input baru ke setiap baris yang ada dalam tabel.
- DARI data-sumber
-
Lokasi data sumber yang akan dimuat ke dalam tabel target. File manifes dapat ditentukan dengan beberapa sumber data.
Repositori data yang paling umum digunakan adalah bucket Amazon S3. Anda juga dapat memuat dari file data yang terletak di kluster EMR Amazon, EC2 instans Amazon, atau host jarak jauh yang dapat diakses klaster Anda menggunakan koneksi SSH, atau Anda dapat memuat langsung dari tabel DynamoDB.
- Otorisasi
-
Klausa yang menunjukkan metode yang digunakan klaster Anda untuk otentikasi dan otorisasi untuk mengakses sumber daya lain. AWS Perintah COPY memerlukan otorisasi untuk mengakses data di AWS sumber daya lain, termasuk di Amazon S3, Amazon EMR, Amazon DynamoDB, dan Amazon. EC2 Anda dapat memberikan otorisasi tersebut dengan mereferensikan peran IAM yang dilampirkan ke klaster Anda atau dengan memberikan ID kunci akses dan kunci akses rahasia untuk pengguna IAM.
Parameter opsional
Anda dapat secara opsional menentukan cara COPY memetakan data bidang ke kolom di tabel target, menentukan atribut data sumber untuk mengaktifkan perintah COPY membaca dan mengurai data sumber dengan benar, dan mengelola operasi mana yang dilakukan perintah COPY selama proses pemuatan.
Pemetaan kolom
Secara default, COPY menyisipkan nilai bidang ke kolom tabel target dalam urutan yang sama seperti bidang yang terjadi dalam file data. Jika urutan kolom default tidak akan berfungsi, Anda dapat menentukan daftar kolom atau menggunakan JSONPath ekspresi untuk memetakan bidang data sumber ke kolom target.
Parameter format data
Anda dapat memuat data dari file teks dalam lebar tetap, dibatasi karakter, nilai dipisahkan koma (CSV), atau format JSON, atau dari file Avro.
Secara default, perintah COPY mengharapkan data sumber berada dalam file teks UTF-8 yang dibatasi karakter. Pembatas default adalah karakter pipa (|). Jika data sumber dalam format lain, gunakan parameter berikut untuk menentukan format data.
Parameter konversi data
Saat memuat tabel, COPY mencoba untuk secara implisit mengonversi string dalam data sumber ke tipe data kolom target. Jika Anda perlu menentukan konversi yang berbeda dari perilaku default, atau jika konversi default menghasilkan kesalahan, Anda dapat mengelola konversi data dengan menentukan parameter berikut.
Operasi pemuatan data
Kelola perilaku default operasi pemuatan untuk pemecahan masalah atau untuk mengurangi waktu muat dengan menentukan parameter berikut.
Catatan penggunaan dan sumber daya tambahan untuk perintah COPY
Untuk informasi selengkapnya tentang cara menggunakan perintah COPY, lihat topik berikut:
COPY contoh perintah
Untuk contoh lainnya yang menunjukkan cara MENYALIN dari berbagai sumber, dalam format yang berbeda, dan dengan opsi COPY yang berbeda, lihat. Contoh COPY