Optimización de las tablas de Iceberg - Amazon Athena

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Optimización de las tablas de Iceberg

A medida que los datos se acumulan en una tabla de Iceberg, las consultas se vuelven gradualmente menos eficientes debido al aumento del tiempo de procesamiento necesario para abrir los archivos. Se incurre en un costo computacional adicional si la tabla contiene archivos de eliminación. En Iceberg, los archivos de eliminación almacenan las filas eliminadas, y el motor debe aplicar las filas eliminadas a los resultados de la consulta.

Para optimizar el rendimiento de las consultas en las tablas de Iceberg, Athena admite la compactación manual como comando de mantenimiento de la tabla. Las compactaciones optimizan la disposición estructural de la tabla sin alterar su contenido.

OPTIMIZE

La acción de compactación OPTIMIZE table REWRITE DATA reescribe los archivos de datos en una disposición más optimizada en función de su tamaño y del número de archivos de eliminación asociados. Para obtener detalles sobre la sintaxis y las propiedades de la tabla, consulte OPTIMIZE.

Ejemplo

El siguiente ejemplo fusiona archivos de borrado en archivos de datos y produce archivos cercanos al tamaño de archivo objetivo cuando el valor de category es c1.

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VACUUM

VACUUM lleva a cabo el vencimiento de las instantáneas y la eliminación de archivos huérfanos. Estas acciones reducen el tamaño de los metadatos y eliminan los archivos que no están en el estado actual de la tabla y que también tienen una antigüedad superior al periodo de retención especificado para la tabla. Para obtener detalles sobre la sintaxis, consulte VACUUM.

Ejemplo

En el siguiente ejemplo, se usa una propiedad de tabla para configurar la tabla iceberg_table de manera que retenga los datos de los últimos tres días y, a continuación, VACUUM se usa para hacer vencer las instantáneas antiguas y eliminar los archivos huérfanos de la tabla.

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table