Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa i livelli di ZSTD compressione
L'algoritmo di compressione dei dati in tempo reale Zstandard
È possibile utilizzare i livelli di ZSTD compressione per regolare il rapporto di compressione e la velocità in base alle proprie esigenze. La ZSTD libreria supporta livelli di compressione da 1 a 22. Athena utilizza il livello di ZSTD compressione 3 per impostazione predefinita.
I livelli di compressione forniscono compromessi granulari tra la velocità di compressione e la quantità di compressione raggiunta. Livelli di compressione più bassi offrono una maggiore velocità ma file di dimensioni maggiori. Ad esempio, puoi usare il livello 1 se la velocità è più importante e il livello 22 se invece è più importante la dimensione. Il livello 3 è adatto a numerosi casi d'uso ed è l'impostazione predefinita. Usa i livelli superiori a 19 con cautela poiché richiedono più memoria. La ZSTD libreria offre anche livelli di compressione negativi che estendono la gamma di velocità e rapporti di compressione. Per ulteriori informazioni, consultate Zstandard Compression
L'abbondanza di livelli di compressione offre notevoli opportunità per una regolazione precisa. Tuttavia, quando decidi il livello di compressione assicurati di misurare i tuoi dati e di prendere in considerazione dei compromessi. Si consiglia di utilizzare il livello predefinito 3 o un livello compreso tra 6 e 9 per un ragionevole compromesso tra velocità di compressione e dimensione dei dati compressi. Utilizza i livelli pari o superiori a 20 per i casi in cui le dimensioni sono più importanti e la velocità di compressione non è un problema.
Considerazioni e limitazioni
Quando usi il livello di ZSTD compressione in Athena, considera i seguenti punti.
-
La ZSTD
compression_level
proprietà è supportata solo nella versione 3 del motore Athena. -
La ZSTD
compression_level
proprietà è supportata per leUNLOAD
istruzioniALTER TABLE
CREATE TABLE
,,CREATE TABLE AS
(CTAS) e. -
La proprietà
compression_level
è facoltativa. -
La
compression_level
proprietà è supportata solo per ZSTD la compressione. -
I livelli di compressione possibili sono compresi tra 1 e 22.
-
Il livello di compressione predefinito è 3.
Per informazioni sul supporto alla ZSTD compressione Apache Hive in Athena, vedere. Usa la compressione delle tabelle Hive Per informazioni sul supporto alla ZSTD compressione di Apache Iceberg in Athena, vedere. Usa la compressione della tabella Iceberg
Specificare i livelli di compressione ZSTD
Per specificare il livello di ZSTD compressione per le UNLOAD
istruzioni ALTER TABLE
CREATE
TABLE
,CREATE TABLE AS
, e,, utilizzate la compression_level
proprietà. Per specificare ZSTD la compressione stessa, è necessario utilizzare la proprietà di compressione individuale utilizzata dalla sintassi dell'istruzione.
Nella SET
TBLPROPERTIES
clausola dell'ALTER TABLE SET
TBLPROPERTIESistruzione, specificate ZSTD la compressione utilizzando 'write.compression' = ' ZSTD'
o. 'parquet.compression' =
'ZSTD'
Quindi utilizza la proprietà compression_level
per specificare un valore compreso tra 1 e 22 (ad esempio, 'compression_level' = '5'
). Se non si specifica una proprietà del livello di compressione, il livello di compressione predefinito sarà 3.
Esempio
L'esempio seguente modifica la tabella existing_table
per utilizzare il formato di file Parquet con livello di ZSTD compressione e ZSTD compressione 4. Si noti che nella TBLPROPERTIES
clausola il valore del livello di compressione deve essere immesso come stringa anziché come numero intero e pertanto deve essere racchiuso tra virgolette singole o doppie.
ALTER TABLE existing_table SET TBLPROPERTIES ('parquet.compression' = 'ZSTD', 'compression_level' = '4')
Nella TBLPROPERTIES
clausola di CREATE TABLE dichiarazione, specificare 'write.compression' =
'ZSTD'
or'parquet.compression' = 'ZSTD'
, quindi utilizzare compression_level =
e specificare un valore compreso tra 1 e 22 come stringa. Se la proprietà compression_level
compression_level
non viene specificata, il livello di compressione predefinito sarà 3.
Esempio
L'esempio seguente crea una tabella nel formato di file Parquet utilizzando il livello di ZSTD compressione e ZSTD compressione 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')
Nella WITH
clausola di CREATE TABLE AS dichiarazione, specificare o write_compression = 'ZSTD'
parquet_compression = 'ZSTD'
, quindi utilizzare compression_level
=
e specificare un valore compreso tra 1 e 22 come numero intero. Se la proprietà compression_level
compression_level
non viene specificata, il livello di compressione predefinito sarà 3.
Esempio
L'CTASesempio seguente specifica Parquet come formato di file utilizzando la ZSTD compressione con livello di compressione 4. Si noti che, nella WITH
clausola, il valore del livello di compressione deve essere specificato come numero intero, non come stringa.
CREATE TABLE new_table WITH ( format = 'PARQUET', write_compression = 'ZSTD', compression_level = 4) AS SELECT * FROM old_table
Nella WITH
clausola di UNLOAD dichiarazione, specificarecompression = 'ZSTD'
, quindi utilizzare compression_level =
e specificare un valore compreso tra 1 e 22 come numero intero. Se la proprietà compression_level
compression_level
non viene specificata, il livello di compressione predefinito sarà 3.
Esempio
L'esempio seguente scarica i risultati della query nella posizione specificata utilizzando il formato di file Parquet, ZSTD la compressione e il livello di compressione 4ZSTD.
UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/' WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)