

 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.

# Referensi parameter COPY
<a name="r_COPY-parameters"></a>

COPY memiliki banyak parameter yang dapat digunakan dalam banyak situasi. Namun, tidak semua parameter didukung dalam setiap situasi. Misalnya, untuk memuat dari file ORC atau PARQUET ada sejumlah parameter yang didukung. Untuk informasi selengkapnya, lihat [COPY dari format data kolumnar](copy-usage_notes-copy-from-columnar.md).

**Topics**
+ [Sumber data](copy-parameters-data-source.md)
+ [Parameter otorisasi](copy-parameters-authorization.md)
+ [Opsi pemetaan kolom](copy-parameters-column-mapping.md)
+ [Parameter format data](copy-parameters-data-format.md)
+ [Parameter kompresi file](copy-parameters-file-compression.md)
+ [Parameter konversi data](copy-parameters-data-conversion.md)
+ [Operasi pemuatan data](copy-parameters-data-load.md)
+ [Daftar parameter abjad](r_COPY-alphabetical-parm-list.md)

# Sumber data
<a name="copy-parameters-data-source"></a>

Anda dapat memuat data dari file teks di bucket Amazon S3, di kluster EMR Amazon, atau pada host jarak jauh yang dapat diakses klaster Anda menggunakan koneksi SSH. Anda juga dapat memuat data langsung dari tabel DynamoDB. 

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

Untuk mengekspor data dari tabel ke satu set file di Amazon S3, gunakan perintah. [MEMBONGKAR](r_UNLOAD.md) 

**Topics**
+ [SALIN dari Amazon S3](copy-parameters-data-source-s3.md)
+ [SALIN dari Amazon EMR](copy-parameters-data-source-emr.md)
+ [COPY dari host jarak jauh (SSH)](copy-parameters-data-source-ssh.md)
+ [SALIN dari Amazon DynamoDB](copy-parameters-data-source-dynamodb.md)

# SALIN dari Amazon S3
<a name="copy-parameters-data-source-s3"></a>

