

# Mantenimiento de Tablas de S3
<a name="s3-tables-maintenance-overview"></a>

Amazon S3 realiza automáticamente mantenimiento para mejorar el rendimiento de las tablas en los buckets de tablas de S3. El mantenimiento se realiza en el nivel del bucket de la tabla y de la tabla individual e incluye lo siguiente:

**Mantenimiento en el nivel de buckets de tablas:**  
+ **Eliminación de archivos sin referencia**: limpia los archivos huérfanos para optimizar el uso y los costos del almacenamiento.

**Mantenimiento en el nivel de tabla:**  
+ **Compactación de archivos**: consolida archivos pequeños para mejorar el rendimiento de las consultas y reducir los costos de almacenamiento.
+ **Administración de instantáneas**: controla el historial de versiones de las tablas y evita el crecimiento excesivo de los metadatos.

Estas opciones están habilitadas de forma predeterminada. Puede editar o desactivar estas operaciones a través de los archivos de configuración de mantenimiento. 

Además de estas opciones, también puede habilitar y configurar los ajustes de caducidad de los registros para las tablas. Con esta opción, Amazon S3 elimina automáticamente los registros de una tabla cuando los registros caducan.

**Topics**
+ [Estado del trabajo de mantenimiento de Tablas de S3](s3-tables-maintenance-status.md)
+ [Mantenimiento de buckets de tablas](s3-table-buckets-maintenance.md)
+ [Mantenimiento de tablas](s3-tables-maintenance.md)
+ [Caducidad de registros para tablas](s3-tables-record-expiration.md)
+ [Consideraciones y limitaciones de los trabajos de mantenimiento](s3-tables-considerations.md)

# Estado del trabajo de mantenimiento de Tablas de S3
<a name="s3-tables-maintenance-status"></a>

Los trabajos de mantenimiento de Tablas de S3 se ejecutan periódicamente para las tablas de S3 o los buckets de tablas. Puede consultar el estado de estos trabajos con la API `GetTableMaintenanceJobStatus`.

**Obtención del estado de los trabajos de mantenimiento mediante la AWS CLI**  
En el siguiente ejemplo se obtendrán los estados de los trabajos de mantenimiento mediante la API `GetTableMaintenanceJobStatus`.  

```
aws s3tables get-table-maintenance-job-status \
   --table-bucket-arn="arn:aws:s3tables:arn:aws::111122223333:bucket/amzn-s3-demo-bucket1" \
   --namespace="mynamespace" \
   --name="testtable"
```
Para obtener más información, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/get-table-maintenance-job-status.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/get-table-maintenance-job-status.html) en la *Referencia de comandos de la AWS CLI*.

Los trabajos de mantenimiento de Tablas de S3 pueden pasar por cuatro estados posibles:
+ `Successful`
+ `Failed`
+ `Disabled`
+ `Not_Yet_Run`

Los trabajos con un estado de error incluirán un mensaje de error. En la siguiente lista se describen posibles mensajes de error. 
+ Se ha encontrado una excepción de validación de Iceberg al intentar leer la tabla. Asegúrese de que la tabla es legible, se adhiere a la especificación de Iceberg y contiene solo rutas S3 que comienzan con el alias de tabla S3.
+ La administración de instantáneas de Iceberg no admite actualmente etiquetas ni referencias definidas por el usuario.
+ La configuración del mantenimiento de la tabla des Iceberg es incompatible con las propiedades de tabla “history.expire.max-snapshot-age-ms” e “history.expire.min-snapshots-to-keep”.
+ La administración de instantáneas de Iceberg y la eliminación de archivos a los que no se hace referencia no son compatibles cuando la propiedad de tabla “gc.enabled” es false. Asegúrese de que esta propiedad está deshabilitada o establecida explícitamente en true.
+ No se ha podido confirmar debido a que los metadatos no están actualizados. El mantenimiento se volverá a intentar en la próxima oportunidad disponible.
+ Acceso insuficiente para realizar el mantenimiento de la tabla. Asegúrese de que la clave utilizada para cifrar la tabla esté activa, exista y tenga una política de recursos que permita el acceso a la entidad principal de servicio de S3 `maintenance.s3tables.amazonaws.com`.
**nota**  
 Para obtener más información sobre los permisos de AWS KMS para Tablas de S3, consulte [Requisitos de permiso para el cifrado SSE-KMS de tablas de S3](s3-tables-kms-permissions.md). 
