Saltar al contenido

¿Cómo puedo crear y usar tablas con particiones en Amazon Athena?

4 minutos de lectura
0

Quiero crear tablas con particiones en Amazon Athena y utilizarlas para mejorar mis consultas.

Descripción corta

Para crear una tabla de Athena con particiones, sigue estos pasos:

  1. Almacena tus datos como una partición en buckets de Amazon Simple Storage Service (Amazon S3).
  2. Especifica las columnas de partición y la ubicación raíz de los datos de las particiones cuando crees la tabla.
  3. Carga las particiones en el catálogo de datos de AWS Glue.
    Nota: La tabla hace referencia al catálogo de datos cuando ejecutas las consultas.

Resolución

Almacenamiento de los datos como una partición en Amazon S3

Elige uno de los siguientes formatos para almacenar los datos con particiones:

  • Formato de estilo Hive: s3://doc-example-bucket/example-folder/year=2021/month=01/day=01/myfile.csv
    Nota: La ruta incluye los nombres de las claves de partición y sus valores. Por ejemplo, year=2021.
  • Formato de estilo distinto de Hive: s3://doc-example-bucket/example-folder/2021/01/01/myfile.csv

Especificación de la información de partición al crear la tabla

En la instrucción CREATE TABLE, incluye PARTITIONED BY para definir las columnas de la partición y LOCATION para especificar la ubicación raíz de los datos con particiones.

Ejemplo de consulta:

CREATE EXTERNAL TABLE doc-example-table (
first string,
last string,
username string
)
PARTITIONED BY (year string, month string, day string)
STORED AS parquet
LOCATION 's3://doc-example-bucket/example-folder'

Nota: En la consulta anterior, sustituye los siguientes valores por los tuyos:

  • doc-example-table por el nombre de la tabla que estás creando
  • doc-example-bucket por el nombre del bucket de S3 donde guardas la tabla
  • example-folder por el nombre de la carpeta de S3
  • first, last y username por los nombres de las columnas
  • year string, month string y day string por los nombres de las columnas de la partición

Carga de particiones al catálogo de datos

Tras crear la tabla, elige uno de los métodos siguientes para agregar las particiones al catálogo de datos.

Uso de la consulta MSCK REPAIR TABLE para los datos con formato de estilo Hive

Para actualizar los metadatos del catálogo de datos después de agregar las particiones, ejecuta el comando MSCK REPAIR TABLE:

MSCK REPAIR TABLE doc-example-table

Nota: Sustituye doc-example-table por tu tabla.

Si tienes más de unos pocos miles de particiones, no se recomienda usar este método. Es posible que las consultas de DDL experimenten problemas de tiempo de espera. Para obtener más información, consulta ¿Por qué mi consulta MSCK REPAIR TABLE no agrega particiones al Catálogo de datos de AWS Glue?

Uso de la consulta ALTER TABLE ADD PARTITION para los datos con estilo de formato Hive o distinto de Hive

Para agregar particiones al catálogo de datos, ejecuta el comando ALTER TABLE ADD PARTITION.

Para agregar una sola partición, ejecuta el siguiente comando:

ALTER TABLE doc-example-table ADD PARTITION (year='2021', month='01', day='01') LOCATION 's3://doc-example-bucket/example-folder/2021/01/01/'

Para agregar varias particiones en una consulta, ejecuta el siguiente comando:

ALTER TABLE doc-example-table ADD  
PARTITION (year='2021', month='01', day='01') LOCATION 's3://doc-example-bucket/example-folder/2021/01/01/'  
PARTITION (year='2020', month='06', day='01') LOCATION 's3://doc-example-bucket/example-folder/2020/06/01/'

Nota: En los comandos anteriores, sustituye los valores de ejemplo por tus valores.

Uso del rastreador de AWS Glue para los datos con formato de estilo Hive y distinto de Hive

Para inferir automáticamente el esquema de la tabla de tu conjunto de datos, crea la tabla, agrega las particiones al catálogo de datos y usa el rastreador de AWS Glue. También puedes usar el rastreador solo para agregar particiones a una tabla creada manualmente con la instrucción CREATE TABLE.

Para obtener más información, consulta Personalización del comportamiento del rastreador.

Uso de la proyección de particiones en el caso de datos con muchas particiones en Amazon S3

No se recomienda ejecutar consultas en datos con muchas particiones en Amazon S3 porque las consultas son lentas. Si tus datos tienen muchas particiones, utiliza la proyección de particiones para acelerar el proceso de consulta y automatizar la administración de particiones.

Información relacionada

¿Por qué no recibo ningún registro cuando consulto mi tabla de Amazon Athena?

¿Por qué mi consulta de Athena no devolvió resultados después de agregar nuevas particiones?

OFICIAL DE AWSActualizada hace 2 años
1 comentario

This article was reviewed and updated on 2024-08-09.

EXPERTO

respondido hace un mes