Création de tables dans Athena - 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.

Création de tables dans Athena

Pour créer des tables, vous pouvez exécuter des instructions DDL dans la console Athena, utiliser le formulaire Athena Create table ou utiliser un pilote JDBC ou ODBC. Athena utilise Apache Hive pour définir des tables et créer des bases de données, qui sont essentiellement des espaces de noms logiques de tables. Athena prend en charge diverses bibliothèques de sérialiseur-désérialiseur (SerDe) pour créer des tables pour des formats de données spécifiques. Pour obtenir la liste des SerDe bibliothèques prises en charge, consultezChoisissez un SerDe pour vos données.

Lorsque vous créez une table de base de données dans Athena, vous décrivez simplement le schéma et l'emplacement où les données de table sont situées dans Simple Storage Service (Amazon S3) pour l'interrogation au moment de la lecture. Athena ne modifie pas vos données dans Simple Storage Service (Amazon S3). Les notions de base de données et de table ont donc une signification légèrement différente par rapport aux systèmes de base de données relationnelle classiques, car les données ne sont pas stockées avec la définition de schéma pour la base de données et la table.

Athena stocke le schéma dans le AWS Glue Data Catalog et l'utilise pour lire les données lorsque vous interrogez la table à l'aide de SQL. Cette schema-on-readapproche, qui projette un schéma sur vos données lorsque vous exécutez une requête, élimine le besoin de charger ou de transformer les données.

Considérations et restrictions

Voici quelques limitations et aspects importants à prendre en compte pour les tables dans Athena.

Considérations relatives à Amazon S3

Lorsque vous créez une table, vous spécifiez un emplacement de compartiment Simple Storage Service (Amazon S3) pour les données sous-jacentes à l'aide de la clause LOCATION. Éléments à prendre en compte :

Pour plus d'informations sur la spécification de l'emplacement de vos données dans Amazon S3, consultezSpécifier l'emplacement d'une table dans Amazon S3.

Autres considérations

  • Les transformations de données transactionnelles ne sont pas prises en charge : Athena ne prend pas en charge les opérations basées sur les transactions (telles que celles trouvées dans Hive ou Presto) sur les données des tables. Pour obtenir la liste complète des mots-clés non pris en charge, consultez DDL non pris en charge.

  • Les opérations sur les tables sont conformes à l'ACID : lorsque vous créez, mettez à jour ou supprimez des tables, leur conformité à l'ACID est garantie. Par exemple, si plusieurs utilisateurs ou clients tentent de créer ou de modifier une table existante en même temps, un seule opération aboutira.

  • Les tables sont externes : sauf lors de la création de tables Iceberg, utilisez toujours le EXTERNAL mot clé. Si vous utilisez CREATE TABLE sans le mot clé EXTERNAL pour des tables non Iceberg, Athena émet une erreur. Lorsque vous supprimez une table dans Athena, seules les métadonnées de la table sont supprimées ; les données sont conservées dans Simple Storage Service (Amazon S3).

  • Longueur maximale de la chaîne de requête : la longueur maximale de la chaîne de requête est de 256 Ko.

  • Si vous utilisez l'opération AWS Glue CreateTableAPI ou le AWS CloudFormation AWS::Glue::Tablemodèle pour créer une table à utiliser dans Athena sans spécifier la TableType propriété, puis si vous exécutez une requête DDL du type SHOW CREATE TABLE ouMSCK REPAIR TABLE, vous pouvez recevoir le message d'erreur FAILED : NullPointerException Name is null.

    Pour résoudre l'erreur, spécifiez une valeur pour l'TableInputTableTypeattribut dans le cadre de l'appel ou du AWS CloudFormation modèle d' AWS Glue CreateTableAPI. Parmi les valeurs possibles pour TableType figurent EXTERNAL_TABLE ou VIRTUAL_VIEW.

    Cette exigence s'applique uniquement lorsque vous créez une table à l'aide de l'opération AWS Glue CreateTable API ou du AWS::Glue::Table modèle. Si vous créez une table pour Athena en utilisant à l'aide d'une instruction DDL ou d'un crawler AWS Glue , la propriété TableType est définie pour vous automatiquement.