+ Error interno

# Mantenimiento de buckets de tablas
<a name="s3-table-buckets-maintenance"></a>

Amazon S3 ofrece operaciones de mantenimiento para mejorar la administración y el rendimiento de los buckets de tablas. La siguiente opción está activada de forma predeterminada para todos los buckets de tablas. Puede editar o desactivar esta opción si especifica un archivo de configuración de mantenimiento para el bucket de tablas.

La edición de esta configuración requiere el permiso `s3tables:PutTableBucketMaintenanceConfiguration`.

**Topics**
+ [Eliminación de archivos sin referencias](#s3-table-bucket-maintenance-unreferenced)
+ [Consideraciones y limitaciones](#s3-tables-buckets-considerations-see-more)

## Eliminación de archivos sin referencias
<a name="s3-table-bucket-maintenance-unreferenced"></a>

La eliminación de archivos sin referencias identifica y elimina todos los objetos a los que no haga referencia ninguna instantánea de tabla. Como parte de la política de eliminación de archivos sin referencias, puede configurar dos propiedades: `unreferencedDays` (3 días de forma predeterminada) y `nonCurrentDays` (10 días de forma predeterminada).

Para cualquier objeto al que no haga referencia la tabla y que sea más antiguo que la propiedad `unreferencedDays`, S3 marca el objeto como no actual. S3 elimina los objetos no actuales después del número de días especificado por la propiedad `nonCurrentDays`.

**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](https://aws.amazon.com/contact-us/) o la [Documentación de AWS Support](https://aws.amazon.com/documentation/aws-support/).

La eliminación de archivos sin referencias determina los objetos que se eliminarán de la tabla con referencia solo a esa tabla. Cualquier referencia hecha a estos objetos fuera de la tabla no evitará que con la eliminación de archivos sin referencias se elimine un objeto.

Si desactiva la eliminación de archivos sin referencias, los trabajos en curso no se verán afectados. La nueva configuración entrará en vigor para el siguiente trabajo después del cambio de configuración. Para obtener más información, consulte la información de precios en los [precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

Solo puede configurar la eliminación de archivos sin referencias en el nivel de bucket de tablas. Esta configuración se aplicará a todas las tablas del bucket.

**Configuración de la eliminación de archivos sin referencias mediante la AWS CLI**  
En el siguiente ejemplo se configurará `unreferencedDays` en 4 días y `nonCurrentDays` en 10 días mediante la API `PutTableBucketMaintenanceConfiguration`.  

```
aws s3tables put-table-bucket-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
   --type icebergUnreferencedFileRemoval \
   --value '{"status":"enabled","settings":{"icebergUnreferencedFileRemoval":{"unreferencedDays":4,"nonCurrentDays":10}}}'
```

Para obtener más información, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-bucket-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-bucket-maintenance-configuration.html) en la *Referencia de comandos de la AWS CLI*.

## Consideraciones y limitaciones
<a name="s3-tables-buckets-considerations-see-more"></a>

Para obtener más información sobre consideraciones y límites adicionales para la eliminación de archivos sin referencias, consulte [Consideraciones y limitaciones de los trabajos de mantenimiento](s3-tables-considerations.md).

# Mantenimiento de tablas
<a name="s3-tables-maintenance"></a>

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`.

**nota**  
Puede realizar un seguimiento de las operaciones de mantenimiento automatizadas de tablas de S3 en las tablas mediante los registros de CloudTrail; para obtener más información, consulte [Eventos de administración de CloudTrail para el mantenimiento de tablas de S3](s3-tables-logging.md#s3-tables-maintenance-events).

**Topics**
+ [Compactación](#s3-tables-maintenance-compaction)
+ [Administración de instantáneas](#s3-tables-maintenance-snapshot)
+ [Consideraciones y limitaciones](#s3-tables-considerations-see-more)

## Compactación
<a name="s3-tables-maintenance-compaction"></a>

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.

**nota**  
La compactación solo se admite en los tipos de archivo Apache Parquet, Avro y ORC.

### Estrategias de compactación
<a name="s3-tables-maintenance-compaction-strategies"></a>

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.
+ **Ordenar**
  + 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. Las estrategias de compactación `z-order` y `sort` pueden implicar un costo mayor que `binpack`. Para obtener más información, consulte la información de precios en los [precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

### Ejemplos de compactación
<a name="tables-compaction-examples"></a>

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 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) en la *Referencia de comandos de la 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`  
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 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) en la *Referencia de comandos de la 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 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) en la *Referencia de comandos de la AWS CLI*.

