Usa i livelli di ZSTD compressione - Amazon Athena

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 è un algoritmo di compressione veloce che fornisce rapporti di compressione elevati. La libreria Zstandard (ZSTD) è un software open source e utilizza una BSD licenza. Athena supporta la lettura e la scrittura di dati ZSTD compressiORC, Parquet e di file di testo.

È 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. RFC

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 le UNLOAD istruzioni ALTER TABLECREATE 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 TABLECREATE 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 = compression_level e specificare un valore compreso tra 1 e 22 come stringa. Se la proprietà 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 = compression_level e specificare un valore compreso tra 1 e 22 come numero intero. Se la proprietà 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 = compression_level e specificare un valore compreso tra 1 e 22 come numero intero. Se la proprietà 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)