Activación del optimizador de compactación - AWS Glue

Activación del optimizador de compactación

Puede usar la consola de AWS Glue, la AWS CLI o la API de AWS para activar la compactación de sus tablas de Apache Iceberg en el Catálogo de datos de AWS Glue. Para las tablas nuevas, puede elegir Apache Iceberg como formato de tabla y habilitar la compactación al crear la tabla. La compactación está deshabilitada de forma predeterminada para las tablas nuevas.

Console
Habilitación de la compactación
  1. 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.

  2. En el panel de navegación, en Catálogo de datos, elija Tablas.

  3. En la página Tablas, elija una tabla en formato de tabla abierta para la que desee activar la compactación y, a continuación, en el menú Acciones, elija Optimización y, por último, Activar.

    Para activar la compactación, también puede seleccionar la pestaña Optimización de la tabla en 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 compactación.

    La opción Activar optimización también está disponible al crear una nueva tabla de Iceberg en el Catálogo de datos.

  4. En la página Activar optimización, seleccione Compactación en Opciones de optimización.

    Página de detalles de la tabla Apache Iceberg con la opción para habilitar la compactación.
  5. A continuación, seleccione un rol de IAM en el menú desplegable con los permisos que se muestran en la sección Requisitos previos para la optimización de tablas .

    También puede elegir la opción Crear un nuevo rol de IAM para crear un rol personalizado con los permisos necesarios para ejecutar la compactación.

    Siga los pasos que se indican a continuación para actualizar un rol de IAM existente:

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

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

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

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

  7. Elija una estrategia de compactación. Las opciones disponibles son:

    • Binpack: Binpack es la estrategia de compactación predeterminada en Apache Iceberg. Combina archivos de datos más pequeños en otros de mayor tamaño para mejorar el rendimiento.

    • Ordenar: ordenar en Apache Iceberg es una técnica de organización de datos que agrupa en clústeres la información dentro de los archivos según columnas específicas, lo que mejora significativamente el rendimiento de las consultas al reducir la cantidad de archivos que se deben procesar. El orden de clasificación en los metadatos de Iceberg se establece mediante el campo de ordenación. Cuando se definen varias columnas, los datos se organizan según la secuencia en que estas aparecen, lo que permite almacenar juntos los registros con valores similares dentro de los archivos. La estrategia de compactación por ordenación lleva la optimización un paso más allá, ya que ordena los datos en todos los archivos dentro de una misma partición.

    • Orden Z: el orden Z es una técnica de organización de datos útil cuando se requiere ordenarlos según varias columnas con igual importancia. A diferencia de la ordenación tradicional, que da prioridad a una columna sobre las demás, el orden Z asigna una ponderación equilibrada a cada columna, lo que permite al motor de consultas reducir la cantidad de archivos que debe leer al buscar datos.

      La técnica funciona al entrelazar los dígitos binarios de los valores de distintas columnas. Por ejemplo, si tiene los números 3 y 4 de dos columnas, el orden Z primero los convierte a binario (3 se convierte en 011 y 4 en 100) y luego entrelaza estos dígitos para generar un nuevo valor: 011010. Este entrelazado genera un patrón que mantiene los datos relacionados físicamente próximos entre sí.

      El orden Z resulta especialmente eficaz para consultas multidimensionales. Por ejemplo, una tabla de clientes ordenada en Z por ingresos, Estado y código postal puede ofrecer un rendimiento superior al de una ordenación jerárquica al ejecutar consultas en múltiples dimensiones. Esta organización permite que las consultas orientadas a combinaciones específicas de ingresos y ubicación geográfica localicen los datos relevantes con rapidez y, al mismo tiempo, reduzcan al mínimo los escaneos innecesarios de archivos.

  8. Seleccione Habilitar la optimización.

AWS CLI

En el ejemplo siguiente se muestra cómo habilitar la compactación. 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 el 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 la compactación. Puede reemplazar la estrategia de compactación de sort con otras estrategias compatibles, como z-order o binpack.

"orden" según sus requisitos.

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"}, "compactionConfiguration": { "icebergConfiguration": {"strategy": "sort"} } }'\ --type compaction
AWS API

Llame a la operación CreateTableOptimizer para habilitar la compactación de una tabla.

Después de activar la compactación, la pestaña Optimización de la tabla muestra los siguientes detalles de compactación una vez finalizada la ejecución:

Hora de inicio

Hora a la que se inició el proceso de compactación en el Catálogo de datos. El valor es una marca en la hora UTC.

Hora de finalización

Hora a la que terminó el proceso de compactación en el Catálogo de datos. El valor es una marca en la hora UTC.

Estado

Estado del ciclo de compactación. Los valores indican éxito o fracaso.

Archivos compactados

Número de archivos compactados.

Bytes compactados

Número de bytes compactados.