## Administración de instantáneas
<a name="s3-tables-maintenance-snapshot"></a>

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](https://aws.amazon.com/contact-us/) o la [Documentación de AWS Support](https://aws.amazon.com/documentation/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](https://aws.amazon.com/s3/pricing/).

### Ejemplos de administración de instantáneas
<a name="tables-snapshot-examples"></a>

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 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) en la *Referencia de comandos de la AWS CLI*.

## Consideraciones y limitaciones
<a name="s3-tables-considerations-see-more"></a>

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](s3-tables-considerations.md).

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

# Caducidad de registros para tablas
<a name="s3-tables-record-expiration"></a>

De forma predeterminada, los registros de las tablas de S3 no caducan. Para ayudarlo a minimizar los costos de almacenamiento de las tablas, puede habilitar y configurar la caducidad de los registros de las tablas. Con esta opción, Amazon S3 elimina automáticamente los registros de una tabla cuando los registros caducan.

Si habilita la caducidad de los registros de una tabla, debe especificar el número de días que se retendrán en la tabla antes de que caduquen. Puede ser cualquier número de días, desde 1 día hasta 2 147 483 647 días. Por ejemplo, para retener los registros de la tabla durante un año, especifique `365` días. A continuación, los registros persisten durante 365 días. Después de 365 días, los registros caducan y Amazon S3 los elimina automáticamente.

Puede habilitar y configurar la caducidad de los registros para las tablas administradas de AWS que almacenan conjuntos de datos específicos de determinados Servicios de AWS, actualmente Lente de almacenamiento de Amazon S3 y catálogo de Amazon SageMaker. Las opciones de caducidad de los registros no están disponibles actualmente para otras tablas administradas de AWS. La excepción son las tablas de diario de metadatos de Amazon S3. Las tablas de diario utilizan distintas configuraciones de caducidad de registros que se especifican por servicio. Para obtener información sobre cómo configurar la caducidad de los registros para este tipo de tabla, consulte [Caducidad de los registros de la tabla de diario](metadata-tables-expire-journal-table-records.md). Tenga en cuenta que las opciones de caducidad de los registros no están disponibles para las tablas de S3 que cree.

Después de habilitar la caducidad de los registros de una tabla, puede desactivarla en cualquier momento. Amazon S3 deja de caducar y de eliminar registros de la tabla.

