Habilitación del optimizador de retención de instantáneas
Puede usar la consola de AWS Glue, la AWS CLI o la API de AWS para habilitar los optimizadores de retención de instantáneas de las tablas Apache Iceberg en el Catálogo de datos. Para las tablas nuevas, puede elegir Apache Iceberg como formato de tabla y habilitar el optimizador de retención de instantáneas al crear la tabla. La retención de instantáneas está deshabilitada de forma predeterminada para las tablas nuevas.
- Console
-
Habilitación del optimizador de retención de instantáneas
-
Abra la consola de AWS Glue en https://console.aws.amazon.com/glue/ e inicie sesión como administrador del lago de datos, creador de la tabla o usuario al que se le hayan concedido los permisos glue:UpdateTable
y lakeformation:GetDataAccess
de la tabla.
-
En el panel de navegación, en Catálogo de datos, elija Tablas.
En la página Tablas, elija una tabla de Iceberg para la que desee habilitar el optimizador de retención de instantáneas y, a continuación, en el menú Acciones, seleccione Habilitar en Optimización.
Para habilitar la optimización, también puede seleccionar la tabla y abrir la página Detalles de la tabla. Seleccione la pestaña Optimización de tablas en la sección inferior de la página y elija Habilitar la retención de instantáneas.
-
En la página Habilitar la optimización, en Configuración de optimización, tiene dos opciones: Usar la configuración predeterminada o Personalizar la configuración. Si elige usar la configuración predeterminada, AWS Glue utiliza las propiedades definidas en la configuración de la tabla de Iceberg para determinar el periodo de retención de las instantáneas y el número de instantáneas que se deben retener. En ausencia de esta configuración, AWS Glue retiene una instantánea durante cinco días y elimina los archivos asociados a las instantáneas caducadas.
-
A continuación, elija un rol de IAM que AWS Glue pueda asumir en su nombre para ejecutar el optimizador. Para obtener más información sobre los permisos necesarios para el rol de IAM, consulte la sección Requisitos previos para la optimización de tablas .
Siga los pasos que se indican a continuación para actualizar un rol de IAM existente:
-
Para actualizar la política de permisos del rol de IAM, en la consola de IAM, vaya al rol de IAM que se está utilizando para ejecutar la compactación.
-
En la sección Agregar permisos, seleccione Crear política. En la ventana del navegador que se acaba de abrir, cree una nueva política para utilizarla con su rol.
En la página Crear política, elija la pestaña JSON. Copie el código JSON que se muestra en la sección Requisitos previos en el campo del editor de políticas.
-
Si prefiere establecer los valores de Configuración de retención de instantáneas de forma manual, elija Personalizar la configuración.
-
Seleccione la casilla Aplicar el rol de IAM seleccionado a los optimizadores seleccionados para usar un solo rol de IAM para todos los optimizadores activados.
-
Si tiene configuraciones de políticas de seguridad en las que el optimizador de tablas de Iceberg necesita acceder a los buckets de Amazon S3 desde una nube privada virtual (VPC) específica, cree una conexión de red de AWS Glue o utilice una existente.
Si aún no tiene configurada una conexión de VPC de AWS Glue, cree una nueva según los pasos de la sección Creating connections for connectors mediante la consola de AWS Glue, la AWS CLI o los SDK.
A continuación, en Configuración de retención de instantáneas, elija usar los valores especificados en Configuración de la tabla de Iceberg o especifique valores personalizados para el periodo de retención de las instantáneas (history.expire.max-snapshot-age-ms) y el número mínimo de instantáneas (history.expire.min-snapshots-to-keep) que se deben retener.
-
Seleccione Eliminar los archivos asociados para eliminar los archivos subyacentes cuando el optimizador de tablas elimine las instantáneas antiguas de los metadatos de la tabla.
Si no selecciona esta opción, cuando las instantáneas antiguas se eliminen de los metadatos de la tabla, sus archivos asociados permanecerán en el almacenamiento como archivos huérfanos.
-
A continuación, lea la declaración de precaución y seleccione Acepto para continuar.
En el Catálogo de datos, el optimizador de retención de instantáneas respeta el ciclo de vida controlado por las políticas de retención de nivel de ramificación y etiqueta. Para obtener más información, consulte la sección Branching and tagging de la documentación de Iceberg.
-
Revise la configuración y elija Habilitar la optimización.
Espere unos minutos a que el optimizador de retención se ejecute y caduque las instantáneas antiguas según la configuración.
- AWS CLI
-
Para habilitar la retención de instantáneas en las tablas nuevas Iceberg en AWS Glue, debe crear un optimizador de tablas de tipo retention
y establecer el campo enabled
en true
en table-optimizer-configuration
. Para ello, puede usar el comando de la AWS CLI create-table-optimizer
o update-table-optimizer
. Además, debe especificar los campos de configuración de la retención como snapshotRetentionPeriodInDays
y numberOfSnapshotsToRetain
en función de sus requisitos.
En el siguiente ejemplo se muestra cómo habilitar el optimizador de retención de instantáneas. Sustituya el ID de cuenta por un ID de cuenta de AWS válido. Sustituya el nombre de la base de datos y el nombre de la tabla por el nombre real de la tabla de Iceberg y el nombre de la base de datos. Sustituya roleArn
por el nombre de recurso de AWS (ARN) del rol de IAM y el nombre del rol de IAM que tiene los permisos necesarios para ejecutar el optimizador de retención de instantáneas.
aws glue create-table-optimizer \
--catalog-id 123456789012
\
--database-name iceberg_db
\
--table-name iceberg_table
\
--table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012
:role/optimizer_role
","enabled":'true', "vpcConfiguration":{
"glueConnectionName":"glue_connection_name"
}, "retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7
,"numberOfSnapshotsToRetain":3
,"cleanExpiredFiles":'true'
}}}'\
--type retention
Este comando crea un optimizador de retención para la tabla de Iceberg especificada en el catálogo, la base de datos y la región indicados. table-optimizer-configuration especifica el ARN del rol de IAM que se va a utilizar, habilita el optimizador y establece la configuración de retención. En este ejemplo, retiene las instantáneas durante 7 días, conserva un mínimo de 3 instantáneas y limpia los archivos caducados.
-
snapshotRetentionPeriodInDays: número de días que se deben retener las instantáneas antes de provocar que caduquen. El valor predeterminado es 5
.
-
numberOfSnapshotsToRetain: número mínimo de instantáneas que se deben retener, incluso si son anteriores al periodo de retención. El valor predeterminado es 1
.
-
cleanExpiredFiles: valor booleano que indica si se deben eliminar los archivos de datos caducados después de que las instantáneas hayan caducado. El valor predeterminado es true
.
Si se establece en verdadero, las instantáneas más antiguas se eliminan de los metadatos de la tabla, así como sus archivos subyacentes. Si este parámetro se establece en falso, las instantáneas más antiguas se eliminan de los metadatos de la tabla, pero sus archivos subyacentes permanecen en el almacenamiento como archivos huérfanos.
- AWS API
-
Llame a la operación CreateTableOptimizer para habilitar el optimizador de retención de captura de pantalla de una tabla.
Después de activar la compactación, la pestaña de Optimización de la tabla muestra los siguientes detalles de compactación (después de aproximadamente 15 a 20 minutos):
- Hora de inicio
-
Hora a la que se inició el optimizador de retención de instantáneas. El valor es una marca en la hora UTC.
- Tiempo de ejecución
-
La hora muestra el tiempo que tarda el optimizador en completar la tarea. El valor es una marca en la hora UTC.
- Status
-
Estado de la ejecución del optimizador. Los valores indican éxito o fracaso.
- Archivos de datos eliminados
Número total de archivos eliminados.
- Archivos de manifiesto eliminados
-
Número total de archivos de manifiesto eliminados.
- Listas de manifiesto eliminadas
-
Número total de listas de manifiesto eliminadas.