Untuk memuat data dari file yang terletak di satu atau beberapa bucket S3, gunakan klausa FROM untuk menunjukkan cara COPY menemukan file di Amazon S3. Anda dapat memberikan jalur objek ke file data sebagai bagian dari klausa FROM, atau Anda dapat memberikan lokasi file manifes yang berisi daftar jalur objek Amazon S3. COPY dari Amazon S3 menggunakan koneksi HTTPS. Pastikan rentang IP S3 ditambahkan ke daftar izin Anda. Untuk mempelajari lebih lanjut tentang rentang IP S3 yang diperlukan, lihat [Isolasi jaringan](https://docs.aws.amazon.com//redshift/latest/mgmt/security-network-isolation.html#network-isolation).

**penting**  
Jika bucket Amazon S3 yang menyimpan file data tidak berada di AWS Wilayah yang sama dengan cluster Anda, Anda harus menggunakan [REGION](#copy-region) parameter untuk menentukan Wilayah tempat data berada. 

**Topics**
+ [Sintaksis](#copy-parameters-data-source-s3-syntax)
+ [Contoh](#copy-parameters-data-source-s3-examples)
+ [Parameter opsional](#copy-parameters-data-source-s3-optional-parms)
+ [Parameter yang tidak didukung](#copy-parameters-data-source-s3-unsupported-parms)

## Sintaksis
<a name="copy-parameters-data-source-s3-syntax"></a>

```
FROM { 's3://objectpath' | 's3://manifest_file' }
authorization
| MANIFEST
| ENCRYPTED
| REGION [AS] 'aws-region'
| optional-parameters
```

## Contoh
<a name="copy-parameters-data-source-s3-examples"></a>

Contoh berikut menggunakan path objek untuk memuat data dari Amazon S3. 

```
copy customer
from 's3://amzn-s3-demo-bucket/customer' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Contoh berikut menggunakan file manifes untuk memuat data dari Amazon S3. 

```
copy customer
from 's3://amzn-s3-demo-bucket/cust.manifest' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
```

### Parameter
<a name="copy-parameters-data-source-s3-parameters"></a>

FROM  <a name="copy-parameters-from"></a>
Sumber data yang akan dimuat. Untuk informasi selengkapnya tentang pengkodean file Amazon S3, lihat. [Parameter konversi data](copy-parameters-data-conversion.md)

*'s3://copy\$1from\$1s3\$1objectpath '*   <a name="copy-s3-objectpath"></a>
Menentukan jalur ke objek Amazon S3 yang berisi data—misalnya,. `'s3://amzn-s3-demo-bucket/custdata.txt'` Parameter *s3://copy\$1from\$1s3\$1objectpath* dapat mereferensikan satu file atau satu set objek atau folder yang memiliki key prefix yang sama. Misalnya, nama `custdata.txt` adalah key prefix yang mengacu pada sejumlah file fisik:`custdata.txt`,,, `custdata.txt.1` `custdata.txt.2``custdata.txt.bak`, dan sebagainya. Key prefix juga dapat mereferensikan sejumlah folder. Misalnya, `'s3://amzn-s3-demo-bucket/custfolder'` mengacu pada folder`custfolder`,`custfolder_1`,`custfolder_2`, dan sebagainya. Jika key prefix mereferensikan beberapa folder, semua file dalam folder dimuat. Jika key prefix cocok dengan file serta folder, seperti`custfolder.log`, COPY mencoba memuat file juga. Jika key prefix dapat mengakibatkan COPY mencoba memuat file yang tidak diinginkan, gunakan file manifes. Untuk informasi lebih lanjut, lihat[copy_from_s3_manifest_file](#copy-manifest-file), berikut.   
Jika bucket S3 yang menyimpan file data tidak berada di AWS Region yang sama dengan cluster Anda, Anda harus menggunakan [REGION](#copy-region) parameter tersebut untuk menentukan Wilayah tempat data berada.
Untuk informasi selengkapnya, lihat [Memuat data dari Amazon S3](t_Loading-data-from-S3.md).

*'s3://copy\$1from\$1s3\$1manifest\$1file '*   <a name="copy-manifest-file"></a>
Menentukan kunci objek Amazon S3 untuk file manifes yang mencantumkan file data yang akan dimuat. Argumen *'s3://*copy\$1from\$1s3\$1manifest\$1file' harus secara eksplisit mereferensikan** satu file—misalnya,. `'s3://amzn-s3-demo-bucket/manifest.txt'` Itu tidak dapat mereferensikan key prefix.  
Manifes adalah file teks dalam format JSON yang mencantumkan URL setiap file yang akan dimuat dari Amazon S3. URL menyertakan nama bucket dan path objek lengkap untuk file tersebut. File yang ditentukan dalam manifes dapat berada di bucket yang berbeda, tetapi semua bucket harus berada di AWS Wilayah yang sama dengan cluster Amazon Redshift. Jika file terdaftar dua kali, file dimuat dua kali. Contoh berikut menunjukkan JSON untuk manifes yang memuat tiga file.   

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/custdata.1","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/custdata.2","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/custdata.1","mandatory":false}
  ]
}
```
Karakter tanda kutip ganda diperlukan, dan harus berupa tanda kutip sederhana (0x22), bukan tanda kutip miring atau “pintar”. Setiap entri dalam manifes secara opsional dapat menyertakan `mandatory` bendera. Jika `mandatory` diatur ke`true`, COPY berakhir jika tidak menemukan file untuk entri itu; jika tidak, COPY akan berlanjut. Nilai default-nya `mandatory` is `false`.   
Saat memuat dari file data dalam format ORC atau Parket, `meta` bidang diperlukan, seperti yang ditunjukkan pada contoh berikut.  

```
{  
   "entries":[  
      {  
         "url":"s3://amzn-s3-demo-bucket1/orc/2013-10-04-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      },
      {  
         "url":"s3://amzn-s3-demo-bucket2/orc/2013-10-05-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      }
   ]
}
```
File manifes tidak boleh dienkripsi atau dikompresi, bahkan jika opsi ENCRYPTED, GZIP, LZOP,, atau ZSTD ditentukan. BZIP2 COPY mengembalikan kesalahan jika file manifes yang ditentukan tidak ditemukan atau file manifes tidak terbentuk dengan benar.   
Jika file manifes digunakan, parameter MANIFEST harus ditentukan dengan perintah COPY. Jika parameter MANIFEST tidak ditentukan, COPY mengasumsikan bahwa file yang ditentukan dengan FROM adalah file data.   
Untuk informasi selengkapnya, lihat [Memuat data dari Amazon S3](t_Loading-data-from-S3.md).

*otorisasi*  
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 AWS Identity and Access Management (IAM) yang dilampirkan ke klaster Anda (kontrol akses berbasis peran) atau dengan memberikan kredenal akses untuk pengguna (kontrol akses berbasis kunci). Untuk meningkatkan keamanan dan fleksibilitas, sebaiknya gunakan kontrol akses berbasis peran IAM. Untuk informasi selengkapnya, lihat [Parameter otorisasi](copy-parameters-authorization.md).

NYATA  <a name="copy-manifest"></a>
Menentukan bahwa manifes digunakan untuk mengidentifikasi file data yang akan dimuat dari Amazon S3. Jika parameter MANIFEST digunakan, COPY memuat data dari file yang tercantum dalam manifes yang direferensikan oleh *'s3://copy\$1from\$1s3\$1manifest\$1file'*. Jika file manifes tidak ditemukan, atau tidak dibentuk dengan benar, COPY gagal. Untuk informasi selengkapnya, lihat [Menggunakan manifes untuk menentukan file data](loading-data-files-using-manifest.md).

DIENKRIPSI  <a name="copy-encrypted"></a>
Klausa yang menetapkan bahwa file input di Amazon S3 dienkripsi menggunakan enkripsi sisi klien dengan kunci yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Memuat file data terenkripsi dari Amazon S3](c_loading-encrypted-files.md). Jangan tentukan ENCRYPTED jika file input dienkripsi menggunakan enkripsi sisi server Amazon S3 (SSE-KMS atau SSE-S3). COPY membaca file terenkripsi sisi server secara otomatis.  
Jika Anda menentukan parameter ENCRYPTED, Anda juga harus menentukan [MASTER_SYMMETRIC_KEY](#copy-master-symmetric-key) parameter atau menyertakan **master\$1symmetric\$1key** nilai dalam string. [Menggunakan parameter CREDENTIALS](copy-parameters-authorization.md#copy-credentials)  
Jika file terenkripsi dalam format terkompresi, tambahkan parameter GZIP, LZOP, atau ZSTD. BZIP2  
File dan JSONPaths file manifes tidak boleh dienkripsi, bahkan jika opsi TERENKRIPSI ditentukan.

*MASTER\$1SYMMETRIC\$1KEY 'root\$1key'*  <a name="copy-master-symmetric-key"></a>
Kunci simetris root yang digunakan untuk mengenkripsi file data di Amazon S3. Jika MASTER\$1SYMMETRIC\$1KEY ditentukan, parameter juga harus ditentukan. [ENCRYPTED](#copy-encrypted) MASTER\$1SYMMETRIC\$1KEY tidak dapat digunakan dengan parameter CREDENTIALS. Untuk informasi selengkapnya, lihat [Memuat file data terenkripsi dari Amazon S3](c_loading-encrypted-files.md).  
Jika file terenkripsi dalam format terkompresi, tambahkan parameter GZIP, LZOP, atau ZSTD. BZIP2

WILAYAH [AS] '*aws-region*'  <a name="copy-region"></a>
Menentukan AWS Wilayah tempat data sumber berada. REGION diperlukan untuk COPY dari bucket Amazon S3 atau tabel DynamoDB jika AWS sumber daya yang berisi data tidak berada di Wilayah yang sama dengan cluster Amazon Redshift.   
Nilai untuk *aws\$1region harus cocok dengan Region* yang tercantum di wilayah [Amazon Redshift](https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region) dan tabel titik akhir.  
Jika parameter REGION ditentukan, semua sumber daya, termasuk file manifes atau beberapa bucket Amazon S3, harus berada di Wilayah yang ditentukan.   
Mentransfer data di seluruh Wilayah menimbulkan biaya tambahan terhadap bucket Amazon S3 atau tabel DynamoDB yang berisi data. Untuk informasi selengkapnya tentang harga, lihat **Transfer Data KELUAR Dari Amazon S3 Ke AWS Wilayah Lain** di halaman Harga [Amazon S3](https://aws.amazon.com/s3/pricing/) **dan Transfer Data** KELUAR di halaman Harga Amazon [DynamoDB](https://aws.amazon.com/dynamodb/pricing/). 
Secara default, COPY mengasumsikan bahwa data terletak di Wilayah yang sama dengan cluster Amazon Redshift. 

## Parameter opsional
<a name="copy-parameters-data-source-s3-optional-parms"></a>

Anda dapat secara opsional menentukan parameter berikut dengan COPY dari Amazon S3: 
+ [Opsi pemetaan kolom](copy-parameters-column-mapping.md)
+ [Parameter format data](copy-parameters-data-format.md#copy-data-format-parameters)
+ [Parameter konversi data](copy-parameters-data-conversion.md)
+ [Operasi pemuatan data](copy-parameters-data-load.md)

## Parameter yang tidak didukung
<a name="copy-parameters-data-source-s3-unsupported-parms"></a>

Anda tidak dapat menggunakan parameter berikut dengan COPY dari Amazon S3: 
+ SSH
+ RASIO BACA

# SALIN dari Amazon EMR
<a name="copy-parameters-data-source-emr"></a>

Anda dapat menggunakan perintah COPY untuk memuat data secara paralel dari kluster EMR Amazon yang dikonfigurasi untuk menulis file teks ke Hadoop Distributed File System (HDFS) cluster dalam bentuk file dengan lebar tetap, file yang dibatasi karakter, file CSV, file berformat JSON, atau file Avro.

**Topics**
+ [Sintaksis](#copy-parameters-data-source-emr-syntax)
+ [Contoh](#copy-parameters-data-source-emr-example)
+ [Parameter](#copy-parameters-data-source-emr-parameters)
+ [Parameter yang didukung](#copy-parameters-data-source-emr-optional-parms)
+ [Parameter yang tidak didukung](#copy-parameters-data-source-emr-unsupported-parms)

## Sintaksis
<a name="copy-parameters-data-source-emr-syntax"></a>

```
FROM 'emr://emr_cluster_id/hdfs_filepath'  
authorization
[ optional_parameters ]
```

## Contoh
<a name="copy-parameters-data-source-emr-example"></a>

Contoh berikut memuat data dari cluster EMR Amazon. 

```
copy sales
from 'emr://j-SAMPLE2B500FC/myoutput/part-*' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

## Parameter
<a name="copy-parameters-data-source-emr-parameters"></a>

FROM  
Sumber data yang akan dimuat. 

 *'emr://emr\$1cluster\$1id/ *hdfs\$1file\$1path* '*  <a name="copy-emr"></a>
Pengidentifikasi unik untuk cluster EMR Amazon dan jalur file HDFS yang mereferensikan file data untuk perintah COPY. Nama file data HDFS tidak boleh berisi tanda bintang karakter wildcard (\$1) dan tanda tanya (?).   
Cluster EMR Amazon harus terus berjalan hingga operasi COPY selesai. Jika salah satu file data HDFS diubah atau dihapus sebelum operasi COPY selesai, Anda mungkin memiliki hasil yang tidak terduga, atau operasi COPY mungkin gagal. 
Anda dapat menggunakan karakter wildcard asterisk (\$1) dan tanda tanya (?) sebagai bagian dari argumen *hdfs\$1file\$1path* untuk menentukan beberapa file yang akan dimuat. Misalnya, `'emr://j-SAMPLE2B500FC/myoutput/part*'` mengidentifikasi file`part-0000`,`part-0001`, dan sebagainya. Jika path file tidak berisi karakter wildcard, itu diperlakukan sebagai string literal. Jika Anda hanya menentukan nama folder, COPY mencoba memuat semua file di folder.   
Jika Anda menggunakan karakter wildcard atau hanya menggunakan nama folder, verifikasi bahwa tidak ada file yang tidak diinginkan yang akan dimuat. Misalnya, beberapa proses mungkin menulis file log ke folder output.
Untuk informasi selengkapnya, lihat [Memuat data dari Amazon EMR](loading-data-from-emr.md).

*otorisasi*  
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 AWS Identity and Access Management (IAM) yang dilampirkan ke klaster Anda (kontrol akses berbasis peran) atau dengan memberikan kredenal akses untuk pengguna (kontrol akses berbasis kunci). Untuk meningkatkan keamanan dan fleksibilitas, sebaiknya gunakan kontrol akses berbasis peran IAM. Untuk informasi selengkapnya, lihat [Parameter otorisasi](copy-parameters-authorization.md).

## Parameter yang didukung
<a name="copy-parameters-data-source-emr-optional-parms"></a>

Anda dapat secara opsional menentukan parameter berikut dengan COPY dari Amazon EMR: 
+ [Opsi pemetaan kolom](copy-parameters-column-mapping.md)
+ [Parameter format data](copy-parameters-data-format.md#copy-data-format-parameters)
+ [Parameter konversi data](copy-parameters-data-conversion.md)
+ [Operasi pemuatan data](copy-parameters-data-load.md)

## Parameter yang tidak didukung
<a name="copy-parameters-data-source-emr-unsupported-parms"></a>

Anda tidak dapat menggunakan parameter berikut dengan COPY dari Amazon EMR: 
+ DIENKRIPSI
+ NYATA
+ DAERAH
+ RASIO BACA
+ SSH

# COPY dari host jarak jauh (SSH)
<a name="copy-parameters-data-source-ssh"></a>

Anda dapat menggunakan perintah COPY untuk memuat data secara paralel dari satu atau beberapa host jarak jauh, seperti instans Amazon Elastic Compute Cloud (Amazon EC2) atau komputer lain. COPY terhubung ke host jarak jauh menggunakan Secure Shell (SSH) dan menjalankan perintah pada host jarak jauh untuk menghasilkan output teks. Host jarak jauh dapat berupa instans Linux EC2 atau komputer Unix atau Linux lain yang dikonfigurasi untuk menerima koneksi SSH. Amazon Redshift dapat terhubung ke beberapa host, dan dapat membuka beberapa koneksi SSH ke setiap host. Amazon Redshift mengirimkan perintah unik melalui setiap koneksi untuk menghasilkan output teks ke output standar host, yang kemudian dibaca Amazon Redshift seperti halnya file teks.

Gunakan klausa FROM untuk menentukan kunci objek Amazon S3 untuk file manifes yang menyediakan informasi yang digunakan COPY untuk membuka koneksi SSH dan menjalankan perintah jarak jauh. 

**Topics**
+ [Sintaksis](#copy-parameters-data-source-ssh-syntax)
+ [Contoh](#copy-parameters-data-source-ssh-examples)
+ [Parameter](#copy-parameters-data-source-ssh-parameters)
+ [Parameter opsional](#copy-parameters-data-source-ssh-optional-parms)
+ [Parameter yang tidak didukung](#copy-parameters-data-source-ssh-unsupported-parms)

**penting**  
 Jika bucket S3 yang menyimpan file manifes tidak berada di AWS Region yang sama dengan cluster, Anda harus menggunakan parameter REGION untuk menentukan Region tempat bucket berada. 

## Sintaksis
<a name="copy-parameters-data-source-ssh-syntax"></a>

```
FROM 's3://'ssh_manifest_file' }
authorization
SSH
| optional-parameters
```

## Contoh
<a name="copy-parameters-data-source-ssh-examples"></a>

Contoh berikut menggunakan file manifes untuk memuat data dari host jarak jauh menggunakan SSH. 

```
copy sales
from 's3://amzn-s3-demo-bucket/ssh_manifest' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
ssh;
```

## Parameter
<a name="copy-parameters-data-source-ssh-parameters"></a>

FROM  
Sumber data yang akan dimuat. 

*'s3://copy\$1from\$1ssh\$1manifest\$1file '*  <a name="copy-ssh-manifest"></a>
Perintah COPY dapat terhubung ke beberapa host menggunakan SSH, dan dapat membuat beberapa koneksi SSH ke setiap host. COPY menjalankan perintah melalui setiap koneksi host, dan kemudian memuat output dari perintah secara paralel ke dalam tabel. Argumen *s3://copy\$1from\$1ssh\$1manifest\$1file* menentukan kunci objek Amazon S3 untuk file manifes yang menyediakan informasi yang digunakan COPY untuk membuka koneksi SSH dan menjalankan perintah jarak jauh.  
Argumen *s3://copy\$1from\$1ssh\$1manifest\$1file* harus secara eksplisit mereferensikan satu file; itu tidak bisa menjadi key prefix. Berikut ini menunjukkan contoh:  

```
's3://amzn-s3-demo-bucket/ssh_manifest.txt'
```
File manifes adalah file teks dalam format JSON yang digunakan Amazon Redshift untuk terhubung ke host. File manifes menentukan titik akhir host SSH dan perintah yang akan dijalankan pada host untuk mengembalikan data ke Amazon Redshift. Secara opsional, Anda dapat menyertakan kunci publik host, nama pengguna login, dan bendera wajib untuk setiap entri. Contoh berikut menunjukkan file manifes yang menciptakan dua koneksi SSH:   

```
{ 
    "entries": [ 
	    {"endpoint":"<ssh_endpoint_or_IP>", 
           "command": "<remote_command>",
           "mandatory":true, 
           "publickey": "<public_key>", 
           "username": "<host_user_name>"}, 
	    {"endpoint":"<ssh_endpoint_or_IP>", 
           "command": "<remote_command>",
           "mandatory":true, 
           "publickey": "<public_key>", 
           "username": "<host_user_name>"} 
     ] 
}
```
File manifes berisi satu `"entries"` konstruksi untuk setiap koneksi SSH. Anda dapat memiliki beberapa koneksi ke satu host atau beberapa koneksi ke beberapa host. Karakter tanda kutip ganda diperlukan seperti yang ditunjukkan, baik untuk nama bidang maupun nilainya. Karakter tanda kutip harus berupa tanda kutip sederhana (0x22), bukan tanda kutip miring atau “pintar”. Satu-satunya nilai yang tidak memerlukan karakter tanda kutip ganda adalah nilai Boolean `true` atau `false` untuk bidang. `"mandatory"`   
Daftar berikut menjelaskan bidang dalam file manifes.     
titik akhir  <a name="copy-ssh-manifest-endpoint"></a>
Alamat URL atau alamat IP host—misalnya,`"ec2-111-222-333.compute-1.amazonaws.com"`, atau. `"198.51.100.0"`   
perintah  <a name="copy-ssh-manifest-command"></a>
Perintah yang akan dijalankan oleh host untuk menghasilkan output teks atau output biner dalam format gzip, lzop, bzip2, atau zstd. Perintah dapat berupa perintah apa pun yang pengguna *“host\$1user\$1name”* memiliki izin untuk dijalankan. Perintahnya bisa sesederhana mencetak file, atau bisa menanyakan database atau meluncurkan skrip. Output (file teks, file biner gzip, file biner lzop, atau file biner bzip2) harus dalam bentuk yang dapat dikonsumsi oleh perintah Amazon Redshift COPY. Untuk informasi selengkapnya, lihat [Mempersiapkan data masukan Anda](t_preparing-input-data.md).  
kunci publik  <a name="copy-ssh-manifest-publickey"></a>
(Opsional) Kunci publik tuan rumah. Jika tersedia, Amazon Redshift akan menggunakan kunci publik untuk mengidentifikasi host. Jika kunci publik tidak disediakan, Amazon Redshift tidak akan mencoba identifikasi host. Misalnya, jika kunci publik host jarak jauh adalah`ssh-rsa AbcCbaxxx…Example root@amazon.com`, ketik teks berikut di bidang kunci publik: `"AbcCbaxxx…Example"`  
wajib  <a name="copy-ssh-manifest-mandatory"></a>
(Opsional) Klausa yang menunjukkan apakah perintah COPY harus gagal jika upaya koneksi gagal. Nilai default-nya `false`. Jika Amazon Redshift tidak berhasil membuat setidaknya satu koneksi, perintah COPY gagal.  
nama pengguna  <a name="copy-ssh-manifest-username"></a>
(Opsional) Nama pengguna yang akan digunakan untuk masuk ke sistem host dan menjalankan perintah jarak jauh. Nama login pengguna harus sama dengan login yang digunakan untuk menambahkan kunci publik klaster Amazon Redshift ke file kunci resmi host. Nama pengguna default adalah`redshift`.
Untuk informasi selengkapnya tentang membuat file manifes, lihat[Memuat proses data](loading-data-from-remote-hosts.md#load-from-host-process).  
Untuk COPY dari host jarak jauh, parameter SSH harus ditentukan dengan perintah COPY. Jika parameter SSH tidak ditentukan, COPY mengasumsikan bahwa file yang ditentukan dengan FROM adalah file data dan akan gagal.   
Jika Anda menggunakan kompresi otomatis, perintah COPY melakukan dua operasi baca data, yang berarti akan menjalankan perintah jarak jauh dua kali. Operasi baca pertama adalah menyediakan sampel data untuk analisis kompresi, kemudian operasi baca kedua benar-benar memuat data. Jika menjalankan perintah jarak jauh dua kali dapat menyebabkan masalah, Anda harus menonaktifkan kompresi otomatis. Untuk menonaktifkan kompresi otomatis, jalankan perintah COPY dengan parameter COMPUPDATE diatur ke OFF. Untuk informasi selengkapnya, lihat [Memuat tabel dengan kompresi otomatis](c_Loading_tables_auto_compress.md).  
Untuk prosedur rinci untuk menggunakan COPY dari SSH, lihat[Memuat data dari host jarak jauh](loading-data-from-remote-hosts.md).

*otorisasi*  
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 AWS Identity and Access Management (IAM) yang dilampirkan ke klaster Anda (kontrol akses berbasis peran) atau dengan memberikan kredenal akses untuk pengguna (kontrol akses berbasis kunci). Untuk meningkatkan keamanan dan fleksibilitas, sebaiknya gunakan kontrol akses berbasis peran IAM. Untuk informasi selengkapnya, lihat [Parameter otorisasi](copy-parameters-authorization.md).

SSH  <a name="copy-ssh"></a>
Klausa yang menentukan bahwa data akan dimuat dari host jarak jauh menggunakan protokol SSH. Jika Anda menentukan SSH, Anda juga harus menyediakan file manifes menggunakan [s3://copy_from_ssh_manifest_file](#copy-ssh-manifest) argumen.   
Jika Anda menggunakan SSH untuk menyalin dari host menggunakan alamat IP pribadi di VPC jarak jauh, VPC harus mengaktifkan perutean VPC yang ditingkatkan. Untuk informasi selengkapnya tentang perutean VPC yang Ditingkatkan, lihat Perutean VPC yang Ditingkatkan Amazon [Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html).

## Parameter opsional
<a name="copy-parameters-data-source-ssh-optional-parms"></a>

Anda dapat secara opsional menentukan parameter berikut dengan COPY dari SSH: 
+ [Opsi pemetaan kolom](copy-parameters-column-mapping.md)
+ [Parameter format data](copy-parameters-data-format.md#copy-data-format-parameters)
+ [Parameter konversi data](copy-parameters-data-conversion.md)
+ [Operasi pemuatan data](copy-parameters-data-load.md)

## Parameter yang tidak didukung
<a name="copy-parameters-data-source-ssh-unsupported-parms"></a>

Anda tidak dapat menggunakan parameter berikut dengan COPY dari SSH: 
+ DIENKRIPSI
+ NYATA
+ RASIO BACA

# SALIN dari Amazon DynamoDB
<a name="copy-parameters-data-source-dynamodb"></a>

Untuk memuat data dari tabel DynamoDB yang ada, gunakan klausa FROM untuk menentukan nama tabel DynamoDB.

**Topics**
+ [Sintaksis](#copy-parameters-data-source-dynamodb-syntax)
+ [Contoh](#copy-parameters-data-source-dynamodb-examples)
+ [Parameter opsional](#copy-parameters-data-source-dynamodb-optional-parms)
+ [Parameter yang tidak didukung](#copy-parameters-data-source-dynamodb-unsupported-parms)

**penting**  
Jika tabel DynamoDB tidak berada di wilayah yang sama dengan kluster Amazon Redshift, Anda harus menggunakan parameter REGION untuk menentukan wilayah tempat data berada. 

## Sintaksis
<a name="copy-parameters-data-source-dynamodb-syntax"></a>

```
FROM 'dynamodb://table-name' 
authorization
READRATIO ratio
| REGION [AS] 'aws_region'  
| optional-parameters
```

## Contoh
<a name="copy-parameters-data-source-dynamodb-examples"></a>

Contoh berikut memuat data dari tabel DynamoDB. 

```
copy favoritemovies from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
readratio 50;
```

### Parameter
<a name="copy-parameters-data-source-dynamodb-parameters"></a>

FROM  
Sumber data yang akan dimuat. 

*'dynamodb://nama-tabel '*  <a name="copy-dynamodb"></a>
Nama tabel DynamoDB yang berisi data, misalnya. `'dynamodb://ProductCatalog'` Untuk detail tentang cara atribut DynamoDB dipetakan ke kolom Amazon Redshift, lihat. [Memuat data dari tabel Amazon DynamoDB](t_Loading-data-from-dynamodb.md)  
Nama tabel DynamoDB unik untuk akun, AWS yang diidentifikasi oleh AWS kredenal akses.

*otorisasi*  
Perintah COPY memerlukan otorisasi untuk mengakses data di AWS sumber daya lain, termasuk di Amazon S3, Amazon EMR, DynamoDB, dan Amazon EC2. Anda dapat memberikan otorisasi tersebut dengan mereferensikan peran AWS Identity and Access Management (IAM) yang dilampirkan ke klaster Anda (kontrol akses berbasis peran) atau dengan memberikan kredenal akses untuk pengguna (kontrol akses berbasis kunci). Untuk meningkatkan keamanan dan fleksibilitas, sebaiknya gunakan kontrol akses berbasis peran IAM. Untuk informasi selengkapnya, lihat [Parameter otorisasi](copy-parameters-authorization.md).

*Rasio READRATIO [AS]*  <a name="copy-readratio"></a>
Persentase throughput disediakan tabel DynamoDB untuk digunakan untuk pemuatan data. READRATIO diperlukan untuk COPY dari DynamoDB. Itu tidak dapat digunakan dengan COPY dari Amazon S3. Kami sangat menyarankan untuk menyetel rasio ke nilai yang kurang dari rata-rata throughput yang tidak digunakan. Nilai yang valid adalah bilangan bulat 1-200.  
Menyetel READRATIO ke 100 atau lebih tinggi memungkinkan Amazon Redshift menggunakan keseluruhan throughput yang disediakan tabel DynamoDB, yang secara serius menurunkan kinerja operasi baca bersamaan terhadap tabel yang sama selama sesi COPY. Lalu lintas tulis tidak terpengaruh. Nilai yang lebih tinggi dari 100 diizinkan untuk memecahkan masalah skenario langka saat Amazon Redshift gagal memenuhi throughput tabel yang disediakan. Jika Anda memuat data dari DynamoDB ke Amazon Redshift secara berkelanjutan, pertimbangkan untuk mengatur tabel DynamoDB Anda sebagai rangkaian waktu untuk memisahkan lalu lintas langsung dari operasi COPY.

## Parameter opsional
<a name="copy-parameters-data-source-dynamodb-optional-parms"></a>

Anda dapat secara opsional menentukan parameter berikut dengan COPY dari Amazon DynamoDB: 
+ [Opsi pemetaan kolom](copy-parameters-column-mapping.md)
+ Parameter konversi data berikut didukung:
  + [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate) 
  + [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull) 
  + [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat) 
  + [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull) 
  + [ROUNDEC](copy-parameters-data-conversion.md#copy-roundec) 
  + [TIMEFORMAT](copy-parameters-data-conversion.md#copy-timeformat) 
  + [TRIMBLANKS](copy-parameters-data-conversion.md#copy-trimblanks) 
  + [TRUNCATECOLUMNS](copy-parameters-data-conversion.md#copy-truncatecolumns) 
+ [Operasi pemuatan data](copy-parameters-data-load.md)

## Parameter yang tidak didukung
<a name="copy-parameters-data-source-dynamodb-unsupported-parms"></a>

Anda tidak dapat menggunakan parameter berikut dengan COPY dari DynamoDB: 
+ Semua parameter format data
+ MELARIKAN DIRI
+ FILLRECORD
+ IGNOREBLANKLINES
+ IGNOREHEADER
+ NULL
+ HAPUSQUOTES
+ TERIMA INVCHARS
+ NYATA
+ DIENKRIPSI

# Parameter otorisasi
<a name="copy-parameters-authorization"></a>

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 AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang dilampirkan ke klaster Anda (kontrol akses berbasis *peran*). Anda dapat mengenkripsi data pemuatan Anda di Amazon S3. 

Topik berikut memberikan rincian lebih lanjut dan contoh opsi otentikasi:
+ [Izin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)
+ [Kontrol akses berbasis peran](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)
+ [Kontrol akses berbasis kunci](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based)

Gunakan salah satu dari berikut ini untuk memberikan otorisasi untuk perintah COPY: 
+ [Menggunakan parameter IAM\$1ROLE](#copy-iam-role)parameter
+ Parameter [Menggunakan parameter ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY](#copy-access-key-id)
+ Klausa [Menggunakan parameter CREDENTIALS](#copy-credentials)

## Menggunakan parameter IAM\$1ROLE
<a name="copy-iam-role"></a>

### IAM\$1ROLE
<a name="copy-iam-role-iam"></a>

Gunakan kata kunci default agar Amazon Redshift menggunakan peran IAM yang ditetapkan sebagai default dan terkait dengan cluster saat perintah COPY berjalan. 

Gunakan Amazon Resource Name (ARN) untuk peran IAM yang digunakan klaster Anda untuk autentikasi dan otorisasi. Jika Anda menentukan IAM\$1ROLE, Anda tidak dapat menggunakan ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY, SESSION\$1TOKEN, atau CREDENTIALS.

Berikut ini menunjukkan sintaks untuk parameter IAM\$1ROLE. 

```
IAM_ROLE { default | 'arn:aws:iam::<Akun AWS-id>:role/<role-name>' }
```

Untuk informasi selengkapnya, lihat [Kontrol akses berbasis peran](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

## Menggunakan parameter ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY
<a name="copy-access-key-id"></a>

### ACCESS\$1KEY\$1ID, SECRET\$1ACCESS\$1KEY
<a name="copy-access-key-id-access"></a>

Metode otorisasi ini tidak disarankan. 

**catatan**  
Alih-alih memberikan kredensi akses sebagai teks biasa, kami sangat menyarankan menggunakan otentikasi berbasis peran dengan menentukan parameter IAM\$1ROLE. Untuk informasi selengkapnya, lihat [Kontrol akses berbasis peran](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

### SESSION\$1TOKEN
<a name="copy-token"></a>

Token sesi untuk digunakan dengan kredensil akses sementara. Ketika SESSION\$1TOKEN ditentukan, Anda juga harus menggunakan ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY untuk memberikan kredensyal kunci akses sementara. Jika Anda menentukan SESSION\$1TOKEN, Anda tidak dapat menggunakan IAM\$1ROLE atau CREDENTIALS. Untuk informasi selengkapnya, lihat [Kredensial keamanan sementara](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials) di Panduan Pengguna IAM.

**catatan**  
Alih-alih membuat kredensil keamanan sementara, kami sangat menyarankan untuk menggunakan otentikasi berbasis peran. Saat Anda mengotorisasi penggunaan peran IAM, Amazon Redshift secara otomatis membuat kredensil pengguna sementara untuk setiap sesi. Untuk informasi selengkapnya, lihat [Kontrol akses berbasis peran](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based). 

Berikut ini menunjukkan sintaks untuk parameter SESSION\$1TOKEN dengan parameter ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY. 

```
ACCESS_KEY_ID '<access-key-id>'
SECRET_ACCESS_KEY '<secret-access-key>'
SESSION_TOKEN '<temporary-token>';
```

Jika Anda menentukan SESSION\$1TOKEN, Anda tidak dapat menggunakan CREDENTIALS atau IAM\$1ROLE. 

## Menggunakan parameter CREDENTIALS
<a name="copy-credentials"></a>

### KREDENSIAL
<a name="copy-credentials-cred"></a>

Klausa yang menunjukkan metode yang akan digunakan cluster Anda saat mengakses AWS sumber daya lain yang berisi file data atau file manifes. Anda tidak dapat menggunakan parameter CREDENTIALS dengan IAM\$1ROLE atau ACCESS\$1KEY\$1ID dan SECRET\$1ACCESS\$1KEY.

Berikut ini menunjukkan sintaks untuk parameter CREDENTIALS.

```
[WITH] CREDENTIALS [AS] 'credentials-args'
```

**catatan**  
Untuk meningkatkan fleksibilitas, sebaiknya gunakan [IAM\$1ROLE](#copy-iam-role-iam) parameter alih-alih parameter CREDENTIALS.

Secara opsional, jika [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) parameter digunakan, string *credentials-args* juga menyediakan kunci enkripsi.

String *credentials-args* bersifat case-sensitive dan tidak boleh berisi spasi.

Kata kunci WITH dan AS bersifat opsional dan diabaikan.

Anda dapat menentukan [role-based access control](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based.phrase) atau [key-based access control](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based.phrase). Dalam kedua kasus, peran IAM atau pengguna harus memiliki izin yang diperlukan untuk mengakses sumber daya yang ditentukan AWS . Untuk informasi selengkapnya, lihat [Izin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions). 

**catatan**  
Untuk melindungi AWS kredensyal Anda dan melindungi data sensitif, kami sangat menyarankan untuk menggunakan kontrol akses berbasis peran. 

Untuk menentukan kontrol akses berbasis peran, berikan string *credentials-args* dalam format berikut.

```
'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
```

Untuk menggunakan kredensil token sementara, Anda harus memberikan ID kunci akses sementara, kunci akses rahasia sementara, dan token sementara. String *credentials-args* dalam format berikut. 

```
CREDENTIALS
'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'
```

Perintah COPY menggunakan kontrol akses berbasis peran dengan kredensi sementara akan menyerupai pernyataan contoh berikut: 

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
CREDENTIALS
'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key-id>;token=<temporary-token>'
```

 Untuk informasi selengkapnya, lihat [Kredensial keamanan sementara](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials).

Jika [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) parameter digunakan, string *credentials-args* dalam format berikut, di mana *<root-key>* nilai kunci root yang digunakan untuk mengenkripsi file.

```
CREDENTIALS
'<credentials-args>;master_symmetric_key=<root-key>'
```

Perintah COPY menggunakan kontrol akses berbasis peran dengan kunci enkripsi akan menyerupai pernyataan contoh berikut:

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
CREDENTIALS 
'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'
```

# Opsi pemetaan kolom
<a name="copy-parameters-column-mapping"></a>

Secara default, COPY menyisipkan nilai 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. 
+ [Column List](#copy-column-list)
+ [JSONPaths File](#copy-column-mapping-jsonpaths)

## Daftar kolom
<a name="copy-column-list"></a>

Anda dapat menentukan daftar nama kolom yang dipisahkan koma untuk memuat bidang data sumber ke kolom target tertentu. Kolom dapat dalam urutan apa pun dalam pernyataan COPY, tetapi saat memuat dari file datar, seperti di bucket Amazon S3, urutannya harus sesuai dengan urutan data sumber. 

Saat memuat dari tabel Amazon DynamoDB, pesanan tidak masalah. Perintah COPY cocok dengan nama atribut dalam item yang diambil dari tabel DynamoDB ke nama kolom di tabel Amazon Redshift. Untuk informasi selengkapnya, lihat [Memuat data dari tabel Amazon DynamoDB](t_Loading-data-from-dynamodb.md)

 Format untuk daftar kolom adalah sebagai berikut.

```
COPY tablename (column1 [,column2, ...]) 
```

Jika kolom dalam tabel target dihilangkan dari daftar kolom, maka COPY memuat ekspresi kolom target[DEFAULT](r_CREATE_TABLE_NEW.md#create-table-default).

Jika kolom target tidak memiliki default, COPY mencoba memuat NULL.

Jika COPY mencoba untuk menetapkan NULL ke kolom yang didefinisikan sebagai NOT NULL, perintah COPY gagal. 

Jika [IDENTITY](r_CREATE_TABLE_NEW.md#identity-clause) kolom disertakan dalam daftar kolom, maka [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids) harus juga ditentukan; jika kolom IDENTITY dihilangkan, maka EXPLICIT\$1IDS tidak dapat ditentukan. Jika tidak ada daftar kolom yang ditentukan, perintah berperilaku seolah-olah daftar kolom lengkap dalam urutan ditentukan, dengan kolom IDENTITY dihilangkan jika EXPLICIT\$1IDS juga tidak ditentukan.

Jika kolom didefinisikan dengan GENERATED BY DEFAULT AS IDENTITY, maka itu dapat disalin. Nilai dihasilkan atau diperbarui dengan nilai yang Anda berikan. Opsi EXPLICIT\$1IDS tidak diperlukan. COPY tidak memperbarui tanda air identitas tinggi. Untuk informasi selengkapnya, lihat [GENERATED BY DEFAULT AS IDENTITY](r_CREATE_TABLE_NEW.md#identity-generated-bydefault-clause). 

## JSONPaths berkas
<a name="copy-column-mapping-jsonpaths"></a>

Saat memuat dari file data dalam format JSON atau Avro, COPY secara otomatis memetakan elemen data dalam data sumber JSON atau Avro ke kolom di tabel target. Ia melakukannya dengan mencocokkan nama bidang dalam skema Avro dengan nama kolom di tabel target atau daftar kolom.

Dalam beberapa kasus, nama kolom dan nama bidang Anda tidak cocok, atau Anda perlu memetakan ke tingkat yang lebih dalam dalam hierarki data. Dalam kasus ini, Anda dapat menggunakan JSONPaths file untuk secara eksplisit memetakan elemen data JSON atau Avro ke kolom. 

Untuk informasi selengkapnya, lihat [JSONPaths berkas](copy-parameters-data-format.md#copy-json-jsonpaths). 

# Parameter format data
<a name="copy-parameters-data-format"></a>

Secara default, perintah COPY mengharapkan data sumber menjadi teks UTF-8 yang dibatasi karakter. Pembatas default adalah karakter pipa (\$1). Jika data sumber dalam format lain, gunakan parameter berikut untuk menentukan format data: 
+ [FORMAT](#copy-format)
+ [CSV](#copy-csv)
+ [DELIMITER](#copy-delimiter) 
+ [FIXEDWIDTH](#copy-fixedwidth) 
+ [SHAPEFILE](#copy-shapefile) 
+ [AVRO](#copy-avro) 
+ [JSON format for COPY](#copy-json) 
+ [PARQUET](#copy-parquet) 
+ [ORC](#copy-orc) 

Selain format data standar, COPY mendukung format data kolumnar berikut untuk COPY dari Amazon S3: 
+ [ORC](#copy-orc) 
+ [PARQUET](#copy-parquet) 

COPY dari format kolumnar didukung dengan batasan tertentu. Untuk informasi selengkapnya, lihat [COPY dari format data kolumnar](copy-usage_notes-copy-from-columnar.md). <a name="copy-data-format-parameters"></a>Parameter format data

FORMAT [SEBAGAI]  <a name="copy-format"></a>
(Opsional) Mengidentifikasi kata kunci format data. Argumen FORMAT dijelaskan sebagai berikut.

CSV [KUTIPAN [AS] *'quote\$1character'*]  <a name="copy-csv"></a>
Memungkinkan penggunaan format CSV dalam data input. Untuk secara otomatis menghindari pembatas, karakter baris baru, dan pengembalian carriage, lampirkan bidang dalam karakter yang ditentukan oleh parameter QUOTE. Karakter tanda kutip default adalah tanda kutip ganda ("). Ketika karakter tanda kutip digunakan dalam bidang, keluar dari karakter dengan karakter tanda kutip tambahan. Misalnya, jika karakter tanda kutip adalah tanda kutip ganda, untuk memasukkan string `A "quoted" word` file input harus menyertakan string. `"A ""quoted"" word"` Ketika parameter CSV digunakan, pembatas default adalah koma (,). Anda dapat menentukan pembatas yang berbeda dengan menggunakan parameter DELIMITER.   
Ketika bidang diapit tanda kutip, spasi putih antara pembatas dan karakter tanda kutip diabaikan. Jika pembatas adalah karakter spasi putih, seperti tab, pembatas tidak diperlakukan sebagai spasi putih.  
CSV tidak dapat digunakan dengan FIXEDWIDTH, REMOVEQUOTES, atau ESCAPE.     
KUTIPAN [AS] *'quote\$1character'*  <a name="copy-csv-quote"></a>
Tidak wajib. Menentukan karakter yang akan digunakan sebagai karakter tanda kutip saat menggunakan parameter CSV. Defaultnya adalah tanda kutip ganda ("). Jika Anda menggunakan parameter QUOTE untuk menentukan karakter tanda kutip selain tanda kutip ganda, Anda tidak perlu melepaskan tanda kutip ganda di dalam bidang. Parameter QUOTE hanya dapat digunakan dengan parameter CSV. Kata kunci AS adalah opsional.

PEMBATAS [AS] ['*delimiter\$1char*']   <a name="copy-delimiter"></a>
Menentukan karakter yang digunakan untuk memisahkan bidang dalam file input, seperti karakter pipa (`|`), koma (`,`), tab (`\t`), atau beberapa karakter seperti. `|~|` Karakter yang tidak dapat dicetak didukung. Karakter juga dapat direpresentasikan dalam oktal sebagai unit kode UTF-8 mereka. Untuk oktal, gunakan format '\$1 ddd', di mana' d 'adalah digit oktal (0-7). Pembatas default adalah karakter pipa (`|`), kecuali parameter CSV digunakan, dalam hal ini pembatas default adalah koma (). `,` Kata kunci AS adalah opsional. DELIMITER tidak dapat digunakan dengan FIXEDWIDTH.

*FIXEDWIDTH 'fixedwidth\$1spec'*   <a name="copy-fixedwidth"></a>
Memuat data dari file di mana setiap lebar kolom adalah panjang tetap, bukan kolom yang dipisahkan oleh pembatas. *Fixedwidth\$1spec* adalah string yang menentukan label kolom yang ditentukan pengguna dan lebar kolom. Label kolom dapat berupa string teks atau bilangan bulat, tergantung pada apa yang dipilih pengguna. Label kolom tidak memiliki hubungan dengan nama kolom. Urutan label/width pasangan harus sesuai dengan urutan kolom tabel dengan tepat. FIXEDWIDTH tidak dapat digunakan dengan CSV atau DELIMITER. Di Amazon Redshift, panjang kolom CHAR dan VARCHAR dinyatakan dalam byte, jadi pastikan bahwa lebar kolom yang Anda tentukan mengakomodasi panjang biner karakter multibyte saat menyiapkan file yang akan dimuat. Untuk informasi selengkapnya, lihat [Jenis karakter](r_Character_types.md).   
Format untuk *fixedwidth\$1spec* ditampilkan sebagai berikut:   

```
'colLabel1:colWidth1,colLabel:colWidth2, ...'
```

SHAPEFILE [MENYEDERHANAKAN [AUTO] [*'toleransi'*]]  <a name="copy-shapefile"></a>
Mengaktifkan penggunaan format SHAPEFILE dalam data input. Secara default, kolom pertama dari shapefile adalah kolom `GEOMETRY` atau`IDENTITY`. Semua kolom berikutnya mengikuti urutan yang ditentukan dalam shapefile.  
Anda tidak dapat menggunakan SHAPEFILE dengan FIXEDWIDTH, REMOVEQUOTES, atau ESCAPE.   
Untuk menggunakan `GEOGRAPHY` objek dengan`COPY FROM SHAPEFILE`, pertama menelan ke dalam `GEOMETRY` kolom, dan kemudian melemparkan objek ke `GEOGRAPHY` objek.    
MENYEDERHANAKAN [*toleransi*]  <a name="copy-shapefile-simplify"></a>
(Opsional) Menyederhanakan semua geometri selama proses konsumsi menggunakan Ramer-Douglas-Peucker algoritma dan toleransi yang diberikan.   
MENYEDERHANAKAN AUTO [*toleransi*]  <a name="copy-shapefile-simplify"></a>
(Opsional) Menyederhanakan hanya geometri yang lebih besar dari ukuran geometri maksimum. Penyederhanaan ini menggunakan Ramer-Douglas-Peucker algoritma dan toleransi yang dihitung secara otomatis jika ini tidak melebihi toleransi yang ditentukan. Algoritma ini menghitung ukuran untuk menyimpan objek dalam toleransi yang ditentukan. Nilai *toleransi* adalah opsional.
Untuk contoh memuat shapefile, lihat. [Memuat shapefile ke Amazon Redshift](r_COPY_command_examples.md#copy-example-spatial-copy-shapefile)

AVRO [AS] '*avro\$1option*'  <a name="copy-avro"></a>
Menentukan bahwa data sumber dalam format Avro.   
Format Avro didukung untuk COPY dari layanan dan protokol ini:  
+ Amazon S3 
+ Amazon EMR 
+ Host jarak jauh (SSH) 
Avro tidak didukung untuk COPY dari DynamoDB.   
Avro adalah protokol serialisasi data. File sumber Avro menyertakan skema yang mendefinisikan struktur data. Jenis skema Avro harus. `record` COPY menerima file Avro yang dibuat menggunakan codec default yang tidak terkompresi serta codec kompresi dan. `deflate` `snappy` Untuk informasi lebih lanjut tentang Avro, buka [Apache](https://avro.apache.org/) Avro.   
Nilai yang valid untuk *avro\$1option* adalah sebagai berikut:  
+ `'auto'`
+ `'auto ignorecase'`
+ `'s3://jsonpaths_file'` 
Nilai default-nya `'auto'`.  
COPY secara otomatis memetakan elemen data dalam data sumber Avro ke kolom di tabel target. Ia melakukannya dengan mencocokkan nama bidang dalam skema Avro dengan nama kolom di tabel target. Pencocokan peka huruf besar/kecil untuk `'auto'` dan tidak peka huruf besar/kecil untuk. `'auto ignorecase'`   
Nama kolom di tabel Amazon Redshift selalu huruf kecil, jadi saat Anda menggunakan `'auto'` opsi, nama bidang yang cocok juga harus huruf kecil. Jika nama bidang tidak semuanya huruf kecil, Anda dapat menggunakan opsi. `'auto ignorecase'` Dengan `'auto'` argumen default, COPY hanya mengenali bidang tingkat pertama, atau *bidang luar*, dalam struktur.   
Untuk secara eksplisit memetakan nama kolom ke nama bidang Avro, Anda dapat menggunakan. [JSONPaths berkas](#copy-json-jsonpaths)   
Secara default, COPY mencoba untuk mencocokkan semua kolom dalam tabel target dengan nama bidang Avro. Untuk memuat subset kolom, Anda dapat menentukan daftar kolom secara opsional. Jika kolom dalam tabel target dihilangkan dari daftar kolom, COPY memuat ekspresi kolom target[DEFAULT](r_CREATE_TABLE_NEW.md#create-table-default). Jika kolom target tidak memiliki default, COPY mencoba memuat NULL. Jika kolom disertakan dalam daftar kolom dan COPY tidak menemukan bidang yang cocok dalam data Avro, COPY mencoba memuat NULL ke kolom.   
Jika COPY mencoba untuk menetapkan NULL ke kolom yang didefinisikan sebagai NOT NULL, perintah COPY gagal.   
<a name="copy-avro-schema"></a>**Avro Skema**  
File data sumber Avro mencakup skema yang mendefinisikan struktur data. COPY membaca skema yang merupakan bagian dari file data sumber Avro untuk memetakan elemen data ke kolom tabel target. Contoh berikut menunjukkan skema Avro.   

```
{
    "name": "person",
    "type": "record",
    "fields": [
        {"name": "id", "type": "int"},
        {"name": "guid", "type": "string"},
        {"name": "name", "type": "string"},
        {"name": "address", "type": "string"}]
}
```
Skema Avro didefinisikan menggunakan format JSON. Objek JSON tingkat atas berisi tiga pasangan nama-nilai dengan nama, atau *kunci*,,, dan. `"name"` `"type"` `"fields"`   
Pasangan `"fields"` kunci dengan array objek yang menentukan nama dan tipe data dari setiap bidang dalam struktur data. Secara default, COPY secara otomatis mencocokkan nama bidang dengan nama kolom. Nama kolom selalu huruf kecil, jadi nama bidang yang cocok juga harus huruf kecil, kecuali jika Anda menentukan opsi. `‘auto ignorecase’` Nama bidang apa pun yang tidak cocok dengan nama kolom akan diabaikan. Pesanan tidak masalah. Pada contoh sebelumnya, COPY memetakan ke nama kolom`id`,`guid`,`name`, dan`address`.   
Dengan `'auto'` argumen default, COPY hanya mencocokkan objek tingkat pertama dengan kolom. Untuk memetakan ke tingkat yang lebih dalam dalam skema, atau jika nama bidang dan nama kolom tidak cocok, gunakan JSONPaths file untuk menentukan pemetaan. Untuk informasi selengkapnya, lihat [JSONPaths berkas](#copy-json-jsonpaths).   
Jika nilai yang terkait dengan kunci adalah tipe data Avro yang kompleks seperti byte, array, record, map, atau link, COPY memuat nilai sebagai string. Di sini, string adalah representasi JSON dari data. COPY memuat tipe data Avro enum sebagai string, di mana konten adalah nama tipe. Sebagai contoh, lihat [COPY dari format JSON](copy-usage_notes-copy-from-json.md).  
Ukuran maksimum header file Avro, yang mencakup skema dan metadata file, adalah 1 MB.     
Ukuran maksimum satu blok data Avro adalah 4 MB. Ini berbeda dari ukuran baris maksimum. Jika ukuran maksimum satu blok data Avro terlampaui, bahkan jika ukuran baris yang dihasilkan kurang dari batas ukuran baris 4 MB, perintah COPY gagal.   
Dalam menghitung ukuran baris, Amazon Redshift secara internal menghitung karakter pipa (\$1) dua kali. Jika data input Anda berisi sejumlah besar karakter pipa, dimungkinkan untuk ukuran baris melebihi 4 MB bahkan jika blok data kurang dari 4 MB.

JSON [AS] '*json\$1option*'  <a name="copy-json"></a>
Sumber data dalam format JSON.   
Format JSON didukung untuk COPY dari layanan dan protokol ini:  
+ Amazon S3
+ SALIN dari Amazon EMR
+ COPY dari SSH
JSON tidak didukung untuk COPY dari DynamoDB.   
Nilai yang valid untuk *json\$1option* adalah sebagai berikut:  
+ `'auto'`
+ `'auto ignorecase'`
+ `'s3://jsonpaths_file'` 
+ `'noshred'` 
Nilai default-nya `'auto'`. Amazon Redshift tidak merusak atribut struktur JSON menjadi beberapa kolom saat memuat dokumen JSON.  
Secara default, COPY mencoba untuk mencocokkan semua kolom dalam tabel target dengan kunci nama bidang JSON. Untuk memuat subset kolom, Anda dapat menentukan daftar kolom secara opsional. Jika kunci nama bidang JSON tidak semuanya huruf kecil, Anda dapat menggunakan `'auto ignorecase'` opsi atau untuk secara eksplisit [JSONPaths berkas](#copy-json-jsonpaths) memetakan nama kolom ke kunci nama bidang JSON.  
Jika kolom dalam tabel target dihilangkan dari daftar kolom, maka COPY memuat ekspresi kolom target[DEFAULT](r_CREATE_TABLE_NEW.md#create-table-default). Jika kolom target tidak memiliki default, COPY mencoba memuat NULL. Jika kolom disertakan dalam daftar kolom dan COPY tidak menemukan bidang yang cocok dalam data JSON, COPY mencoba memuat NULL ke kolom.   
Jika COPY mencoba untuk menetapkan NULL ke kolom yang didefinisikan sebagai NOT NULL, perintah COPY gagal.   
COPY memetakan elemen data dalam data sumber JSON ke kolom di tabel target. Ia melakukannya dengan mencocokkan *kunci objek*, atau nama, dalam pasangan nama-nilai sumber dengan nama kolom dalam tabel target.   
Lihat detail berikut tentang setiap nilai *json\$1option*:    
'otomatis'  <a name="copy-json-auto"></a>
Dengan opsi ini, pencocokan peka huruf besar/kecil. Nama kolom di tabel Amazon Redshift selalu huruf kecil, jadi saat Anda menggunakan `'auto'` opsi, nama bidang JSON yang cocok juga harus huruf kecil.  
'abaikan otomatis'  <a name="copy-json-auto-ignorecase"></a>
Dengan opsi ini, pencocokan tidak peka huruf besar/kecil. Nama kolom di tabel Amazon Redshift selalu huruf kecil, jadi saat Anda menggunakan `'auto ignorecase'` opsi, nama bidang JSON yang sesuai dapat berupa huruf kecil, huruf besar, atau huruf campuran.   
*'s3://jsonpaths\$1file '*  <a name="copy-json-pathfile"></a>
Dengan opsi ini, COPY menggunakan JSONPaths file bernama untuk memetakan elemen data dalam data sumber JSON ke kolom di tabel target. *`s3://jsonpaths_file`*Argumen harus berupa kunci objek Amazon S3 yang secara eksplisit mereferensikan satu file. Contohnya adalah `'s3://amzn-s3-demo-bucket/jsonpaths.txt` '. Argumen tidak bisa menjadi key prefix. Untuk informasi selengkapnya tentang menggunakan JSONPaths file, lihat[JSONPaths berkas](#copy-json-jsonpaths).  
Dalam beberapa kasus, file yang ditentukan oleh `jsonpaths_file` memiliki awalan yang sama dengan jalur yang ditentukan oleh `copy_from_s3_objectpath` untuk file data. Jika demikian, COPY membaca JSONPaths file sebagai file data dan mengembalikan kesalahan. Misalnya, misalkan file data Anda menggunakan path objek `s3://amzn-s3-demo-bucket/my_data.json` dan JSONPaths file Anda`s3://amzn-s3-demo-bucket/my_data.jsonpaths`. Dalam hal ini, COPY mencoba memuat `my_data.jsonpaths` sebagai file data.  
'hidung'  <a name="copy-json-noshred"></a>
Dengan opsi ini, Amazon Redshift tidak merusak atribut struktur JSON menjadi beberapa kolom saat memuat dokumen JSON.

## Berkas data JSON
<a name="copy-json-data-file"></a>

File data JSON berisi satu set objek atau array. COPY memuat setiap objek JSON atau array ke dalam satu baris dalam tabel target. Setiap objek atau array yang sesuai dengan baris harus merupakan struktur tingkat akar yang berdiri sendiri; artinya, ia tidak boleh menjadi anggota struktur JSON lain.

*Objek* JSON dimulai dan diakhiri dengan tanda kurung kurung (\$1\$1) dan berisi kumpulan pasangan nama-nilai yang tidak berurutan. Setiap nama dan nilai yang dipasangkan dipisahkan oleh titik dua, dan pasangan dipisahkan dengan koma. Secara default, *kunci objek*, atau nama, dalam pasangan nama-nilai harus cocok dengan nama kolom yang sesuai dalam tabel. Nama kolom di tabel Amazon Redshift selalu huruf kecil, jadi kunci nama bidang JSON yang cocok juga harus huruf kecil. Jika nama kolom dan kunci JSON Anda tidak cocok, gunakan a [JSONPaths berkas](#copy-json-jsonpaths) untuk secara eksplisit memetakan kolom ke kunci. 

Urutan dalam objek JSON tidak masalah. Nama apa pun yang tidak cocok dengan nama kolom diabaikan. Berikut ini menunjukkan struktur objek JSON sederhana.

```
{
  "column1": "value1",
  "column2": value2,
  "notacolumn" : "ignore this value"
}
```

*Array* JSON dimulai dan diakhiri dengan tanda kurung ([]), dan berisi kumpulan nilai yang diurutkan dipisahkan oleh koma. Jika file data Anda menggunakan array, Anda harus menentukan JSONPaths file untuk mencocokkan nilai ke kolom. Berikut ini menunjukkan struktur array JSON sederhana. 

```
["value1", value2]
```

JSON harus dibentuk dengan baik. Misalnya, objek atau array tidak dapat dipisahkan dengan koma atau karakter lain kecuali spasi putih. String harus dilampirkan dalam karakter tanda kutip ganda. Karakter kutipan harus berupa tanda kutip sederhana (0x22), bukan tanda kutip miring atau “pintar”.

Ukuran maksimum objek atau array JSON tunggal, termasuk kawat gigi atau tanda kurung, adalah 4 MB. Ini berbeda dari ukuran baris maksimum. Jika ukuran maksimum objek atau array JSON tunggal terlampaui, bahkan jika ukuran baris yang dihasilkan kurang dari batas ukuran baris 4 MB, perintah COPY gagal. 

Dalam menghitung ukuran baris, Amazon Redshift secara internal menghitung karakter pipa (\$1) dua kali. Jika data input Anda berisi sejumlah besar karakter pipa, dimungkinkan untuk ukuran baris melebihi 4 MB bahkan jika ukuran objek kurang dari 4 MB.

COPY dimuat `\n` sebagai karakter baris baru dan dimuat `\t` sebagai karakter tab. Untuk memuat garis miring terbalik, lepaskan dengan garis miring terbalik (). `\\`

COPY mencari sumber JSON yang ditentukan untuk objek atau array JSON yang terbentuk dengan baik dan valid. Jika COPY menemukan karakter non-spasi putih sebelum menemukan struktur JSON yang dapat digunakan, atau di antara objek atau array JSON yang valid, COPY mengembalikan kesalahan untuk setiap instance. Kesalahan ini dihitung dalam jumlah kesalahan MAXERROR. Ketika jumlah kesalahan sama atau melebihi MAXERROR, COPY gagal. 

Untuk setiap kesalahan, Amazon Redshift merekam baris dalam tabel sistem STL\$1LOAD\$1ERRORS. Kolom LINE\$1NUMBER mencatat baris terakhir dari objek JSON yang menyebabkan kesalahan. 

Jika IGNOREHEADER ditentukan, COPY mengabaikan jumlah baris yang ditentukan dalam data JSON. Karakter baris baru dalam data JSON selalu dihitung untuk perhitungan IGNOREHEADER. 

COPY memuat string kosong sebagai bidang kosong secara default. Jika EMTTYASNULL ditentukan, COPY memuat string kosong untuk bidang CHAR dan VARCHAR sebagai NULL. String kosong untuk tipe data lain, seperti INT, selalu dimuat dengan NULL. 

Opsi berikut tidak didukung dengan JSON: 
+ CSV
+ PEMBATAS 
+ MELARIKAN DIRI
+ FILLRECORD 
+ FIXEDWIDTH
+ IGNOREBLANKLINES
+ NULL SEBAGAI
+ RASIO BACA
+ HAPUSQUOTES 

Untuk informasi selengkapnya, lihat [COPY dari format JSON](copy-usage_notes-copy-from-json.md). Untuk informasi lebih lanjut tentang struktur data JSON, kunjungi [www.json.org](https://www.json.org/). 

## JSONPaths berkas
<a name="copy-json-jsonpaths"></a>

Jika Anda memuat dari data sumber berformat JSON atau Avro, secara default COPY memetakan elemen data tingkat pertama dalam data sumber ke kolom di tabel target. Ia melakukannya dengan mencocokkan setiap nama, atau kunci objek, dalam pasangan nama-nilai dengan nama kolom dalam tabel target. 

Jika nama kolom dan kunci objek Anda tidak cocok, atau untuk memetakan ke tingkat yang lebih dalam dalam hierarki data, Anda dapat menggunakan JSONPaths file untuk secara eksplisit memetakan elemen data JSON atau Avro ke kolom. JSONPaths File memetakan elemen data JSON ke kolom dengan mencocokkan urutan kolom dalam tabel target atau daftar kolom.

 JSONPaths File harus berisi hanya satu objek JSON (bukan array). Objek JSON adalah pasangan nama-nilai. *Kunci objek*, yang merupakan nama dalam pasangan nama-nilai, harus. `"jsonpaths"` *Nilai* *dalam pasangan nama-nilai adalah array ekspresi. JSONPath * Setiap JSONPath ekspresi mereferensikan satu elemen dalam hierarki data JSON atau skema Avro, mirip dengan bagaimana XPath ekspresi mengacu pada elemen dalam dokumen XHTML. Untuk informasi selengkapnya, lihat [JSONPath ekspresi](#copy-json-jsonpath-expressions).

Untuk menggunakan JSONPaths file, tambahkan kata kunci JSON atau AVRO ke perintah COPY. Tentukan nama bucket S3 dan path objek JSONPaths file menggunakan format berikut.

```
COPY tablename 
FROM 'data_source' 
CREDENTIALS 'credentials-args' 
FORMAT AS { AVRO | JSON } 's3://jsonpaths_file';
```

`s3://jsonpaths_file`Nilai harus berupa kunci objek Amazon S3 yang secara eksplisit mereferensikan satu file, seperti. `'s3://amzn-s3-demo-bucket/jsonpaths.txt'` Itu tidak bisa menjadi key prefix. 

Dalam beberapa kasus, jika Anda memuat dari Amazon S3, file yang ditentukan oleh `jsonpaths_file` memiliki awalan yang sama dengan jalur yang ditentukan oleh `copy_from_s3_objectpath` untuk file data. Jika demikian, COPY membaca JSONPaths file sebagai file data dan mengembalikan kesalahan. Misalnya, misalkan file data Anda menggunakan path objek `s3://amzn-s3-demo-bucket/my_data.json` dan JSONPaths file Anda`s3://amzn-s3-demo-bucket/my_data.jsonpaths`. Dalam hal ini, COPY mencoba memuat `my_data.jsonpaths` sebagai file data.

 Jika nama kunci adalah string selain`"jsonpaths"`, perintah COPY tidak mengembalikan kesalahan, tetapi mengabaikan *jsonpaths\$1file* dan menggunakan argumen sebagai gantinya. `'auto'` 

Jika salah satu hal berikut terjadi, perintah COPY gagal:
+ JSON cacat.
+ Ada lebih dari satu objek JSON.
+ Karakter apa pun kecuali ruang putih ada di luar objek.
+ Elemen array adalah string kosong atau bukan string.

MAXERROR tidak berlaku untuk JSONPaths file. 

 JSONPaths File tidak boleh dienkripsi, bahkan jika [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) opsi ditentukan.

Untuk informasi selengkapnya, lihat [COPY dari format JSON](copy-usage_notes-copy-from-json.md). 

## JSONPath ekspresi
<a name="copy-json-jsonpath-expressions"></a>

 JSONPaths File menggunakan JSONPath ekspresi untuk memetakan bidang data ke kolom target. Setiap JSONPath ekspresi sesuai dengan satu kolom di tabel target Amazon Redshift. Urutan elemen JSONPath array harus sesuai dengan urutan kolom dalam tabel target atau daftar kolom, jika daftar kolom digunakan. 

Karakter tanda kutip ganda diperlukan seperti yang ditunjukkan, baik untuk nama bidang maupun nilainya. Karakter tanda kutip harus berupa tanda kutip sederhana (0x22), bukan tanda kutip miring atau “pintar”.

Jika elemen objek yang direferensikan oleh JSONPath ekspresi tidak ditemukan dalam data JSON, COPY mencoba memuat nilai NULL. Jika objek yang direferensikan cacat, COPY mengembalikan kesalahan pemuatan. 

Jika elemen array yang direferensikan oleh JSONPath ekspresi tidak ditemukan dalam data JSON atau Avro, COPY gagal dengan kesalahan berikut: `Invalid JSONPath format: Not an array or index out of range.` Hapus elemen array dari JSONPaths yang tidak ada dalam data sumber dan verifikasi bahwa array dalam data sumber terbentuk dengan baik.  

 JSONPath Ekspresi dapat menggunakan notasi braket atau notasi titik, tetapi Anda tidak dapat mencampur notasi. Contoh berikut menunjukkan JSONPath ekspresi menggunakan notasi braket. 

```
{
    "jsonpaths": [
        "$['venuename']",
        "$['venuecity']",
        "$['venuestate']",
        "$['venueseats']"
    ]
}
```

Contoh berikut menunjukkan JSONPath ekspresi menggunakan notasi titik. 

```
{
    "jsonpaths": [
        "$.venuename",
        "$.venuecity",
        "$.venuestate",
        "$.venueseats"
    ]
}
```

Dalam konteks sintaks Amazon Redshift COPY, JSONPath ekspresi harus menentukan jalur eksplisit ke elemen nama tunggal dalam struktur data hierarkis JSON atau Avro. Amazon Redshift tidak mendukung JSONPath elemen apa pun, seperti karakter wildcard atau ekspresi filter, yang mungkin diselesaikan ke jalur ambigu atau beberapa elemen nama.

Untuk informasi selengkapnya, lihat [COPY dari format JSON](copy-usage_notes-copy-from-json.md). 

## Menggunakan JSONPaths dengan Avro Data
<a name="using-jsonpath-with-avro"></a>

Contoh berikut menunjukkan skema Avro dengan beberapa level.

```
{
    "name": "person",
    "type": "record",
    "fields": [
        {"name": "id", "type": "int"},
        {"name": "guid", "type": "string"},
        {"name": "isActive", "type": "boolean"},
        {"name": "age", "type": "int"},
        {"name": "name", "type": "string"},
        {"name": "address", "type": "string"},
        {"name": "latitude", "type": "double"},
        {"name": "longitude", "type": "double"},
        {
            "name": "tags",
            "type": {
                        "type" : "array",
                        "name" : "inner_tags",
                        "items" : "string"
                    }
        },
        {
            "name": "friends",
            "type": {
                        "type" : "array",
                        "name" : "inner_friends",
                        "items" : {
                                    "name" : "friends_record",
                                    "type" : "record",
                                    "fields" : [
                                                 {"name" : "id", "type" : "int"},
                                                 {"name" : "name", "type" : "string"}
                                               ]
                                  }
                    }
        },
        {"name": "randomArrayItem", "type": "string"}
    ]
}
```

Contoh berikut menunjukkan JSONPaths file yang menggunakan AvroPath ekspresi untuk referensi skema sebelumnya. 

```
{
    "jsonpaths": [
        "$.id",
        "$.guid",
        "$.address",
        "$.friends[0].id"
    ]
}
```

 JSONPaths Contohnya meliputi elemen-elemen berikut:

jsonpath  
Nama objek JSON yang berisi AvroPath ekspresi.

[ … ]  
Tanda kurung melampirkan array JSON yang berisi elemen jalur.

\$1  
Tanda dolar mengacu pada elemen root dalam skema Avro, yang merupakan array. `"fields"`

“\$1.id”,  
Target AvroPath ekspresi. Dalam hal ini, target adalah elemen dalam `"fields"` array dengan nama`"id"`. Ekspresi dipisahkan oleh koma.

“\$1.friends [0] .id”  
Tanda kurung menunjukkan indeks array. JSONPath ekspresi menggunakan pengindeksan berbasis nol, jadi ekspresi ini mereferensikan elemen pertama dalam `"friends"` array dengan nama. `"id"`

Sintaks skema Avro membutuhkan penggunaan *bidang dalam* untuk menentukan struktur tipe data record dan array. Bidang dalam diabaikan oleh AvroPath ekspresi. Misalnya, bidang `"friends"` mendefinisikan array bernama`"inner_friends"`, yang pada gilirannya mendefinisikan catatan bernama. `"friends_record"` AvroPath Ekspresi untuk mereferensikan bidang `"id"` dapat mengabaikan bidang tambahan untuk mereferensikan bidang target secara langsung. AvroPath Ekspresi berikut mereferensikan dua bidang yang termasuk dalam `"friends"` array.

```
"$.friends[0].id"
"$.friends[0].name"
```

## Parameter format data kolumnar
<a name="copy-parameters-columnar-data"></a>

Selain format data standar, COPY mendukung format data kolumnar berikut untuk COPY dari Amazon S3. COPY dari format kolumnar didukung dengan batasan tertentu. Untuk informasi selengkapnya, lihat [COPY dari format data kolumnar](copy-usage_notes-copy-from-columnar.md). 

ORC  <a name="copy-orc"></a>
Memuat data dari file yang menggunakan format file Optimized Row Columnar (ORC). 

PARQUET  <a name="copy-parquet"></a>
Memuat data dari file yang menggunakan format file Parket. 

# Parameter kompresi file
<a name="copy-parameters-file-compression"></a>

Anda dapat memuat dari file data terkompresi dengan menentukan parameter berikut. Parameter kompresi file

BZIP2   <a name="copy-bzip2"></a>
Nilai yang menentukan bahwa file input atau file dalam format bzip2 terkompresi (file.bz2). Operasi COPY membaca setiap file terkompresi dan membuka kompres data saat dimuat.

GZIP   <a name="copy-gzip"></a>
Nilai yang menentukan bahwa file input atau file dalam format gzip terkompresi (file.gz). Operasi COPY membaca setiap file terkompresi dan membuka kompres data saat dimuat.

LZOP   <a name="copy-lzop"></a>
Nilai yang menentukan bahwa file input atau file dalam format lzop terkompresi (file.lzo). Operasi COPY membaca setiap file terkompresi dan membuka kompres data saat dimuat.  
*COPY tidak mendukung file yang dikompresi menggunakan opsi lzop --filter.*

ZSTD   <a name="copy-zstd"></a>
Nilai yang menentukan bahwa file input atau file dalam format Zstandard terkompresi (file.zst). Operasi COPY membaca setiap file terkompresi dan membuka kompres data saat dimuat.  
ZSTD hanya didukung dengan COPY dari Amazon S3.

# Parameter konversi data
<a name="copy-parameters-data-conversion"></a>

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. Untuk informasi selengkapnya tentang sintaks parameter ini, lihat [sintaks COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html#r_COPY-syntax).
+ [ACCEPTANYDATE](#copy-acceptanydate) 
+ [ACCEPTINVCHARS](#copy-acceptinvchars) 
+ [BLANKSASNULL](#copy-blanksasnull) 
+ [DATEFORMAT](#copy-dateformat) 
+ [EMPTYASNULL](#copy-emptyasnull) 
+ [ENCODING](#copy-encoding) 
+ [ESCAPE](#copy-escape) 
+ [EXPLICIT_IDS](#copy-explicit-ids) 
+ [FILLRECORD](#copy-fillrecord) 
+ [IGNOREBLANKLINES](#copy-ignoreblanklines) 
+ [IGNOREHEADER](#copy-ignoreheader) 
+ [NULL AS](#copy-null-as) 
+ [REMOVEQUOTES](#copy-removequotes) 
+ [ROUNDEC](#copy-roundec) 
+ [TIMEFORMAT](#copy-timeformat) 
+ [TRIMBLANKS](#copy-trimblanks) 
+ [TRUNCATECOLUMNS](#copy-truncatecolumns) <a name="copy-data-conversion-parameters"></a>Parameter konversi data

ACCEPTANYDATE   <a name="copy-acceptanydate"></a>
Memungkinkan format tanggal apa pun, termasuk format yang tidak valid seperti`00/00/00 00:00:00`, dimuat tanpa menimbulkan kesalahan. Parameter ini hanya berlaku untuk kolom TIMESTAMP dan DATE. Selalu gunakan ACCEPTANYDATE dengan parameter DATEFORMAT. Jika format tanggal untuk data tidak cocok dengan spesifikasi DATEFORMAT, Amazon Redshift menyisipkan nilai NULL ke bidang tersebut.

*TERIMA INVCHARS [AS] ['replacement\$1char']*   <a name="copy-acceptinvchars"></a>
Memungkinkan pemuatan data ke kolom VARCHAR bahkan jika data berisi karakter UTF-8 yang tidak valid. *Ketika ACCEPTINVCHARS ditentukan, COPY menggantikan setiap karakter UTF-8 yang tidak valid dengan string dengan panjang yang sama yang terdiri dari karakter yang ditentukan oleh replacement\$1char.* Misalnya, jika karakter pengganti adalah '`^`', karakter tiga byte yang tidak valid akan diganti dengan ''. `^^^`  
 Karakter pengganti dapat berupa karakter ASCII kecuali NULL. Defaultnya adalah tanda tanya (? ). Untuk informasi tentang karakter UTF-8 yang tidak valid, lihat. [Kesalahan pemuatan karakter multibyte](multi-byte-character-load-errors.md)  
COPY mengembalikan jumlah baris yang berisi karakter UTF-8 yang tidak valid, dan menambahkan entri ke tabel [STL\$1REPLACEMENTS](r_STL_REPLACEMENTS.md) sistem untuk setiap baris yang terpengaruh, hingga maksimum 100 baris untuk setiap irisan node. Karakter UTF-8 tambahan yang tidak valid juga diganti, tetapi peristiwa pengganti tersebut tidak direkam.  
Jika ACCEPTINVCHARS tidak ditentukan, COPY mengembalikan kesalahan setiap kali menemukan karakter UTF-8 yang tidak valid.   
ACCEPTINVCHARS hanya berlaku untuk kolom VARCHAR.

BLANKSASNULL   <a name="copy-blanksasnull"></a>
Memuat bidang kosong, yang hanya terdiri dari karakter spasi putih, sebagai NULL. Opsi ini hanya berlaku untuk kolom CHAR dan VARCHAR. Bidang kosong untuk tipe data lain, seperti INT, selalu dimuat dengan NULL. Misalnya, string yang berisi tiga karakter spasi berturut-turut (dan tidak ada karakter lain) dimuat sebagai NULL. Perilaku default, tanpa opsi ini, adalah memuat karakter spasi apa adanya. 

DATEFORMAT [AS] \$1'*dateformat\$1string' \$1 'auto*'\$1  <a name="copy-dateformat"></a>
Jika tidak ada DATEFORMAT yang ditentukan, format defaultnya adalah. `'YYYY-MM-DD'` Misalnya, format alternatif yang valid adalah`'MM-DD-YYYY'`.   
Jika perintah COPY tidak mengenali format nilai tanggal atau waktu Anda, atau jika nilai tanggal atau waktu Anda menggunakan format yang berbeda, gunakan `'auto'` argumen dengan parameter DATEFORMAT atau TIMEFORMAT. `'auto'`Argumen mengenali beberapa format yang tidak didukung saat menggunakan string DATEFORMAT dan TIMEFORMAT. Kata kunci `'auto'` 'peka huruf besar/kecil. Untuk informasi selengkapnya, lihat [Menggunakan pengenalan otomatis dengan DATEFORMAT dan TIMEFORMAT](automatic-recognition.md).   
Format tanggal dapat mencakup informasi waktu (jam, menit, detik), tetapi informasi ini diabaikan. Kata kunci AS adalah opsional. Untuk informasi selengkapnya, lihat [string DATEFORMAT dan TIMEFORMATContoh](r_DATEFORMAT_and_TIMEFORMAT_strings.md).

KOSONGNULL   <a name="copy-emptyasnull"></a>
Menunjukkan bahwa Amazon Redshift harus memuat bidang CHAR dan VARCHAR kosong sebagai NULL. Bidang kosong untuk tipe data lain, seperti INT, selalu dimuat dengan NULL. Bidang kosong terjadi ketika data berisi dua pembatas berturut-turut tanpa karakter di antara pembatas. EMTTYASNULL dan NULL AS "(string kosong) menghasilkan perilaku yang sama.

*PENGKODEAN [AS] file\$1encoding*  <a name="copy-encoding"></a>
Menentukan jenis pengkodean data beban. Perintah COPY mengubah data dari pengkodean yang ditentukan menjadi UTF-8 selama pemuatan.   
Nilai yang valid untuk *file\$1encoding* adalah sebagai berikut:  
+ `UTF8`
+ `UTF16`
+ `UTF16LE`
+ `UTF16BE`
+ `ISO88591`
Nilai default-nya `UTF8`.  
Nama file sumber harus menggunakan pengkodean UTF-8.  
File-file berikut harus menggunakan pengkodean UTF-8, bahkan jika pengkodean yang berbeda ditentukan untuk data beban:  
+ File manifes
+ JSONPaths berkas
String argumen yang disediakan dengan parameter berikut harus menggunakan UTF-8:  
+ *FIXEDWIDTH 'fixedwidth\$1spec'*
+ *TERIMA INVCHARS 'replacement\$1char'*
+ *DATEFORMAT 'dateformat\$1string'*
+ *FORMAT WAKTU 'timeformat\$1string'*
+ NULL SEBAGAI '*null\$1string*'
File data dengan lebar tetap harus menggunakan pengkodean UTF-8. Lebar bidang didasarkan pada jumlah karakter, bukan jumlah byte.   
Semua data beban harus menggunakan pengkodean yang ditentukan. Jika COPY menemukan pengkodean yang berbeda, ia melewatkan file dan mengembalikan kesalahan.   
Jika Anda menentukan`UTF16`, maka data Anda harus memiliki tanda urutan byte (BOM). Jika Anda tahu apakah data UTF-16 Anda adalah little-endian (LE) atau big-endian (BE), Anda dapat menggunakan `UTF16LE` atau`UTF16BE`, terlepas dari keberadaan BOM.   
Untuk menggunakan pengkodean ISO-8859-1 tentukan. `ISO88591` *Untuk informasi lebih lanjut, lihat [ISO/IEC 8859-1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) di Wikipedia.*

MELARIKAN DIRI   <a name="copy-escape"></a>
Ketika parameter ini ditentukan, karakter garis miring terbalik (`\`) dalam data input diperlakukan sebagai karakter escape. Karakter yang segera mengikuti karakter garis miring terbalik dimuat ke dalam tabel sebagai bagian dari nilai kolom saat ini, bahkan jika itu adalah karakter yang biasanya melayani tujuan khusus. Misalnya, Anda dapat menggunakan parameter ini untuk menghindari karakter pembatas, tanda kutip, karakter baris baru yang disematkan, atau karakter escape itu sendiri ketika salah satu karakter ini adalah bagian yang sah dari nilai kolom.  
Jika Anda menentukan parameter ESCAPE dalam kombinasi dengan parameter REMOVEQUOTES, Anda dapat melarikan diri dan mempertahankan tanda kutip (`'`atau`"`) yang mungkin dihapus. String null default,`\N`, berfungsi apa adanya, tetapi juga dapat diloloskan dalam data input sebagai. `\\N` Selama Anda tidak menentukan string null alternatif dengan parameter NULL AS, `\N` dan `\\N` menghasilkan hasil yang sama.  
Karakter kontrol `0x00` (NUL) tidak dapat lolos dan harus dihapus dari data input atau dikonversi. Karakter ini diperlakukan sebagai penanda akhir catatan (EOR), menyebabkan sisa catatan terpotong.
Anda tidak dapat menggunakan parameter ESCAPE untuk beban FIXEDWIDTH, dan Anda tidak dapat menentukan karakter escape itu sendiri; karakter escape selalu karakter garis miring terbalik. Selain itu, Anda harus memastikan bahwa data input berisi karakter escape di tempat yang sesuai.  
Berikut adalah beberapa contoh data input dan data yang dimuat yang dihasilkan saat parameter ESCAPE ditentukan. Hasil untuk baris 4 mengasumsikan bahwa parameter REMOVEQUOTES juga ditentukan. Data input terdiri dari dua bidang yang dibatasi pipa:   

```
1|The quick brown fox\[newline]
jumped over the lazy dog.
2| A\\B\\C
3| A \| B \| C
4| 'A Midsummer Night\'s Dream'
```
Data yang dimuat ke kolom 2 terlihat seperti ini:   

```
The quick brown fox
jumped over the lazy dog.
A\B\C
A|B|C
A Midsummer Night's Dream
```
Menerapkan karakter escape ke data input untuk beban adalah tanggung jawab pengguna. Satu pengecualian untuk persyaratan ini adalah ketika Anda memuat ulang data yang sebelumnya dibongkar dengan parameter ESCAPE. Dalam hal ini, data sudah berisi karakter escape yang diperlukan.
Parameter ESCAPE tidak menafsirkan oktal, hex, Unicode, atau notasi urutan escape lainnya. Misalnya, jika data sumber Anda berisi nilai umpan baris oktal (`\012`) dan Anda mencoba memuat data ini dengan parameter ESCAPE, Amazon Redshift memuat `012` nilai ke dalam tabel dan tidak menafsirkan nilai ini sebagai umpan baris yang sedang di-escape.  
Untuk menghindari karakter baris baru dalam data yang berasal dari platform Microsoft Windows, Anda mungkin perlu menggunakan dua karakter escape: satu untuk carriage return dan satu untuk line feed. Atau, Anda dapat menghapus pengembalian carriage sebelum memuat file (misalnya, dengan menggunakan utilitas dos2unix).

EKSPLISIT   <a name="copy-explicit-ids"></a>
Gunakan EXPLICIT\$1IDS dengan tabel yang memiliki kolom IDENTITY jika Anda ingin mengganti nilai yang dibuat secara otomatis dengan nilai eksplisit dari file data sumber untuk tabel. Jika perintah menyertakan daftar kolom, daftar itu harus menyertakan kolom IDENTITY untuk menggunakan parameter ini. Format data untuk nilai EXPLICIT\$1IDS harus cocok dengan format IDENTITY yang ditentukan oleh definisi CREATE TABLE.  
Saat Anda menjalankan perintah COPY terhadap tabel dengan opsi EXPLICIT\$1IDS, Amazon Redshift tidak memeriksa keunikan kolom IDENTITY dalam tabel.  
Jika kolom didefinisikan dengan GENERATED BY DEFAULT AS IDENTITY, maka itu dapat disalin. Nilai dihasilkan atau diperbarui dengan nilai yang Anda berikan. Opsi EXPLICIT\$1IDS tidak diperlukan. COPY tidak memperbarui tanda air identitas tinggi.  
 Untuk contoh perintah COPY menggunakan EXPLICIT\$1IDS, lihat. [Muat VENUE dengan nilai eksplisit untuk kolom IDENTITY](r_COPY_command_examples.md#r_COPY_command_examples-load-venue-with-explicit-values-for-an-identity-column)

FILLRECORD   <a name="copy-fillrecord"></a>
Memungkinkan file data dimuat ketika kolom yang berdekatan hilang di akhir beberapa catatan. Kolom yang hilang dimuat sebagai NULLs. Untuk format teks dan CSV, jika kolom yang hilang adalah kolom VARCHAR, string panjang nol dimuat, bukan. NULLs Untuk memuat NULLs ke kolom VARCHAR dari teks dan CSV, tentukan kata kunci EMPTYASNULL. Substitusi NULL hanya berfungsi jika definisi kolom memungkinkan. NULLs  
Misalnya, jika definisi tabel berisi empat kolom CHAR yang dapat dibatalkan, dan catatan berisi nilai`apple, orange, banana, mango`, perintah COPY dapat memuat dan mengisi catatan yang hanya berisi nilai. `apple, orange` Nilai CHAR yang hilang akan dimuat sebagai nilai NULL.

IGNOREBLANKLINES   <a name="copy-ignoreblanklines"></a>
Mengabaikan baris kosong yang hanya berisi umpan baris dalam file data dan tidak mencoba memuatnya.

*IGNOREHEADER [AS] number\$1rows*   <a name="copy-ignoreheader"></a>
Memperlakukan *number\$1rows* yang ditentukan sebagai header file dan tidak memuatnya. Gunakan IGNOREHEADER untuk melewati header file di semua file dalam beban paralel.

NULL SEBAGAI '*null\$1string*'   <a name="copy-null-as"></a>
Memuat bidang yang cocok dengan *null\$1string* sebagai NULL, di mana *null\$1string* dapat berupa string apa pun. Jika data Anda menyertakan terminator null, juga disebut NUL (UTF-8 0000) atau biner nol (0x000), COPY memperlakukannya sebagai karakter lainnya. Misalnya, rekaman yang berisi '1' \$1\$1 NUL \$1\$1 '2' disalin sebagai string dengan panjang 3 byte. Jika bidang hanya berisi NUL, Anda dapat menggunakan NULL AS untuk mengganti terminator null dengan NULL dengan menentukan `'\0'` atau —misalnya, atau. `'\000'` `NULL AS '\0'` `NULL AS '\000'` Jika bidang berisi string yang berakhir dengan NUL dan NULL AS ditentukan, string dimasukkan dengan NUL di akhir. Jangan gunakan '\$1n' (baris baru) untuk nilai *null\$1string*. Amazon Redshift mencadangkan '\$1n' untuk digunakan sebagai pembatas garis. *Null\$1string* default adalah '. `'\N`  
Jika Anda mencoba memuat null ke dalam kolom yang didefinisikan sebagai NOT NULL, perintah COPY akan gagal.

HAPUSQUOTES   <a name="copy-removequotes"></a>
Hapus tanda kutip yang mengelilingi string pada data yang akan masuk. Semua karakter dalam tanda kutip, termasuk delimiter, dipertahankan. Jika string memiliki tanda kutip tunggal atau ganda awal tetapi tidak ada tanda akhir yang sesuai, perintah COPY gagal memuat baris itu dan mengembalikan kesalahan. Tabel berikut menunjukkan beberapa contoh sederhana dari string yang berisi tanda kutip dan nilai dimuat yang dihasilkan.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/copy-parameters-data-conversion.html)

ROUNDEC   <a name="copy-roundec"></a>
Membulatkan nilai numerik ketika skala nilai input lebih besar dari skala kolom. Secara default, COPY memotong nilai bila perlu agar sesuai dengan skala kolom. Misalnya, jika nilai dimuat ke kolom DECIMAL (8,2), COPY memotong nilainya secara default. `20.259` `20.25` Jika ROUNDEC ditentukan, COPY membulatkan nilainya ke. `20.26` Perintah INSERT selalu membulatkan nilai bila diperlukan untuk mencocokkan skala kolom, sehingga perintah COPY dengan parameter ROUNDEC berperilaku sama seperti perintah INSERT.

TIMEFORMAT [AS] \$1'*timeformat\$1string*' \$1 'auto' \$1 'epochsecs' \$1 'epochmillisecs'\$1  <a name="copy-timeformat"></a>
Menentukan format waktu. Jika tidak ada TIMEFORMAT yang ditentukan, format default adalah `YYYY-MM-DD HH:MI:SS` untuk kolom TIMESTAMP atau `YYYY-MM-DD HH:MI:SSOF` untuk kolom TIMESTAMPTZ, di mana offset dari Coordinated `OF` Universal Time (UTC). Anda tidak dapat menyertakan penentu zona waktu dalam *timeformat\$1string*. Untuk memuat data TIMESTAMPTZ yang dalam format yang berbeda dari format default, tentukan 'auto'; untuk informasi selengkapnya, lihat. [Menggunakan pengenalan otomatis dengan DATEFORMAT dan TIMEFORMAT](automatic-recognition.md) Untuk informasi selengkapnya tentang *timeformat\$1string*, lihat. [string DATEFORMAT dan TIMEFORMATContoh](r_DATEFORMAT_and_TIMEFORMAT_strings.md)  
`'auto'`Argumen mengenali beberapa format yang tidak didukung saat menggunakan string DATEFORMAT dan TIMEFORMAT. Jika perintah COPY tidak mengenali format nilai tanggal atau waktu Anda, atau jika nilai tanggal dan waktu Anda menggunakan format yang berbeda satu sama lain, gunakan `'auto'` argumen dengan parameter DATEFORMAT atau TIMEFORMAT. Untuk informasi selengkapnya, lihat [Menggunakan pengenalan otomatis dengan DATEFORMAT dan TIMEFORMAT](automatic-recognition.md).   
Jika data sumber Anda direpresentasikan sebagai waktu epoch, itu adalah jumlah detik atau milidetik sejak 1 Januari 1970, 00:00:00 UTC, tentukan atau. `'epochsecs'` `'epochmillisecs'`   
Kata kunci `'auto'``'epochsecs'`, dan `'epochmillisecs'` kata kunci peka huruf besar/kecil.  
Kata kunci AS adalah opsional.

TRIMBLANKS   <a name="copy-trimblanks"></a>
Menghapus karakter spasi putih tertinggal dari string VARCHAR. Parameter ini hanya berlaku untuk kolom dengan tipe data VARCHAR.

TRUNCATECOLUMNS   <a name="copy-truncatecolumns"></a>
Potong data dalam kolom sesuai dengan jumlah karakter sehingga cocok dengan spesifikasi kolom. Berlaku hanya pada kolom dengan tipe data VARCHAR atau CHAR, dan baris berukuran 4 MB atau kurang.

# Operasi pemuatan data
<a name="copy-parameters-data-load"></a>

Kelola perilaku default operasi pemuatan untuk pemecahan masalah atau untuk mengurangi waktu muat dengan menentukan parameter berikut. 
+ [COMPROWS](#copy-comprows) 
+ [COMPUPDATE](#copy-compupdate) 
+ [IGNOREALLERRORS](#copy-ignoreallerrors) 
+ [MAXERROR](#copy-maxerror) 
+ [NOLOAD](#copy-noload) 
+ [STATUPDATE](#copy-statupdate) <a name="copy-data-load-parameters"></a>Parameter

*COMPROWS numrows*   <a name="copy-comprows"></a>
Menentukan jumlah baris yang akan digunakan sebagai ukuran sampel untuk analisis kompresi. Analisis dijalankan pada baris dari setiap irisan data. Misalnya, jika Anda menentukan `COMPROWS 1000000` (1.000.000) dan sistem berisi empat irisan total, tidak lebih dari 250.000 baris untuk setiap irisan dibaca dan dianalisis.  
Jika COMPROWS tidak ditentukan, ukuran sampel default menjadi 100.000 untuk setiap irisan. Nilai COMPROWS lebih rendah dari default 100.000 baris untuk setiap irisan secara otomatis ditingkatkan ke nilai default. Namun, kompresi otomatis tidak akan terjadi jika jumlah data yang dimuat tidak cukup untuk menghasilkan sampel yang berarti.  
Jika jumlah COMPROWS lebih besar dari jumlah baris dalam file input, perintah COPY masih melanjutkan dan menjalankan analisis kompresi pada semua baris yang tersedia. Rentang yang diterima untuk argumen ini adalah angka antara 1000 dan 2147483647 (2.147.483.647).

COMPUPDATE [PRESET \$1 \$1ON \$1 TRUE\$1 \$1 \$1OFF \$1 FALSE\$1]  <a name="copy-compupdate"></a>
Mengontrol apakah pengkodean kompresi diterapkan secara otomatis selama COPY.   
Ketika COMPUPDATE PRESET, perintah COPY memilih pengkodean kompresi untuk setiap kolom jika tabel target kosong; bahkan jika kolom sudah memiliki pengkodean selain RAW. Saat ini pengkodean kolom yang ditentukan dapat diganti. Pengkodean untuk setiap kolom didasarkan pada tipe data kolom. Tidak ada data yang diambil sampelnya. Amazon Redshift secara otomatis menetapkan pengkodean kompresi sebagai berikut:  
+ Kolom yang didefinisikan sebagai kunci pengurutan diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai tipe data BOOLEAN, REAL, atau DOUBLE PRECISION diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP, atau TIMESTAMPTZ diberi kompresi. AZ64 
+ Kolom yang didefinisikan sebagai CHAR atau VARCHAR diberi kompresi LZO.
Ketika COMPUPDATE dihilangkan, perintah COPY memilih pengkodean kompresi untuk setiap kolom hanya jika tabel target kosong dan Anda belum menentukan pengkodean (selain RAW) untuk salah satu kolom. Pengkodean untuk setiap kolom ditentukan oleh Amazon Redshift. Tidak ada data yang diambil sampelnya.   
Ketika COMPUPDATE AKTIF (atau TRUE), atau COMPUPDATE ditentukan tanpa opsi, perintah COPY menerapkan kompresi otomatis jika tabel kosong; bahkan jika kolom tabel sudah memiliki pengkodean selain RAW. Saat ini pengkodean kolom yang ditentukan dapat diganti. Pengkodean untuk setiap kolom didasarkan pada analisis data sampel. Untuk informasi selengkapnya, lihat [Memuat tabel dengan kompresi otomatis](c_Loading_tables_auto_compress.md).  
Ketika COMPUPDATE OFF (atau FALSE), kompresi otomatis dinonaktifkan. Pengkodean kolom tidak diubah.  
Untuk informasi tentang tabel sistem untuk menganalisis kompresi, lihat[STL\$1ANALYZE\$1COMPRESSION](r_STL_ANALYZE_COMPRESSION.md). 

IGNOREALLERRORS   <a name="copy-ignoreallerrors"></a>
Anda dapat menentukan opsi ini untuk mengabaikan semua kesalahan yang terjadi selama operasi pemuatan.   
Anda tidak dapat menentukan opsi IGNOREALLERRORS jika Anda menentukan opsi MAXERROR. Anda tidak dapat menentukan opsi IGNOREALLERRORS untuk format kolumnar termasuk ORC dan Parket.

*MAXERROR [AS] error\$1count*   <a name="copy-maxerror"></a>
Jika beban mengembalikan jumlah *kesalahan error\$1count* atau lebih besar, beban gagal. Jika beban mengembalikan lebih sedikit kesalahan, itu berlanjut dan mengembalikan pesan INFO yang menyatakan jumlah baris yang tidak dapat dimuat. Gunakan parameter ini untuk memungkinkan pemuatan berlanjut ketika baris tertentu gagal dimuat ke dalam tabel karena kesalahan pemformatan atau ketidakkonsistenan lainnya dalam data.   
Tetapkan nilai ini ke `0` atau `1` jika Anda ingin beban gagal segera setelah kesalahan pertama terjadi. Kata kunci AS adalah opsional. Nilai default MAXERROR adalah `0` dan batasnya adalah`100000`.  
 Jumlah aktual kesalahan yang dilaporkan mungkin lebih besar daripada MAXERROR yang ditentukan karena sifat paralel Amazon Redshift. Jika ada node di cluster Amazon Redshift yang mendeteksi bahwa MAXERROR telah terlampaui, setiap node melaporkan semua kesalahan yang dialaminya.

NOLOAD   <a name="copy-noload"></a>
Memeriksa validitas file data tanpa benar-benar memuat data. Gunakan parameter NOLOAD untuk memastikan bahwa file data Anda dimuat tanpa kesalahan sebelum menjalankan pemuatan data yang sebenarnya. Menjalankan COPY dengan parameter NOLOAD jauh lebih cepat daripada memuat data karena hanya mem-parsing file.

STATUPDATE [\$1ON \$1 TRUE\$1 \$1 \$1OFF \$1 FALSE\$1]  <a name="copy-statupdate"></a>
Mengatur komputasi otomatis dan penyegaran statistik pengoptimal di akhir perintah COPY yang berhasil. Secara default, jika parameter STATUPDATE tidak digunakan, statistik diperbarui secara otomatis jika tabel awalnya kosong.  
Setiap kali memasukkan data ke dalam tabel nonempty secara signifikan mengubah ukuran tabel, kami sarankan memperbarui statistik baik dengan menjalankan [MENGANALISA](r_ANALYZE.md) perintah atau dengan menggunakan argumen STATUPDATE ON.  
Dengan STATUPDATE ON (atau TRUE), statistik diperbarui secara otomatis terlepas dari apakah tabel awalnya kosong. Jika STATUPDATE digunakan, pengguna saat ini harus pemilik tabel atau superuser. Jika STATUPDATE tidak ditentukan, hanya izin INSERT yang diperlukan.  
Dengan STATUPDATE OFF (atau FALSE), statistik tidak pernah diperbarui.  
Untuk informasi tambahan, lihat [Menganalisis tabel](t_Analyzing_tables.md).

# Daftar parameter abjad
<a name="r_COPY-alphabetical-parm-list"></a>

Daftar berikut menyediakan link ke setiap deskripsi parameter perintah COPY, diurutkan menurut abjad.
+ [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate)
+ [ACCEPTINVCHARS](copy-parameters-data-conversion.md#copy-acceptinvchars)
+ [ACCESS\$1KEY\$1ID, SECRET\$1ACCESS\$1KEY](copy-parameters-authorization.md#copy-access-key-id-access)
+ [AVRO](copy-parameters-data-format.md#copy-avro)
+ [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull)
+ [BZIP2](copy-parameters-file-compression.md#copy-bzip2) 
+ [COMPROWS](copy-parameters-data-load.md#copy-comprows)
+ [COMPUPDATE](copy-parameters-data-load.md#copy-compupdate)
+ [KREDENSIAL](copy-parameters-authorization.md#copy-credentials-cred)
+ [CSV](copy-parameters-data-format.md#copy-csv)
+ [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat)
+ [DELIMITER](copy-parameters-data-format.md#copy-delimiter)
+ [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull)
+ [ENCODING](copy-parameters-data-conversion.md#copy-encoding)
+ [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted)
+ [ESCAPE](copy-parameters-data-conversion.md#copy-escape)
+ [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids)
+ [FILLRECORD](copy-parameters-data-conversion.md#copy-fillrecord)
+ [FIXEDWIDTH](copy-parameters-data-format.md#copy-fixedwidth)
+ [FORMAT](copy-parameters-data-format.md#copy-format)
+ [FROM](copy-parameters-data-source-s3.md#copy-parameters-from)
+ [GZIP](copy-parameters-file-compression.md#copy-gzip)
+ [IAM\$1ROLE](copy-parameters-authorization.md#copy-iam-role-iam)
+ [IGNOREALLERRORS](copy-parameters-data-load.md#copy-ignoreallerrors)
+ [IGNOREBLANKLINES](copy-parameters-data-conversion.md#copy-ignoreblanklines)
+ [IGNOREHEADER](copy-parameters-data-conversion.md#copy-ignoreheader)
+ [JSON format for COPY](copy-parameters-data-format.md#copy-json)
+ [LZOP](copy-parameters-file-compression.md#copy-lzop)
+ [MANIFEST](copy-parameters-data-source-s3.md#copy-manifest)
+ [MASTER_SYMMETRIC_KEY](copy-parameters-data-source-s3.md#copy-master-symmetric-key)
+ [MAXERROR](copy-parameters-data-load.md#copy-maxerror)
+ [NOLOAD](copy-parameters-data-load.md#copy-noload)
+ [NULL AS](copy-parameters-data-conversion.md#copy-null-as)
+ [READRATIO](copy-parameters-data-source-dynamodb.md#copy-readratio)
+ [REGION](copy-parameters-data-source-s3.md#copy-region)
+ [REMOVEQUOTES](copy-parameters-data-conversion.md#copy-removequotes)
+ [ROUNDEC](copy-parameters-data-conversion.md#copy-roundec)
+ [SESSION\$1TOKEN](copy-parameters-authorization.md#copy-token)
+ [SHAPEFILE](copy-parameters-data-format.md#copy-shapefile)
+ [SSH](copy-parameters-data-source-ssh.md#copy-ssh)
+ [STATUPDATE](copy-parameters-data-load.md#copy-statupdate)
+ [TIMEFORMAT](copy-parameters-data-conversion.md#copy-timeformat)
+ [TRIMBLANKS](copy-parameters-data-conversion.md#copy-trimblanks)
+ [TRUNCATECOLUMNS](copy-parameters-data-conversion.md#copy-truncatecolumns)
+ [ZSTD](copy-parameters-file-compression.md#copy-zstd)