**Topics**
+ [Funcionamiento](#s3-tables-record-expiration-how-it-works)
+ [Configuración de la caducidad de los registros](#s3-tables-record-expiration-configure)
+ [Supervisión de la caducidad de los registros](#s3-tables-record-expiration-monitor)
+ [Consideraciones](#s3-tables-expiration-considerations)

## Cómo funciona la caducidad de los registros
<a name="s3-tables-record-expiration-how-it-works"></a>

La caducidad de los registros elimina automáticamente los registros de una tabla de S3 cuando son anteriores al número de días especificado en la configuración de caducidad de los registros de la tabla. Para determinar cuándo caducan los registros, Amazon S3 utiliza marcas temporales específicas en los registros. La elección de la columna de marca temporal se deriva directamente del esquema de una tabla. No es necesario especificar qué columna de marca temporal utilizar. Las tablas las administra AWS y Amazon S3 elige automáticamente la columna adecuada para utilizarla cuando se habilita la caducidad de los registros de una tabla.

Puede habilitar y configurar los ajustes de caducidad de los registros para las tablas administradas de AWS que almacenan métricas de Lente de almacenamiento de Amazon S3 o metadatos de catálogo de Amazon SageMaker específicos. Las opciones de caducidad de los registros están disponibles para las siguientes tablas administradas de AWS para esos servicios:
+ Lente de almacenamiento de S3: `bucket_property_metrics`, `default_activity_metrics`, `default_storage_metrics`, `expanded_prefixes_activity_metrics` y `expanded_prefixes_storage_metrics`. Para determinar cuándo caducan los registros de estas tablas, Amazon S3 utiliza el campo `report_time` de los registros.
+ Catálogo de Amazon SageMaker: `ASSET`. Para determinar cuándo caducan los registros de esta tabla, Amazon S3 utiliza el campo `snapshot_time` de los registros.

Tras habilitar la caducidad de registros para una tabla, Amazon S3 comienza a ejecutar trabajos de caducidad de registros que realizan las siguientes operaciones para la tabla:

1. Identifique los registros que superan la configuración de caducidad especificada.

1. Cree una nueva instantánea que excluya las referencias a los registros caducados.

La eliminación también se basa en la caducidad de la instantánea y en los ajustes de eliminación de archivos no referenciados incluidos en la configuración de mantenimiento de la tabla. Para obtener más información sobre estas configuración, consulte [Mantenimiento de tablas](s3-tables-maintenance.md).

**aviso**  
Amazon S3 caduca y elimina los registros en un plazo de 24 a 48 horas después de que cumplan los requisitos para caducar. Los registros de tablas se eliminan de la última instantánea. Los datos y el almacenamiento de los registros se eliminan mediante operaciones de mantenimiento de tablas. Los registros de tablas no se pueden recuperar después de que caduquen.

## Configuración de la caducidad de los registros de una tabla
<a name="s3-tables-record-expiration-configure"></a>

Puede habilitar, configurar y administrar de otro modo la configuración de caducidad de los registros de una tabla de S3 mediante la consola de Amazon S3, la API de REST de Amazon S3, AWS Command Line Interface (AWS CLI) o los AWS SDK.

Antes de intentar realizar estas tareas para una tabla, asegúrese de que tiene los siguientes permisos de AWS Identity and Access Management (IAM):
+ `s3tables:GetTableRecordExpirationConfiguration`: esta acción permite acceder a la configuración actual de caducidad de los registros de las tablas.
+ `s3tables:PutTableRecordExpirationConfiguration`: esta acción permite habilitar, configurar y desactivar los ajustes de caducidad de los registros de las tablas.
+ `s3tables:GetTableRecordExpirationJobStatus`: esta acción permite supervisar el estado de las operaciones de caducidad de los registros (trabajos) de las tablas y acceder a las métricas de las operaciones.

En las siguientes secciones se explica cómo habilitar, configurar y desactivar los ajustes de caducidad de registros de una tabla mediante la consola de Amazon S3 y la AWS CLI. Para realizar estas tareas con la API de REST de Amazon S3 o un AWS SDK, utilice la operación [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html). Para obtener más información, consulte [Desarrollo con Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/developing-s3.html) en la *Referencia de la API de Amazon Simple Storage Service*.

### Uso de la consola de S3
<a name="configure-table-record-expiration-console"></a>

Para habilitar y configurar los ajustes de caducidad de los registros de una tabla de S3 mediante la consola, siga estos pasos.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de tablas**.

1. En la página **Buckets de tablas**, elija el bucket que almacena la tabla.

1. En la pestaña **Tablas**, elija la tabla.

1. En la pestaña **Mantenimiento**, en la sección **Caducidad del registro**, elija **Editar**.

1. En **Caducidad del registro**, elija **Habilitar**.

1. En **Días después de los cuales caducan los registros**, ingrese el número de días que se van a retener en la tabla. Puede ser cualquier número de días entre 1 y 2 147 483 647. Por ejemplo, para retener registros durante un año, ingrese **365**.
**aviso**  
Al determinar el periodo de retención adecuado para los registros de la tabla, tenga en cuenta que los registros no se pueden recuperar una vez caducados.

1. Seleccione **Save changes (Guardar cambios)**.

Para cambiar posteriormente el periodo de retención, repita los pasos anteriores.

Para desactivar posteriormente la caducidad de los registros, repita los pasos 1 a 5. A continuación, para el paso 6, elija **Desactivar**. Cuando termine de realizar los cambios, seleccione **Save changes** (Guardar cambios).

### Uso de AWS CLI
<a name="configure-table-record-expiration-CLI"></a>

Para configurar y administrar los ajustes de caducidad de los registros de una tabla de S3 mediante la AWS CLI, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html).

Puede empezar por crear un archivo JSON que contenga la configuración de caducidad de los registros para aplicarla a la tabla. En el siguiente ejemplo, se muestra el contenido de un archivo JSON que habilita la caducidad de los registros de una tabla. También especifica un periodo de retención de 30 días para los registros de la tabla. En otras palabras, especifica que los registros de la tabla deben caducar a los 30 días.

```
{
    "status": "enabled",
        "settings": {
            "days": 30
        {
}
```

Para utilizar el ejemplo anterior, sustituya `user input placeholders` por su propia información.

**aviso**  
Al determinar el periodo de retención adecuado para los registros de la tabla, tenga en cuenta que los registros no se pueden recuperar una vez caducados.

Para desactivar la caducidad de los registros de una tabla, especifique `disabled` para el campo `status` y omita el objeto `settings` del archivo. Por ejemplo:

```
{
    "status": "disabled"
}
```

Tras crear un archivo JSON con la configuración que desee aplicar, ejecute el comando `put-table-record-expiration-configuration`. Para el parámetro `table-arn`, especifique el nombre de recurso de Amazon (ARN) de la tabla. Para el parámetro `value`, especifique el nombre del archivo que almacena la configuración.

Por ejemplo, el comando siguiente actualiza la configuración de caducidad de los registros de una tabla. La configuración se especifica en un archivo denominado *`record-expiration-config.json`*.

```
aws s3tables put-table-record-expiration-configuration \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table \
    --value file://./record-expiration-config.json
```

Para utilizar el ejemplo anterior, sustituya `user input placeholders` por su propia información.

## Supervisión de la caducidad de los registros de una tabla
<a name="s3-tables-record-expiration-monitor"></a>

Para supervisar el estado y los resultados de las operaciones de caducidad de los registros de las tablas de S3, utilice la operación [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html) o, si utiliza la AWS CLI, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html). En la solicitud, especifique el nombre de recurso de Amazon (ARN) de la tabla.

Por ejemplo, el comando AWS CLI siguiente recupera el estado de las operaciones de caducidad de los registros de una tabla específica de un bucket de tablas. Para utilizar este ejemplo, sustituya `user input placeholders` por su propia información.

```
aws s3tables get-table-record-expiration-job-status \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table
```

Si la solicitud es correcta, recibirá una respuesta con detalles como la última vez que Amazon S3 ejecutó operaciones de caducidad de registros para la tabla y el estado de esa ejecución. Si la ejecución más reciente se realizó correctamente, la respuesta también incluye métricas de procesamiento, por ejemplo, el número de archivos de datos y registros que se eliminaron y el tamaño total de los datos que se eliminaron. Si se produjeron errores durante la ejecución más reciente, la respuesta incluye un mensaje de error que describe el motivo del error en la ejecución.

## Consideraciones
<a name="s3-tables-expiration-considerations"></a>

Al configurar y administrar los ajustes de caducidad de los registros de las tablas de S3 administradas de AWS, tenga en cuenta lo siguiente:
+ La caducidad de los registros solo está disponible para determinadas tablas administradas de AWS creadas por Servicios de AWS, Lente de almacenamiento de Amazon S3 y el catálogo de Amazon SageMaker compatibles. Además, la caducidad de los registros solo está disponible para tablas individuales, no para buckets de tablas completas.
+ Para determinar cuándo caducan los registros, Amazon S3 utiliza marcas temporales específicas en las tablas. Estas marcas temporales representan cuándo se crearon los datos, no cuándo Amazon S3 ingirió los registros de una tabla. La columna de marca temporal que se utilice depende del servicio que publique la tabla: para las métricas de Lente de almacenamiento de S3, el campo `report_time` y, para los metadatos del catálogo de Amazon Sagemaker, el campo `snapshot_time`. No puede especificar qué campo usar porque las tablas las administra AWS.
+ Si se producen retrasos en la exportación de los datos a una tabla, es posible que los registros puedan caducar antes de lo esperado. Por este motivo, recomendamos que se tengan en cuenta los posibles retrasos en la ingesta y agregar un búfer al periodo de retención en la configuración de caducidad de las tablas.
+ Los registros caducan y se eliminan en un plazo de 24 a 48 horas después de que cumplan los requisitos para caducar. Amazon S3 no caduca y elimina los registros inmediatamente después de que cumplan los requisitos para caducar.
+ Los registros no se pueden recuperar después de que caduquen y se eliminen.

# Consideraciones y limitaciones de los trabajos de mantenimiento
<a name="s3-tables-considerations"></a>

Amazon S3 ofrece operaciones de mantenimiento para mejorar el rendimiento de las tablas o los buckets de tablas de S3. Estas opciones son la compactación de archivos, la administración de instantáneas y la eliminación de archivos sin referencias. A continuación, se indican las limitaciones y consideraciones para estas opciones de administración.

**Topics**
+ [Consideraciones para la compactación](#s3-tables-compaction-considerations)
+ [Consideraciones sobre la administración de instantáneas](#s3-tables-snapshot-considerations)
+ [Consideraciones sobre la eliminación de archivos sin referencias](#s3-tables-unreferenced-file-removal-considerations)
+ [Límites de operaciones de mantenimiento de tablas y buckets de tablas de S3 y API relacionados](#s3-tables-maintenance-limits)

## Consideraciones para la compactación
<a name="s3-tables-compaction-considerations"></a>

Las siguientes consideraciones se aplican a la compactación. Para obtener más información sobre la compactación, consulte [Mantenimiento de tablas](s3-tables-maintenance.md).
+ La compactación solo se admite en los tipos de archivo Apache Parquet, Avro y ORC.
+ La compactación escribe nuevos archivos en formato Apache Parquet de forma predeterminada. Para compactar archivos en formatos Avro o ORC, establezca la propiedad `write.format.default` de la tabla en `avro` o `orc`.
+ La compactación no admite el tipo de datos: `Fixed`.
+ La compactación no admite los tipos de compresión `brotli` e `lz4`.
+ La compactación se produce según un horario automatizado. Si desea evitar los cargos asociados a la compactación, puede desactivarla manualmente para una tabla mediante la operación de la API [PutTableMaintenanceConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableMaintenanceConfiguration.html).

**nota**  
Apache Iceberg utiliza un modelo de simultaneidad optimista junto con la detección de conflictos para arbitrar las transacciones de escritura. Con una simultaneidad optimista, las transacciones de usuario y de compactación pueden entrar en conflicto y provocar el error de las transacciones. Si se producen conflictos, los trabajos de compactación se volverán a intentar en caso de error. Se recomienda que las canalizaciones también utilicen la lógica de reintentos para superar las transacciones que producen un error debido a operaciones conflictivas.

## Consideraciones sobre la administración de instantáneas
<a name="s3-tables-snapshot-considerations"></a>

Las siguientes consideraciones se aplican a la administración de instantáneas. Para obtener más información sobre la administración de instantáneas, consulte [Mantenimiento de tablas](s3-tables-maintenance.md).
+ Las instantáneas se conservarán solo cuando se cumplan ambos criterios: el número mínimo de instantáneas que se deben conservar y el periodo de retención especificado.
+ La administración de instantáneas elimina los metadatos de las instantáneas caducadas de Apache Iceberg, lo que evita que las consultas sobre las instantáneas caducadas viajen en el tiempo y, de forma opcional, elimina los archivos de datos asociados.
+ 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.

## Consideraciones sobre la eliminación de archivos sin referencias
<a name="s3-tables-unreferenced-file-removal-considerations"></a>

A continuación, se indican las consideraciones que se aplican a la eliminación de archivos sin referencias. Para obtener más información sobre la eliminación de archivos sin referencias, consulte [Mantenimiento de buckets de tablas](s3-table-buckets-maintenance.md).
+ La eliminación de archivos sin referencias elimina los archivos de datos y metadatos a los que ya no hacen referencia los metadatos de Iceberg si la fecha de creación es anterior al periodo de retención.

## Límites de operaciones de mantenimiento de tablas y buckets de tablas de S3 y API relacionados
<a name="s3-tables-maintenance-limits"></a>




| Operación de mantenimiento | Propiedad | ¿Configurable en el nivel de bucket de tablas? | ¿Configurable en el nivel de tabla? | Predeterminado | Valor mínimo | Rutina de mantenimiento de Iceberg relacionada | Control de la API de tablas de S3 | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Compactación | targetFileSizeMB | No | Sí | 512 MB | 64 MB | [https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files](https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| Administración de instantáneas | minimumSnapshots | No | Sí | 1 | 1 | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) retainLast | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| Administración de instantáneas | maximumSnapshotAge | No | Sí | 120 horas | 1 hora | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) expireOlderThan | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| Eliminación de archivos sin referencias | unreferencedDays | Sí | No | 3 días | 1 día | [https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files](https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 
| Eliminación de archivos sin referencias | nonCurrentDays | Sí | No | 10 días | 1 día | N/A | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 

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