Nombrar tablas, bases de datos y columnas - Amazon Athena

Nombrar tablas, bases de datos y columnas

Utilice estos consejos para asignar un nombre a las columnas, las tablas y las bases de datos en Athena.

Requisitos de base de datos, tablas y columnas

  • Los caracteres aceptables para nombres de bases de datos, nombres de tablas y nombres de columnas en AWS Glue deben ser una cadena UTF-8 y deben estar en minúsculas. Tenga en cuenta que Athena quita automáticamente las mayúsculas de los nombres en las consultas DDL cuando crea bases de datos, tablas o columnas. La cadena debe ser 1 byte de largo como mínimo y 255 bytes como máximo.

  • Actualmente, es posible incluir espacios al principio de los nombres. Debido a que estos espacios iniciales pueden ser difíciles de detectar y pueden provocar problemas de uso después de su creación, evite crear inadvertidamente nombres de objetos que tengan espacios iniciales.

  • Si usa una plantilla AWS::Glue::Database de AWS CloudFormation para crear una base de datos de AWS Glue y no especifica ningún nombre de la base de datos, AWS Glue genera automáticamente un nombre de la base de datos con el formato nombre_recurso–cadena_aleatoria que no es compatible con Athena.

  • Puede utilizar el administrador de catálogo de AWS Glue para cambiar el nombre de las columnas, pero no los nombres de las tablas ni los nombres de bases de datos. Para evitar esta limitación, debe usar una definición de la base de datos antigua para crear una base de datos con el nombre nuevo. A continuación, utilice las definiciones de las tablas de la base de datos antigua para volver a crear las tablas en la base de datos nueva. Para ello, puede utilizar la AWS CLI o el SDK de AWS Glue. Para ver los pasos, consulte Usar la AWS CLI para recrear una base de datos de AWS Glue y sus tablas.

Utilice minúsculas para los nombres de tablas y columnas de las tablas de Athena

Athena acepta mayúsculas y minúsculas en consultas DDL y DML, pero minúsculas en los nombres cuando ejecuta la consulta. Por este motivo, evite el uso de mayúsculas y minúsculas para nombres de tablas o columnas, y no confíe en el uso de mayúsculas y minúsculas solamente en Athena para distinguir dichos nombres. Por ejemplo, si utiliza una instrucción DDL para crear una columna denominada Castle, la columna creada irá en minúsculas en castle. Si, a continuación, especifica el nombre de columna en una consulta DML como Castle o CASTLE, Athena usará minúsculas en el nombre para que ejecute la consulta, pero mostrará el encabezado de columna utilizando el modo que eligió en la consulta.

Los nombres de base de datos, tablas y columnas deben tener 255 caracteres o menos.

Nombres que comienzan con un guion bajo

Al crear tablas, utilice acentos graves para entrecomillar los nombres de las tablas, vistas o columnas que empiecen por un guion bajo. Por ejemplo:

CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://amzn-s3-demo-bucket/'

Nombres de tabla, vista o columna que comienzan por números

Al ejecutar consultas SELECT, CTAS o VIEW, ponga comillas alrededor de identificadores como los nombres de tabla, vista o columna que comienzan por un dígito. Por ejemplo:

CREATE OR REPLACE VIEW "123view" AS SELECT "123columnone", "123columntwo" FROM "234table"

Nombres de columna y tipos complejos

Para los tipos complejos, solo están permitidos caracteres alfanuméricos, guion bajo (_) y período (.) en los nombres de las columnas. Para crear una tabla y mapeos para claves con caracteres restringidos, puede utilizar una instrucción DDL personalizada. Para obtener más información, consulte el artículo Crear tablas en Amazon Athena a partir de JSON anidado y asignaciones por medio de JSONSerDe en el Blog de macrodatos de AWS.

Palabras reservadas

Ciertas palabras reservadas de Athena deben tener caracteres de escape. Para entrecomillar las palabras reservadas en instrucciones DDL, utilice acentos graves (`) como carácter de escape. Para entrecomillar palabras reservadas en instrucciones SQL SELECT y en consultas en vistas, utilice dobles comillas (“”) como carácter de escape.

Para obtener más información, consulte Aplicación de caracteres de escape a las palabras clave reservadas de las consultas.

Recursos adicionales

Para ver la sintaxis de creación de bases de datos y tablas completa, consulte las siguientes páginas.

Para obtener más información sobre las bases de datos y las tablas en AWS Glue, consulte Bases de datos y Tablas en la Guía para desarrolladores de AWS Glue.