Mantenimiento de tablas - Amazon Simple Storage Service

Mantenimiento de tablas

Tablas de S3 ofrece operaciones de mantenimiento para mejorar la administración y el rendimiento de las tablas individuales. Las siguientes opciones están habilitadas de forma predeterminada para todas las tablas en los buckets de las tablas. Puede editarlas o desactivarlas si especifica archivos de configuración de mantenimiento para la tabla de S3.

La edición de esta configuración requiere los permisos s3tables:GetTableMaintenanceConfiguration y s3tables:PutTableMaintenanceConfiguration.

Compactación

La compactación se configura en el nivel de tabla y combina varios objetos más pequeños en menos objetos más grandes para mejorar el rendimiento de las consultas de Apache Iceberg. Cuando se combinan objetos, la compactación también aplica los efectos de eliminar filas en la tabla.

La compactación está habilitada de forma predeterminada para todas las tablas, con un tamaño de archivo de destino predeterminado de 512 MB o un valor personalizado que especifique entre 64 MB y 512 MB. Los archivos compactados se escriben como la instantánea más reciente de la tabla.

Estrategias de compactación

Puede elegir entre varias estrategias de compactación que pueden aumentar aún más el rendimiento de las consultas en función de los patrones de consulta y del orden de clasificación de las tablas.

Tablas de S3 admite estas estrategias de compactación para tablas:

  • Auto (valor predeterminado)

    • Amazon S3 selecciona la mejor estrategia de compactación en función del orden de clasificación de la tabla. Esta es la estrategia de compactación predeterminada para todas las tablas.

    • Para las tablas con un orden de clasificación definido en los metadatos, auto aplicará automáticamente la compactación sort.

    • Para las tablas sin un orden de clasificación, auto utilizará de forma predeterminada la compactación binpack.

  • Binpack

    • Combina archivos pequeños en archivos más grandes, normalmente con un tamaño superior a 100 MB, y aplica las eliminaciones pendientes. Esta es la estrategia de compactación predeterminada para las tablas desordenadas.

  • Sort

    • Organiza los datos según columnas especificadas, que se ordenan automáticamente según la jerarquía durante la compactación, lo que mejora el rendimiento de las consultas para operaciones que aplican filtros. Esta estrategia se recomienda cuando las consultas filtran con frecuencia sobre columnas específicas. Al utilizar esta estrategia, Tablas de S3 aplica automáticamente la clasificación jerárquica de las columnas cuando se define un sort_order en las propiedades de la tabla.

  • Z-order

    • Optimiza la organización de los datos al combinar múltiples atributos en un único valor escalar que se puede utilizar para la ordenación, lo que permite consultas eficientes en varias dimensiones. Esta estrategia se recomienda cuando se necesita consultar datos en varias dimensiones simultáneamente. Esta estrategia requiere que defina un orden de clasificación en las propiedades de la tabla Iceberg utilizando la propiedad de tabla sort_order.

La compactación generará costos adicionales. Para obtener más información, consulte la información de precios en los precios de Amazon S3.

Ejemplos de compactación

En los siguientes ejemplos se muestran configuraciones para la compactación de tablas.

Configuración del tamaño de archivo de destino de compactación con la AWS CLI

El tamaño mínimo del archivo de compactación de destino es de 64 MB; el máximo es de 512 MB.

El siguiente ejemplo cambiará el tamaño de archivo de destino a 256 MB con la API PutTableMaintenanceConfiguration.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

Para obtener más información, consulte put-table-maintenance-configuration en la Referencia de los comandos de AWS CLI.

Configuración de la estrategia de compactación mediante la AWS CLI

El siguiente ejemplo cambiará la estrategia de compactación a sort mediante la API PutTableMaintenanceConfiguration. Al configurar la compactación, puede elegir entre las siguientes estrategias de compactación: auto, binpack, sort o z-order

nota

Para configurar la estrategia de compactación como sort o z-order necesita los siguientes requisitos previos:

  • Un orden de clasificación definido en las propiedades de la tabla de Iceberg.

  • El permiso s3tables:GetTableData.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'

Para obtener más información, consulte put-table-maintenance-configuration en la Referencia de los comandos de AWS CLI.

Desactivación de la compactación mediante la AWS CLI

El siguiente ejemplo desactivará la compactación mediante la API PutTableMaintenanceConfiguration.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

Para obtener más información, consulte put-table-maintenance-configuration en la Referencia de los comandos de AWS CLI.

Administración de instantáneas

La administración de instantáneas determina el número de instantáneas activas para la tabla. Esto se basa en MinimumSnapshots (1 de forma predeterminada) y MaximumSnapshotAge (120 horas de forma predeterminada). La administración de instantáneas hace caducar y elimina las instantáneas de la tabla en función de estas configuraciones.

Cuando caduca una instantánea, Amazon S3 marca como no actuales todos los objetos a los que solo hace referencia esa instantánea. Estos objetos no actuales se eliminan después del número de días especificado por la propiedad NoncurrentDays en la política de eliminación de archivos sin referencias.

nota

Las eliminaciones de objetos no actuales son permanentes y no hay forma de recuperarlos.

Para ver o recuperar objetos que se han marcado como no actuales, debe ponerse en contacto con AWS Support. Para obtener más información sobre cómo contactar con AWS Support, consulte Contacte con AWS o la Documentación de AWS Support.

La administración de instantáneas determina los objetos que se eliminarán de la tabla con referencias solo a esa tabla. Las referencias a estos objetos de fuera de la tabla no evitarán que con la administración de instantáneas se eliminen.

nota

La administración de instantáneas no admite los valores de retención que configure como propiedades de la tabla de Iceberg en el archivo metadata.json o mediante un comando SQL ALTER TABLE SET TBLPROPERTIES, incluida la retención basada en ramificaciones o etiquetas. La administración de instantáneas se desactiva cuando configura una política de retención basada en ramificaciones o etiquetas, o configura una política de retención en el archivo metadata.json que es más larga que los valores configurados a través de la API PutTableMaintenanceConfiguration. En estos casos, S3 no hará caducar ni eliminará instantáneas y tendrá que eliminar manualmente las instantáneas o eliminar las propiedades de la tabla de Iceberg para evitar cargos de almacenamiento.

Solo puede configurar la administración de instantáneas en el nivel de tabla. Para obtener más información, consulte la información de precios en los precios de Amazon S3.

Ejemplos de administración de instantáneas

Los siguientes ejemplos muestran configuraciones para la administración de instantáneas de tablas.

Configuración de la administración de instantáneas con la AWS CLI

En el siguiente ejemplo se establecerá MinimumSnapshots en 10 y MaximumSnapshotAge en 2500 horas mediante la API PutTableMaintenanceConfiguration.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace \ --name my_table \ --type icebergSnapshotManagement \ --value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
Desactivación de la administración de instantáneas mediante la AWS CLI

El siguiente ejemplo desactivará la administración de instantáneas mediante la API PutTableMaintenanceConfiguration.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace \ --name my_table \ --type icebergSnapshotManagement \ --value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'

Para obtener más información, consulte put-table-maintenance-configuration en la Referencia de los comandos de AWS CLI.

Consideraciones y limitaciones

Para obtener más información sobre consideraciones y límites adicionales con respecto a la compactación y la administración de instantáneas, consulte Consideraciones y limitaciones de los trabajos de mantenimiento.

nota

Tablas de S3 aplica el tamaño de grupo de filas predeterminado de parquet de 128 MB.