COPY - Amazon Redshift

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

COPY

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 bisa COPY ke tabel eksternal.

COPYPerintah menambahkan data input sebagai baris tambahan ke tabel.

Ukuran maksimum satu baris input dari sumber apa pun adalah 4 MB.

Izin yang diperlukan

Untuk menggunakan COPY perintah, Anda harus memiliki INSERT hak istimewa untuk tabel Amazon Redshift.

COPYsintaks

COPY table-name [ column-list ] FROM data_source authorization [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [, ... ] ]

Anda dapat melakukan COPY operasi dengan sedikitnya tiga parameter: nama tabel, sumber data, dan otorisasi untuk mengakses data.

Amazon Redshift memperluas fungsionalitas COPY perintah 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 COPY perintah 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

COPYPerintah ini membutuhkan tiga elemen:

COPYPerintah paling sederhana menggunakan format berikut.

COPY table-name FROM data-source authorization;

Contoh berikut membuat tabel bernamaCATDEMO, dan kemudian memuat tabel dengan data sampel dari file data di Amazon S3 bernama. category_pipe.txt

create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));

Dalam contoh berikut, sumber data untuk COPY perintah adalah file data bernama category_pipe.txt dalam tickit folder bucket Amazon S3 bernama. redshift-downloads COPYPerintah diizinkan untuk mengakses bucket Amazon S3 melalui peran AWS Identity and Access Management (IAM). Jika klaster Anda memiliki IAM peran yang sudah ada dengan izin untuk mengakses Amazon S3 terlampir, Anda dapat mengganti Amazon Resource Name (ARN) peran Anda dalam COPY perintah 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 COPY perintah 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 COPY perintah. Tabel harus sudah ada dalam basis data. Tabel bisa bersifat sementara atau persisten. COPYPerintah menambahkan data input baru ke setiap baris yang ada dalam tabel.

FROMdata-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 EMR kluster Amazon, EC2 instans Amazon, atau host jarak jauh yang dapat diakses klaster Anda menggunakan SSH koneksi, 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 COPYPerintah tersebut 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 IAM peran 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 COPY perintah membaca dan mengurai data sumber dengan benar, dan mengelola operasi mana yang dilakukan COPY perintah selama proses pemuatan.

Pemetaan kolom

Secara default, COPY menyisipkan nilai bidang ke kolom tabel target dalam urutan yang sama seperti bidang 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, atau dari file Avro. JSON

Secara default, COPY perintah mengharapkan data sumber berada dalam file teks -8 yang dibatasi karakterUTF. 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 upaya 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 COPY perintah

Untuk informasi selengkapnya tentang cara menggunakan COPY perintah, lihat topik berikut:

COPYcontoh perintah

Untuk contoh lainnya yang menunjukkan cara COPY dari berbagai sumber, dalam format yang berbeda, dan dengan COPY opsi berbeda, lihat. COPYcontoh