¿Cómo puedo resolver un comando MSCK REPAIR TABLE que tarda demasiado en ejecutarse o agota el tiempo de espera en Amazon Athena?

3 minutos de lectura
0

Quiero resolver un comando MSCK REPAIR TABLE que tarda demasiado en ejecutarse o agota el tiempo de espera en Amazon Athena.

Breve descripción

Cuando ejecuta el comando MSCK REPAIR TABLE, Athena genera un listado de los prefijos y los objetos en Amazon Simple Storage Service (Amazon S3). Si tiene demasiados prefijos u objetos de Amazon S3, el comando tarda mucho en ejecutarse o agota el tiempo de espera y se produce un error.

Para solucionar este problema, utilice uno de estos métodos:

  • Utilice la proyección de particiones con Athena.
  • Utilice un rastreador de AWS Glue para añadir particiones a sus tablas de Athena.
  • Utilice una instrucción de DDL de Athena para cargar particiones.

Solución

Utilización de la proyección de particiones con Athena

Utilice la proyección de particiones con Athena para generar particiones en la memoria. No necesita añadir las particiones al catálogo de datos de AWS Glue ni recuperarlas del catálogo de datos. Athena calcula el valor de la tabla en lugar de escanear una larga lista de particiones. Además, la proyección de particiones calcula los valores y las ubicaciones a partir de la configuración en vez de hacerlo a partir de un repositorio como el Catálogo de datos de AWS Glue.

Utilización de un rastreador de AWS Glue para añadir particiones a las tablas de Athena

Para añadir particiones a las tablas de Athena mediante un rastreador de AWS Glue, siga estos pasos:

  1. Abra la consola de AWS Glue.
  2. En el panel de navegación, elija Rastreadores y, a continuación, seleccione Crear rastreador.
  3. Cree un nombre para el rastreador y, a continuación, seleccione Siguiente.
  4. En Seleccionar orígenes de datos y clasificadores y Configuración del origen de datos, seleccione para ¿Se han asignado ya los datos a tablas de Glue?
  5. En Tablas de Glue, seleccione Agregar tablas y, a continuación, elija la base de datos y la tabla necesarias. Seleccione Siguiente.
  6. Seleccione o cree un rol de IAM para AWS Glue. Seleccione Siguiente.
  7. En Definir resultado y programación, amplíe Opciones avanzadas y, a continuación, seleccione lo siguiente:
    Ignore el cambio y no actualice la tabla en el Catálogo de datos.
    Actualice todas las particiones nuevas y existentes con metadatos procedentes de la tabla.
    Ignore el cambio y no actualice la tabla en el Catálogo de datos.
  8. Elija Siguiente y, a continuación, Crear rastreador para guardar la configuración del rastreador.
  9. Seleccione Ejecutar rastreador. Cuando se ejecuta el rastreador, las particiones se cargan en la tabla.

Para obtener más información, consulte How crawlers work y también Incremental crawls for adding new partitions in AWS Glue.

Utilización de una instrucción de DDL de Athena para cargar particiones

Para cargar particiones mediante una instrucción de DDL de Athena, siga estos pasos:

  1. Abra la consola de Amazon Athena.
  2. En la pestaña Editor de consultas, ejecute el comando ALTER TABLE ADD PARTITION para cargar las particiones.

Información relacionada

¿Por qué mis consultas de Athena tardan mucho en ejecutarse?

Creating tables, updating schema, and adding new partitions in the Data Catalog from AWS Glue ETL jobs

Precios de AWS Glue

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año