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
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.
-
ZSTD
compression_level
Properti ini hanya didukung di mesin Athena versi 3. -
ZSTD
compression_level
Properti didukung untukALTER TABLE
,CREATE TABLE
,CREATE TABLE AS
(CTAS), danUNLOAD
pernyataan. -
compression_level
Properti ini opsional. -
compression_level
Properti 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 =
dan tentukan nilai dari 1 hingga 22 sebagai string. Jika compression_level
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
=
dan tentukan nilai dari 1 hingga 22 sebagai bilangan bulat. Jika compression_level
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 =
dan tentukan nilai dari 1 hingga 22 sebagai bilangan bulat. Jika compression_level
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)