Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
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 dengan 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 JSON-formatted file 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 di database. Untuk informasi tentang membuat tabel, lihat CREATE TABLE di Referensi SQL.
Nilai untuk otorisasi memberikan AWS otorisasi yang dibutuhkan Amazon Redshift untuk mengakses objek Amazon S3. Untuk informasi tentang izin yang diperlukan, lihatIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY. Metode otentikasi yang lebih disukai adalah menentukan parameter IAM_ROLE dan memberikan Amazon Resource Name (ARN) untuk peran IAM dengan izin yang diperlukan. Untuk informasi selengkapnya, lihat Role-based kontrol akses.
Untuk mengotentikasi 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://amzn-s3-demo-bucket/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 perintahMENYONTEK.
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 muat 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 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. amzn-s3-demo-bucket
catatan
Bucket Amazon S3 amzn-s3-demo-bucket dalam contoh berikut tidak ada. Untuk contoh perintah COPY yang menggunakan data nyata di bucket Amazon S3 yang ada, lihat Mem uat data sampel.
COPY venue FROM 's3://amzn-s3-demo-bucket/venue' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' DELIMITER '|';
Jika tidak ada objek Amazon S3 dengan awalan kunci 'venue', pemuatan gagal.