

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

# Gunakan tingkat kompresi ZSTD
<a name="compression-support-zstd-levels"></a>

[Algoritma kompresi data real-time Zstandard adalah algoritma](http://facebook.github.io/zstd/) kompresi cepat yang memberikan rasio kompresi tinggi. Perpustakaan Zstandard (ZSTD) adalah perangkat lunak open source dan menggunakan lisensi BSD. Athena mendukung membaca dan menulis data file ORC, Parket, dan teks terkompresi ZSTD.

Anda dapat menggunakan tingkat kompresi ZSTD untuk menyesuaikan rasio kompresi dan kecepatan sesuai dengan kebutuhan Anda. Pustaka ZSTD mendukung tingkat kompresi dari 1 hingga 22. Athena menggunakan kompresi ZSTD level 3 secara default.

Tingkat kompresi memberikan trade-off granular antara kecepatan kompresi dan jumlah kompresi yang dicapai. Tingkat kompresi yang lebih rendah memberikan kecepatan yang lebih cepat tetapi ukuran file yang lebih besar. Misalnya, Anda dapat menggunakan level 1 jika kecepatan paling penting dan level 22 jika ukuran paling penting. Level 3 cocok untuk banyak kasus penggunaan dan merupakan default. Gunakan level yang lebih besar dari 19 dengan hati-hati karena membutuhkan lebih banyak memori. Pustaka ZSTD juga menawarkan tingkat kompresi negatif yang memperluas jangkauan kecepatan dan rasio kompresi. Untuk informasi lebih lanjut, lihat [Zstandard Compression RFC](https://datatracker.ietf.org/doc/html/rfc8478).

Kelimpahan tingkat kompresi menawarkan peluang besar untuk fine tuning. Namun, pastikan Anda mengukur data Anda dan mempertimbangkan pengorbanan saat memutuskan tingkat kompresi. Sebaiknya gunakan level default 3 atau level dalam kisaran 6 hingga 9 untuk pertukaran yang wajar antara kecepatan kompresi dan ukuran data terkompresi. Tingkat cadangan 20 dan lebih besar untuk kasus di mana ukuran paling penting dan kecepatan kompresi tidak menjadi perhatian.

## Pertimbangan dan batasan
<a name="compression-support-zstd-levels-considerations-and-limitations"></a>

Saat menggunakan tingkat kompresi ZSTD di Athena, pertimbangkan hal-hal berikut.
+ `compression_level`Properti ZSTD hanya didukung di mesin Athena versi 3.
+ `compression_level`Properti ZSTD didukung untuk`ALTER TABLE`,, `CREATE TABLE AS` (CTAS)`CREATE TABLE`, dan pernyataan. `UNLOAD`
+ `compression_level`Properti ini opsional.
+ `compression_level`Properti ini didukung hanya untuk kompresi ZSTD.
+ Tingkat kompresi yang mungkin adalah 1 hingga 22.
+ Tingkat kompresi default adalah 3.

Untuk informasi tentang dukungan kompresi Apache Hive ZSTD di Athena, lihat. [Gunakan kompresi tabel Hive](compression-support-hive.md) Untuk informasi tentang dukungan kompresi Apache Iceberg ZSTD di Athena, lihat. [Gunakan kompresi tabel Iceberg](compression-support-iceberg.md)

## Tentukan tingkat kompresi ZSTD
<a name="compression-support-zstd-levels-specifying"></a>

Untuk menentukan tingkat kompresi ZSTD untuk`ALTER TABLE`,, `CREATE TABLE``CREATE TABLE AS`, dan `UNLOAD` pernyataan, gunakan properti. `compression_level` Untuk menentukan kompresi ZSTD itu sendiri, Anda harus menggunakan properti kompresi individual yang digunakan sintaks untuk pernyataan tersebut.

### MENGUBAH TABEL SET TBLPROPERTIES
<a name="compression-support-zstd-levels-alter-table"></a>

Dalam `SET TBLPROPERTIES` klausa [ALTER TABLE SET TBLPROPERTIES](alter-table-set-tblproperties.md) pernyataan, tentukan kompresi ZSTD menggunakan atau. `'write.compression' = ' ZSTD'` `'parquet.compression' = 'ZSTD'` Kemudian gunakan `compression_level` properti untuk menentukan nilai dari 1 hingga 22 (misalnya, '`compression_level' = '5'`). Jika Anda tidak menentukan properti tingkat kompresi, tingkat kompresi default ke 3.

#### Contoh
<a name="compression-support-zstd-levels-alter-table-example"></a>

Contoh berikut memodifikasi tabel `existing_table` untuk menggunakan format file Parket dengan kompresi ZSTD dan tingkat kompresi ZSTD 4. Perhatikan bahwa dalam `TBLPROPERTIES` klausa nilai tingkat kompresi harus dimasukkan sebagai string bukan bilangan bulat dan oleh karena itu harus diapit dalam tanda kutip tunggal atau ganda.

```
ALTER TABLE existing_table 
SET TBLPROPERTIES ('parquet.compression' = 'ZSTD', 'compression_level' = '4')
```

### CREATE TABLE
<a name="compression-support-zstd-levels-create-table"></a>

Dalam `TBLPROPERTIES` klausa [CREATE TABLE](create-table.md) pernyataan, tentukan '`write.compression' = 'ZSTD'`atau`'parquet.compression' = 'ZSTD'`, lalu gunakan `compression_level = {{compression_level}}` dan tentukan nilai dari 1 hingga 22 sebagai string. Jika `compression_level` properti tidak ditentukan, tingkat kompresi default adalah 3.

#### Contoh
<a name="compression-support-zstd-levels-create-table-example"></a>

Contoh berikut membuat tabel dalam format file Parket menggunakan kompresi ZSTD dan tingkat kompresi ZSTD 4. 

```
CREATE EXTERNAL TABLE new_table ( 
  `col0` string COMMENT '', 
  `col1` string COMMENT '' 
) 
STORED AS PARQUET 
LOCATION 's3://amzn-s3-demo-bucket/' 
TBLPROPERTIES ('write.compression' = 'ZSTD', 'compression_level' = '4')
```

### BUAT TABEL SEBAGAI (CTAS)
<a name="compression-support-zstd-levels-ctas"></a>

Dalam `WITH` klausa [CREATE TABLE AS](create-table-as.md) pernyataan, tentukan`write_compression = 'ZSTD'`, atau`parquet_compression = 'ZSTD'`, lalu gunakan `compression_level = {{compression_level}}` dan tentukan nilai dari 1 hingga 22 sebagai bilangan bulat. Jika `compression_level` properti tidak ditentukan, tingkat kompresi default adalah 3.

#### Contoh
<a name="compression-support-zstd-levels-ctas-example"></a>

Contoh CTAS berikut menentukan Parket sebagai format file menggunakan kompresi ZSTD dengan tingkat kompresi 4. Perhatikan bahwa, dalam `WITH` klausa, nilai untuk tingkat kompresi harus ditentukan sebagai bilangan bulat, bukan sebagai string.

```
CREATE TABLE new_table  
WITH ( format = 'PARQUET', write_compression = 'ZSTD', compression_level = 4)  
AS SELECT * FROM old_table
```

### MEMBONGKAR
<a name="compression-support-zstd-levels-unload"></a>

Dalam `WITH` klausa [MEMBONGKAR](unload.md) pernyataan, tentukan`compression = 'ZSTD'`, lalu gunakan `compression_level = {{compression_level}}` dan tentukan nilai dari 1 hingga 22 sebagai bilangan bulat. Jika `compression_level` properti tidak ditentukan, tingkat kompresi default adalah 3.

#### Contoh
<a name="compression-support-zstd-levels-unload-example"></a>

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)
```