Menggunakan perintah COPY untuk memuat dari Amazon S3 - Amazon Redshift

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

Menggunakan perintah COPY untuk memuat dari Amazon S3

Gunakan MENYONTEK perintah untuk memuat tabel secara paralel dari file data di Amazon S3. Anda dapat menentukan file yang akan dimuat menggunakan awalan objek Amazon S3 atau dengan menggunakan file manifes.

Sintaks untuk menentukan file yang akan dimuat dengan menggunakan awalan adalah sebagai berikut:

copy <table_name> from 's3://<bucket_name>/<object_prefix>' authorization;

File manifes adalah file berformat JSON yang mencantumkan file data yang akan dimuat. Sintaks untuk menentukan file yang akan dimuat dengan menggunakan file manifes adalah sebagai berikut:

copy <table_name> from 's3://<bucket_name>/<manifest_file>' authorization manifest;

Tabel yang akan dimuat harus sudah ada dalam database. Untuk informasi tentang membuat tabel, lihat CREATE TABLE di Referensi SQL.

Nilai untuk otorisasi memberikan otorisasi yang AWS dibutuhkan klaster Anda untuk mengakses objek Amazon S3. Untuk informasi tentang izin yang diperlukan, lihatIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY. Metode yang lebih disukai untuk otentikasi adalah menentukan parameter IAM_ROLE dan memberikan Amazon Resource Name (ARN) untuk peran IAM dengan izin yang diperlukan. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran.

Untuk mengautentikasi menggunakan parameter IAM_ROLE, ganti <aws-account-id>dan <role-name>seperti yang ditunjukkan dalam sintaks berikut.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

Contoh berikut menunjukkan otentikasi menggunakan peran IAM.

copy customer from 's3://mybucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Untuk informasi selengkapnya tentang opsi otorisasi lainnya, lihat Parameter otorisasi

Jika Anda ingin memvalidasi data Anda tanpa benar-benar memuat tabel, gunakan opsi NOLOAD dengan perintah. MENYONTEK

Contoh berikut menunjukkan beberapa baris pertama dari data yang dibatasi pipa dalam file bernama. venue.txt

1|Toyota Park|Bridgeview|IL|0 2|Columbus Crew Stadium|Columbus|OH|0 3|RFK Stadium|Washington|DC|0

Sebelum mengunggah file ke Amazon S3, pisahkan file menjadi beberapa file sehingga perintah COPY dapat memuatnya menggunakan pemrosesan paralel. Jumlah file harus kelipatan dari jumlah irisan di cluster Anda. Pisahkan file data beban Anda sehingga file berukuran hampir sama, antara 1 MB dan 1 GB setelah kompresi. Untuk informasi selengkapnya, lihat Memuat data dari file terkompresi dan tidak terkompresi.

Misalnya, venue.txt file tersebut dapat dibagi menjadi empat file, sebagai berikut:

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

Perintah COPY berikut memuat tabel VENUE menggunakan data yang dibatasi pipa dalam file data dengan awalan 'venue' di bucket Amazon S3. mybucket

catatan

Bucket Amazon S3 mybucket dalam contoh berikut tidak ada. Untuk contoh perintah COPY yang menggunakan data nyata di bucket Amazon S3 yang ada, lihat Memuat data sampel.

copy venue from 's3://mybucket/venue' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter '|';

Jika tidak ada objek Amazon S3 dengan key prefix 'venue' yang ada, pemuatan gagal.