

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="t_loading-tables-from-s3"></a>

Gunakan [MENYONTEK](r_COPY.md) 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](r_CREATE_TABLE_NEW.md) di Referensi SQL. 

Nilai untuk *otorisasi memberikan otorisasi* yang AWS dibutuhkan Amazon Redshift untuk mengakses objek Amazon S3. Untuk informasi tentang izin yang diperlukan, lihat[Izin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions). Metode yang lebih disukai untuk otentikasi adalah menentukan parameter IAM\$1ROLE dan memberikan Amazon Resource Name (ARN) untuk peran IAM dengan izin yang diperlukan. Untuk informasi selengkapnya, lihat [Kontrol akses berbasis peran](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

Untuk mengautentikasi menggunakan parameter IAM\$1ROLE, 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](copy-parameters-authorization.md)

Jika Anda ingin memvalidasi data Anda tanpa benar-benar memuat tabel, gunakan opsi NOLOAD dengan perintah. [MENYONTEK](r_COPY.md)

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](t_splitting-data-files.md).

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. `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 [Memuat data sampel](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html).

```
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' yang ada, pemuatan gagal.

**Topics**
+ [Menggunakan manifes untuk menentukan file data](loading-data-files-using-manifest.md)
+ [Memuat file data terkompresi dari Amazon S3](t_loading-gzip-compressed-data-files-from-S3.md)
+ [Memuat data dengan lebar tetap dari Amazon S3](t_loading_fixed_width_data.md)
+ [Memuat data multibyte dari Amazon S3](t_loading_unicode_data.md)
+ [Memuat file data terenkripsi dari Amazon S3](c_loading-encrypted-files.md)

# Menggunakan manifes untuk menentukan file data
<a name="loading-data-files-using-manifest"></a>

Anda dapat menggunakan manifes untuk memastikan bahwa perintah COPY memuat semua file yang diperlukan, dan hanya file yang diperlukan, untuk memuat data. Anda dapat menggunakan manifes untuk memuat file dari berbagai bucket atau file yang tidak memiliki awalan yang sama. Alih-alih menyediakan jalur objek untuk perintah COPY, Anda memberikan nama file teks berformat JSON yang secara eksplisit mencantumkan file yang akan dimuat. URL dalam manifes harus menentukan nama bucket dan path objek lengkap untuk file, bukan hanya awalan.

Untuk informasi selengkapnya tentang file manifes, lihat contoh COPY [Menggunakan manifes untuk menentukan file data](r_COPY_command_examples.md#copy-command-examples-manifest).

Contoh berikut menunjukkan JSON untuk memuat file dari bucket yang berbeda dan dengan nama file yang dimulai dengan stempel tanggal.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-05-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-05-custdata", "mandatory":true}
  ]
}
```

`mandatory`Bendera opsional menentukan apakah COPY harus mengembalikan kesalahan jika file tidak ditemukan. `mandatory`Defaultnya adalah`false`. Terlepas dari pengaturan wajib apa pun, COPY akan berakhir jika tidak ada file yang ditemukan. 

Contoh berikut menjalankan perintah COPY dengan manifes dalam contoh sebelumnya, yang diberi nama`cust.manifest`. 

```
COPY customer
FROM 's3://amzn-s3-demo-bucket/cust.manifest' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MANIFEST;
```

## Menggunakan manifes yang dibuat oleh UNLOAD
<a name="loading-data-files-using-unload-manifest"></a>

Manifes yang dibuat oleh [MEMBONGKAR](r_UNLOAD.md) operasi menggunakan parameter MANIFEST mungkin memiliki kunci yang tidak diperlukan untuk operasi COPY. Misalnya, `UNLOAD` manifes berikut menyertakan `meta` kunci yang diperlukan untuk tabel eksternal Amazon Redshift Spectrum dan untuk memuat file data dalam format `ORC` file `Parquet` atau. `meta`Kunci berisi `content_length` kunci dengan nilai yang merupakan ukuran sebenarnya dari file dalam byte. Operasi COPY hanya membutuhkan `url` kunci dan `mandatory` kunci opsional.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }},
    {"url":"s3://amzn-s3-demo-bucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }}
 ]
}
```

