Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de niveles de compresión de ZSTD

Modo de enfoque
Uso de niveles de compresión de ZSTD - Amazon Athena

El algoritmo de compresión de datos en tiempo real Zstandard es un algoritmo de compresión rápida que proporciona relaciones de compresión elevadas. La biblioteca Zstandard (ZSTD) es software de código abierto y utiliza una licencia BSD. Athena es compatible con la lectura y la escritura de datos de archivos de texto, Parquet y ORC comprimidos con ZSTD.

Puede utilizar los niveles de compresión ZSTD para ajustar la relación y velocidad de compresión de acuerdo con sus requisitos. La biblioteca ZSTD admite niveles de compresión comprendidos entre 1 y 22. Athena utiliza el nivel 3 de compresión ZSTD de manera predeterminada.

Los niveles de compresión permiten conseguir un equilibrio preciso entre la velocidad de compresión y la cantidad de compresión lograda. Los niveles de compresión más bajos proporcionan más velocidad, pero también tamaños de archivo más mayores. Por ejemplo, se puede utilizar el nivel 1 si la velocidad es la prioridad, y el nivel 22 si el tamaño es lo más importante. El nivel 3 es adecuado para muchos casos de uso, y es el predeterminado. Utilice los niveles superiores a 19 con precaución, ya que requieren más memoria. La biblioteca ZSTD también ofrece niveles de compresión negativos que amplían el intervalo de velocidades y relaciones de compresión. Para obtener más información, consulte el documento RFC sobre compresión Zstandard.

La abundancia de niveles de compresión ofrece importantes posibilidades de realizar ajustes precisos. No obstante, asegúrese de medir los datos y tener en cuenta las ventajas y desventajas a la hora de decidir el nivel de compresión. Se recomienda utilizar el nivel predeterminado 3 o un nivel comprendido entre 6 y 9 para lograr un equilibrio razonable entre la velocidad de compresión y el tamaño de los datos comprimidos. Reserve los niveles de 20 y posteriores para aquellos casos en que el tamaño sea lo más importante y la velocidad de compresión no suponga un problema.

Consideraciones y limitaciones

Cuando utilice los niveles de compresión ZSTD en Athena, tenga en cuenta los siguientes puntos.

  • La propiedad compression_level de ZSTD solo es compatible con la versión 3 del motor Athena.

  • La propiedad compression_level de ZSTD es compatible con las instrucciones ALTER TABLE, CREATE TABLE y CREATE TABLE AS (CTAS), y UNLOAD.

  • La propiedad compression_level es opcional.

  • La propiedad compression_level solo es compatible con la compresión ZSTD.

  • Los niveles de compresión posibles están comprendidos entre 1 y 22.

  • El nivel de compresión predeterminado es 3.

Para obtener información sobre la compatibilidad de compresión para Apache Hive ZSTD en Athena, consulte Uso de compresión de tablas de Hive. Para obtener información sobre la compatibilidad de compresión para Apache Iceberg ZSTD en Athena, consulte Uso de la compresión de tablas de Iceberg.

Especificación de los niveles de compresión de ZSTD

Para especificar el nivel de compresión ZSTD de las instrucciones ALTER TABLE, CREATE TABLE, CREATE TABLE AS y UNLOAD, utilice la propiedad compression_level. Para especificar la compresión ZSTD propiamente dicha, debe utilizar la propiedad de compresión individual que utilice la sintaxis de la instrucción.

En la cláusula SET TBLPROPERTIES de la instrucción ALTER TABLE SET TBLPROPERTIES, especifique la compresión ZSTD mediante 'write.compression' = ' ZSTD' o 'parquet.compression' = 'ZSTD'. Después, utilice la propiedad compression_level para especificar un valor comprendido entre 1 y 22 (por ejemplo, 'compression_level' = '5'). Si no especifica ninguna propiedad de nivel de compresión, el nivel de compresión se establece en 3 de manera predeterminada.

Ejemplo

En el siguiente ejemplo se modifica la tabla existing_table para que utilice el formato de archivo Parquet con compresión ZSTD y nivel 4 de compresión ZSTD. En la cláusula TBLPROPERTIES, el valor del nivel de compresión debe introducirse como una cadena y no como un entero y, por lo tanto, debe introducirse entre comillas simples o dobles.

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

En la cláusula SET TBLPROPERTIES de la instrucción ALTER TABLE SET TBLPROPERTIES, especifique la compresión ZSTD mediante 'write.compression' = ' ZSTD' o 'parquet.compression' = 'ZSTD'. Después, utilice la propiedad compression_level para especificar un valor comprendido entre 1 y 22 (por ejemplo, 'compression_level' = '5'). Si no especifica ninguna propiedad de nivel de compresión, el nivel de compresión se establece en 3 de manera predeterminada.

Ejemplo

En el siguiente ejemplo se modifica la tabla existing_table para que utilice el formato de archivo Parquet con compresión ZSTD y nivel 4 de compresión ZSTD. En la cláusula TBLPROPERTIES, el valor del nivel de compresión debe introducirse como una cadena y no como un entero y, por lo tanto, debe introducirse entre comillas simples o dobles.

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

En la cláusula TBLPROPERTIES de la instrucción CREATE TABLE, especifique 'write.compression' = 'ZSTD' o 'parquet.compression' = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como una cadena. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo se crea una tabla con formato de archivo Parquet mediante compresión ZSTD y el nivel 4 de compresión ZSTD.

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

En la cláusula TBLPROPERTIES de la instrucción CREATE TABLE, especifique 'write.compression' = 'ZSTD' o 'parquet.compression' = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como una cadena. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo se crea una tabla con formato de archivo Parquet mediante compresión ZSTD y el nivel 4 de compresión ZSTD.

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

En la cláusula WITH de la instrucción CREATE TABLE AS, especifique write_compression = 'ZSTD' o parquet_compression = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como un entero. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo de CTAS se especifica Parquet como formato de archivo mediante compresión ZSTD con un nivel de compresión 4. En la cláusula WITH, el valor del nivel de compresión debe especificarse como un entero, no como una cadena.

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

En la cláusula WITH de la instrucción CREATE TABLE AS, especifique write_compression = 'ZSTD' o parquet_compression = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como un entero. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo de CTAS se especifica Parquet como formato de archivo mediante compresión ZSTD con un nivel de compresión 4. En la cláusula WITH, el valor del nivel de compresión debe especificarse como un entero, no como una cadena.

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

En la cláusula WITH de la instrucción UNLOAD, especifique compression = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como un entero. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo se descargan los resultados de la consulta en la ubicación especificada mediante el formato de archivo Parquet, compresión ZSTD y el nivel 4 de compresión ZSTD.

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

En la cláusula WITH de la instrucción UNLOAD, especifique compression = 'ZSTD' y, a continuación, utilice compression_level = compression_level y especifique un valor comprendido entre 1 y 22 como un entero. Si no se especifica la propiedad compression_level, el nivel de compresión predeterminado es 3.

Ejemplo

En el siguiente ejemplo se descargan los resultados de la consulta en la ubicación especificada mediante el formato de archivo Parquet, compresión ZSTD y el nivel 4 de compresión ZSTD.

UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/' WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.