

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

# MEMBONGKAR
<a name="unload"></a>

Menulis hasil kueri dari `SELECT` pernyataan ke format data yang ditentukan. Format yang didukung untuk `UNLOAD` termasuk Apache Parquet, ORC, Apache Avro, dan JSON. CSV adalah satu-satunya format output yang didukung oleh perintah `SELECT` Athena, tetapi Anda dapat menggunakan `UNLOAD` perintah, yang mendukung berbagai format output, untuk melampirkan kueri `SELECT` Anda dan menulis ulang outputnya ke salah satu format yang mendukung. `UNLOAD` 

Meskipun Anda dapat menggunakan pernyataan `CREATE TABLE AS` (CTAS) untuk mengeluarkan data dalam format selain CSV, pernyataan CTAS memerlukan pembuatan tabel di Athena. `UNLOAD`Pernyataan ini berguna ketika Anda ingin menampilkan hasil `SELECT` kueri dalam format non-CSV tetapi tidak ingin tabel terkait. Misalnya, aplikasi hilir mungkin memerlukan hasil `SELECT` kueri dalam format JSON, dan Parquet atau ORC mungkin memberikan keunggulan kinerja dibandingkan CSV jika Anda bermaksud menggunakan hasil kueri untuk analisis tambahan. `SELECT`

## Pertimbangan dan batasan
<a name="unload-considerations-and-limitations"></a>

