Noms des tables, des bases de données et des colonnes - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Noms des tables, des bases de données et des colonnes

Suivez ces conseils pour nommer les objets de base de données dans Athena.

Exigences relatives aux noms de base de données, de tables et de colonnes

  • Les caractères acceptables pour les noms de base de données, de tables et de colonnes AWS Glue doivent être une chaîne UTF-8. La longueur de la chaîne ne doit pas être inférieure à 1 ni supérieure à 255 octets. Le dépassement de cette limite génère une erreur telle que La valeur « name » ne remplit pas la condition : le membre doit avoir une longueur inférieure ou égale à 255. Les caractères pouvant être utilisés incluent des espaces et sont définis par le modèle de chaîne d'une seule ligne suivant :

    [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*
  • Actuellement, le modèle AWS Glue regex permet d'ajouter des espaces de début au début des noms. Comme ces espaces de début peuvent être difficiles à détecter et peuvent entraîner des problèmes d'utilisabilité après leur création, évitez de créer des noms d'objets comportant des espaces de début.

  • Si vous utilisez un AWS::Glue::Database AWS CloudFormation modèle pour créer une AWS Glue base de données et que vous ne spécifiez pas de nom de base de données, génère AWS Glue automatiquement un nom de base de données au format resource_name—random_string incompatible avec Athena.

  • Vous pouvez utiliser le gestionnaire de AWS Glue catalogue pour renommer les colonnes, mais pas les noms de tables ou de bases de données. Pour contourner cette limitation, vous devez utiliser une définition de l'ancienne base de données pour créer une base de données portant le nouveau nom. Vous utilisez ensuite les définitions des tables de l'ancienne base de données pour recréer les tables de la nouvelle base de données. Pour ce faire, vous pouvez utiliser le AWS Glue SDK AWS CLI ou. Pour les étapes, consultez Utilisation du AWS CLI pour recréer une AWS Glue base de données et ses tables.

Utilisation de minuscules pour les noms de tables et de colonnes de tables dans Athena

Athena accepte les majuscules et les minuscules dans les requêtes DDL et DML, mais les noms sont mis en minuscules au moment de l'exécution de la requête. Pour cette raison, évitez d'utiliser une casse mixte pour les noms de tables ou de colonnes et ne vous fiez pas à la casse seule dans Athena pour distinguer ces noms. Par exemple, si vous utilisez une instruction DDL pour créer une colonne nommée Castle, la colonne créée sera mise en minuscules à castle. Si vous spécifiez ensuite le nom de la colonne dans une requête DML comme Castle ou CASTLE, Athena mettra le nom en minuscules pour exécuter la requête, mais affichera l'en-tête de la colonne en utilisant la casse que vous avez choisie dans la requête.

Les noms de base de données, de tables et de colonnes doivent être inférieurs ou égaux à 255 caractères.

Noms commençant par un trait de soulignement

Lorsque vous créez des tables, utilisez des guillemets simples inversés pour entourer les noms de tables, de vues ou de colonnes qui commencent par un trait de soulignement. Par exemple :

CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://DOC-EXAMPLE-BUCKET/'

Noms de table, de vue ou de colonne commençant par des nombres

Lors de l'exécution de requêtes SELECT, CTAS ou VIEW, placez des guillemets autour d'identificateurs tels que les noms de table, de vue ou de colonne commençant par un chiffre. Par exemple :

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

Noms de colonnes et types complexes

Pour les types complexes, seuls les caractères alphanumériques, le trait de soulignement (_) et le point (.) sont autorisés dans les noms de colonnes. Pour créer une table et des mappages pour les clés qui ont des caractères restreints, vous pouvez utiliser une instruction DDL personnalisée. Pour plus d'informations, consultez l'article Création de tables dans Amazon Athena à partir de JSON imbriqué et de mappages à l'aide de JSON sur le AWS blog SerDe Big Data.

Mots réservés

Certains mots réservés dans Athena doivent être échappés. Pour spécifier des mots-clés réservés dans des instructions DDL, placez-les entre guillemets obliques (`). Pour spécifier des mots-clés réservés dans les instructions SQL SELECT et dans les requêtes sur les vues, placez-les entre des guillemets doubles ('').

Pour plus d’informations, consultez Mots-clés réservés.

Ressources supplémentaires

Pour connaître la syntaxe complète de création de bases de données et de tables, consultez les pages suivantes.

Pour plus d'informations sur les bases de données et les tables dans AWS Glue, consultez la section Bases de données et tables du manuel du AWS Glue développeur.