Untuk informasi selengkapnya tentang file manifes, lihat[Menggunakan manifes untuk menentukan file data](r_COPY_command_examples.md#copy-command-examples-manifest).

# Memuat file data terkompresi dari Amazon S3
<a name="t_loading-gzip-compressed-data-files-from-S3"></a>

Untuk memuat file data yang dikompresi menggunakan gzip, lzop, atau bzip2, sertakan opsi yang sesuai: GZIP, LZOP, atau. BZIP2

Misalnya, perintah berikut dimuat dari file yang dikompresi menggunakan lzop.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/customer.lzo' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
DELIMITER '|' LZOP;
```

**catatan**  
Jika Anda mengompres file data dengan kompresi lzop dan menggunakan opsi *--filter*, perintah COPY tidak mendukungnya.

# Memuat data dengan lebar tetap dari Amazon S3
<a name="t_loading_fixed_width_data"></a>

File data dengan lebar tetap memiliki panjang yang seragam untuk setiap kolom data. Setiap bidang dalam file data dengan lebar tetap memiliki panjang dan posisi yang persis sama. Untuk data karakter (CHAR dan VARCHAR) dalam file data dengan lebar tetap, Anda harus menyertakan spasi depan atau belakang sebagai placeholder agar lebarnya tetap seragam. Untuk bilangan bulat, Anda harus menggunakan angka nol di depan sebagai placeholder. File data dengan lebar tetap tidak memiliki pembatas untuk memisahkan kolom.

Untuk memuat file data dengan lebar tetap ke dalam tabel yang ada, GUNAKAN parameter FIXEDWIDTH dalam perintah COPY. Spesifikasi tabel Anda harus sesuai dengan nilai fixedwidth\$1spec agar data dapat dimuat dengan benar.

Untuk memuat data dengan lebar tetap dari file ke tabel, keluarkan perintah berikut:

```
COPY table_name FROM 's3://amzn-s3-demo-bucket/prefix' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'fixedwidth_spec';
```

Parameter *fixedwidth\$1spec* adalah string yang berisi pengidentifikasi untuk setiap kolom dan lebar setiap kolom, dipisahkan oleh titik dua. **column:width**Pasangan dibatasi oleh koma. Pengenal dapat berupa apa saja yang Anda pilih: angka, huruf, atau kombinasi keduanya. Pengidentifikasi tidak memiliki hubungan dengan tabel itu sendiri, sehingga spesifikasi harus berisi kolom dalam urutan yang sama dengan tabel.

Dua contoh berikut menunjukkan spesifikasi yang sama, dengan yang pertama menggunakan pengidentifikasi numerik dan yang kedua menggunakan pengidentifikasi string:

```
'0:3,1:25,2:12,3:2,4:6'
```

```
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
```

Contoh berikut menunjukkan data sampel lebar tetap yang dapat dimuat ke dalam tabel VENUE menggunakan spesifikasi sebelumnya:

```
1  Toyota Park               Bridgeview  IL0
2  Columbus Crew Stadium     Columbus    OH0
3  RFK Stadium               Washington  DC0
4  CommunityAmerica Ballpark Kansas City KS0
5  Gillette Stadium          Foxborough  MA68756
```

Perintah COPY berikut memuat kumpulan data ini ke dalam tabel VENUE:

```
COPY venue
FROM 's3://amzn-s3-demo-bucket/data/venue_fw.txt' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';
```

# Memuat data multibyte dari Amazon S3
<a name="t_loading_unicode_data"></a>

Jika data Anda menyertakan karakter multibyte non-ASCII (seperti karakter Mandarin atau Sirilik), Anda harus memuat data ke kolom VARCHAR. Tipe data VARCHAR mendukung karakter UTF-8 empat byte, tetapi tipe data CHAR hanya menerima karakter ASCII single-byte. Anda tidak dapat memuat karakter lima byte atau lebih panjang ke dalam tabel Amazon Redshift. Untuk informasi lebih lanjut tentang CHAR dan VARCHAR, lihat. [Jenis Data](c_Supported_data_types.md)

Untuk memeriksa pengkodean mana yang digunakan file input, gunakan *`file`*perintah Linux: 

```
$ file ordersdata.txt
ordersdata.txt: ASCII English text
$ file uni_ordersdata.dat
uni_ordersdata.dat: UTF-8 Unicode text
```

# Memuat file data terenkripsi dari Amazon S3
<a name="c_loading-encrypted-files"></a>

Anda dapat menggunakan perintah COPY untuk memuat file data yang diunggah ke Amazon S3 menggunakan enkripsi sisi server, enkripsi sisi klien, atau keduanya. 

Perintah COPY mendukung jenis enkripsi Amazon S3 berikut:
+ Enkripsi sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3)
+ Enkripsi sisi server dengan AWS KMS keys (SSE-KMS)
+ Enkripsi sisi klien menggunakan kunci root simetris sisi klien

Perintah COPY tidak mendukung jenis enkripsi Amazon S3 berikut:
+ Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)
+ Enkripsi sisi klien menggunakan AWS KMS key
+ Enkripsi sisi klien menggunakan kunci root asimetris yang disediakan pelanggan

Untuk informasi selengkapnya tentang enkripsi Amazon S3, lihat [Melindungi Data Menggunakan Enkripsi Sisi Server dan Melindungi Data Menggunakan Enkripsi Sisi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) [Klien di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html) Penyimpanan Sederhana Amazon.

[MEMBONGKAR](r_UNLOAD.md)Perintah secara otomatis mengenkripsi file menggunakan SSE-S3. Anda juga dapat membongkar menggunakan SSE-KMS atau enkripsi sisi klien dengan kunci simetris yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Membongkar file data terenkripsi](t_unloading_encrypted_files.md)

Perintah COPY secara otomatis mengenali dan memuat file yang dienkripsi menggunakan SSE-S3 dan SSE-KMS. Anda dapat memuat file yang dienkripsi menggunakan kunci root simetris sisi klien dengan menentukan opsi ENCRYPTED dan memberikan nilai kunci. Untuk informasi selengkapnya, lihat [Mengunggah data terenkripsi ke Amazon S3](t_uploading-encrypted-data.md).

Untuk memuat file data terenkripsi sisi klien, berikan nilai kunci root menggunakan parameter MASTER\$1SYMMETRIC\$1KEY dan sertakan opsi ENCRYPTED.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/encrypted/customer' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MASTER_SYMMETRIC_KEY '<root_key>' 
ENCRYPTED
DELIMITER '|';
```

Untuk memuat file data terenkripsi yang gzip, lzop, atau bzip2 dikompresi, sertakan GZIP, LZOP, atau BZIP2 opsi bersama dengan nilai kunci root dan opsi ENCRYPTED.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/encrypted/customer' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MASTER_SYMMETRIC_KEY '<root_key>'
ENCRYPTED 
DELIMITER '|' 
GZIP;
```