Saat Anda menggunakan `UNLOAD` pernyataan di Athena, ingatlah poin-poin berikut:
+ **Tidak ada urutan global file** — `UNLOAD` hasilnya ditulis ke beberapa file secara paralel. Jika `SELECT` kueri dalam `UNLOAD` pernyataan menentukan urutan pengurutan, isi setiap file dalam urutan diurutkan, tetapi file tidak diurutkan relatif satu sama lain.
+ **Data yatim piatu tidak dihapus** — Jika terjadi kegagalan, Athena tidak berusaha menghapus data yatim piatu. Perilaku ini sama dengan CTAS dan `INSERT INTO` pernyataan.
+ **Partisi maksimum** — Jumlah maksimum partisi yang dapat digunakan `UNLOAD` adalah 100.
+ File **metadata dan manifes — Athena menghasilkan file** metadata dan file manifes data untuk setiap kueri. `UNLOAD` Manifest melacak file yang kueri menulis. Kedua file disimpan ke lokasi hasil kueri Athena Anda di Amazon S3. Untuk informasi selengkapnya, lihat [Identifikasi file keluaran kueri](querying-finding-output-files.md#querying-identifying-output-files).
+ **Enkripsi** — file `UNLOAD` output dienkripsi sesuai dengan konfigurasi enkripsi yang digunakan untuk Amazon S3. Untuk mengatur konfigurasi enkripsi untuk mengenkripsi `UNLOAD` hasil Anda, Anda dapat menggunakan [EncryptionConfiguration API](https://docs.aws.amazon.com/athena/latest/APIReference/API_EncryptionConfiguration.html).
+ **Pernyataan yang disiapkan** - `UNLOAD` dapat digunakan dengan pernyataan yang disiapkan. Untuk informasi tentang pernyataan yang disiapkan di Athena, lihat. [Gunakan kueri berparameter](querying-with-prepared-statements.md)
+ **Kuota layanan** - `UNLOAD` menggunakan kuota kueri DML. Untuk informasi kuota, lihat[Service Quotas](service-limits.md).
+ **Pemilik bucket** yang diharapkan — Pengaturan pemilik bucket yang diharapkan tidak berlaku untuk lokasi Amazon S3 tujuan yang ditentukan dalam kueri. `UNLOAD` Setelan pemilik bucket yang diharapkan hanya berlaku untuk lokasi keluaran Amazon S3 yang Anda tentukan untuk hasil kueri Athena. Untuk informasi selengkapnya, lihat [Tentukan lokasi hasil kueri menggunakan konsol Athena](query-results-specify-location-console.md).

## Sintaksis
<a name="unload-syntax"></a>

`UNLOAD`Pernyataan ini menggunakan sintaks berikut.

```
UNLOAD (SELECT col_name[, ...] FROM old_table) 
TO 's3://amzn-s3-demo-bucket/my_folder/' 
WITH ( property_name = 'expression' [, ...] )
```

Kecuali saat menulis ke partisi, `TO` tujuan harus menentukan lokasi di Amazon S3 yang tidak memiliki data. Sebelum `UNLOAD` kueri menulis ke lokasi yang ditentukan, kueri memverifikasi bahwa lokasi bucket kosong. Karena `UNLOAD` tidak menulis data ke lokasi yang ditentukan jika lokasi sudah memiliki data di dalamnya, `UNLOAD` tidak menimpa data yang ada. Untuk menggunakan kembali lokasi bucket sebagai tujuan`UNLOAD`, hapus data di lokasi bucket, lalu jalankan kueri lagi. 

Perhatikan bahwa ketika `UNLOAD` menulis ke partisi, perilaku ini berbeda. Jika Anda menjalankan `UNLOAD` kueri yang sama beberapa kali yang memiliki `SELECT` pernyataan yang sama, `TO` lokasi yang sama, dan partisi yang sama, setiap `UNLOAD` kueri akan membongkar data ke Amazon S3 di lokasi dan partisi yang ditentukan.

### Parameter
<a name="unload-parameters"></a>

Nilai yang mungkin untuk *property\$1name* adalah sebagai berikut.

** format = '*file\$1format*' **  
Wajib. Menentukan format file output. Nilai yang mungkin untuk *file\$1format* adalah `ORC``PARQUET`,`AVRO`,`JSON`, atau`TEXTFILE`.

** kompresi = '*compression\$1format*' **  
Tidak wajib. Opsi ini khusus untuk format ORC dan Parket. Untuk ORC, defaultnya adalah`zlib`, dan untuk Parket, defaultnya adalah. `gzip` Untuk informasi tentang format kompresi yang didukung, lihat Dukungan [kompresi Athena](https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html).   
Opsi ini tidak berlaku untuk `AVRO` format. Athena menggunakan `gzip` untuk `JSON` dan `TEXTFILE` format.

**kompresi\$1level = *compression\$1level* **  
Tidak wajib. Tingkat kompresi yang digunakan untuk kompresi ZSTD. Properti ini hanya berlaku untuk kompresi ZSTD. Untuk informasi selengkapnya, lihat [Gunakan tingkat kompresi ZSTD](compression-support-zstd-levels.md).

** field\$1delimiter = '' *delimiter* **  
Tidak wajib. Menentukan pembatas bidang karakter tunggal untuk file dalam CSV, TSV, dan format teks lainnya. Contoh berikut menentukan pembatas koma.  

```
WITH (field_delimiter = ',')
```
Saat ini, pembatas bidang multikarakter tidak didukung. Jika Anda tidak menentukan pembatas bidang, karakter oktal `\001` (^A) digunakan.

** partitioned\$1by = ARRAY [[,...]*col\$1name*] **  
Tidak wajib. Daftar array kolom dimana output dipartisi.  
Dalam `SELECT` pernyataan Anda, pastikan bahwa nama-nama kolom yang dipartisi terakhir dalam daftar kolom Anda. 

## Contoh
<a name="unload-examples"></a>

Contoh berikut menulis output dari `SELECT` query ke lokasi Amazon S3 `s3://amzn-s3-demo-bucket/unload_test_1/` menggunakan format JSON.

```
UNLOAD (SELECT * FROM old_table) 
TO 's3://amzn-s3-demo-bucket/unload_test_1/' 
WITH (format = 'JSON')
```

Contoh berikut menulis output dari `SELECT` query dalam format Parquet menggunakan kompresi Snappy.

```
UNLOAD (SELECT * FROM old_table) 
TO 's3://amzn-s3-demo-bucket/' 
WITH (format = 'PARQUET',compression = 'SNAPPY')
```

Contoh berikut menulis empat kolom dalam format teks, dengan output dipartisi oleh kolom terakhir.

```
UNLOAD (SELECT name1, address1, comment1, key1 FROM table1) 
TO 's3://amzn-s3-demo-bucket/ partitioned/' 
WITH (format = 'TEXTFILE', partitioned_by = ARRAY['key1'])
```

Contoh berikut membongkar hasil query ke lokasi yang ditentukan menggunakan format file Parquet, kompresi ZSTD, dan tingkat kompresi ZSTD 4.

```
UNLOAD (SELECT * FROM old_table) 
TO 's3://amzn-s3-demo-bucket/' 
WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)
```

## Sumber daya tambahan
<a name="unload-additional-resources"></a>
+ [Sederhanakan pipeline ETL dan ML Anda menggunakan fitur Amazon Athena UNLOAD](https://aws.amazon.com/blogs/big-data/simplify-your-etl-and-ml-pipelines-using-the-amazon-athena-unload-feature/) *di Big Data Blog.AWS * 