Gunakan tingkat ZSTD kompresi - Amazon Athena

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

Gunakan tingkat ZSTD kompresi

Algoritma kompresi data real-time Zstandard adalah algoritma kompresi cepat yang memberikan rasio kompresi tinggi. Pustaka Zstandard (ZSTD) adalah perangkat lunak open source dan menggunakan BSD lisensi. Athena mendukung membaca dan menulis data file ZSTD terkompresiORC, Parket, dan teks.

Anda dapat menggunakan tingkat ZSTD kompresi untuk menyesuaikan rasio kompresi dan kecepatan sesuai dengan kebutuhan Anda. ZSTDPustaka mendukung tingkat kompresi dari 1 hingga 22. Athena menggunakan tingkat ZSTD kompresi 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. ZSTDPerpustakaan juga menawarkan tingkat kompresi negatif yang memperluas jangkauan kecepatan dan rasio kompresi. Untuk informasi lebih lanjut, lihat Kompresi RFC Zstandard.

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

Saat menggunakan tingkat ZSTD kompresi di Athena, pertimbangkan hal-hal berikut.

  • ZSTDcompression_levelProperti ini hanya didukung di mesin Athena versi 3.

  • ZSTDcompression_levelProperti didukung untukALTER TABLE,CREATE TABLE, CREATE TABLE AS (CTAS), dan UNLOAD pernyataan.

  • compression_levelProperti ini opsional.

  • compression_levelProperti hanya didukung untuk ZSTD kompresi.

  • Tingkat kompresi yang mungkin adalah 1 hingga 22.

  • Tingkat kompresi default adalah 3.

Untuk informasi tentang dukungan ZSTD kompresi Apache Hive di Athena, lihat. Gunakan kompresi tabel Hive Untuk informasi tentang dukungan ZSTD kompresi Apache Iceberg di Athena, lihat. Gunakan kompresi tabel Iceberg

Tentukan tingkat ZSTD kompresi

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

Dalam SET TBLPROPERTIES klausa ALTER TABLE SET TBLPROPERTIES pernyataan, tentukan ZSTD kompresi menggunakan 'write.compression' = ' ZSTD' atau'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

Contoh berikut memodifikasi tabel existing_table untuk menggunakan format file Parket dengan tingkat ZSTD kompresi dan ZSTD kompresi 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')

Dalam TBLPROPERTIES klausa CREATE TABLE 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

Contoh berikut membuat tabel dalam format file Parket menggunakan ZSTD kompresi dan tingkat ZSTD kompresi 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')

Dalam WITH klausa CREATE TABLE AS pernyataan, tentukanwrite_compression = 'ZSTD', atauparquet_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

CTASContoh berikut menentukan Parket sebagai format file menggunakan ZSTD kompresi 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

Dalam WITH klausa UNLOAD pernyataan, tentukancompression = '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

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

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