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.
Pour créer des tables, vous pouvez exécuter DDL des instructions dans la console Athena, utiliser le formulaire Athena Create table ou utiliser un ou un JDBC pilote. 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 enregistre le schéma dans le AWS Glue Data Catalog et l'utilise pour lire les données lorsque vous interrogez la table à l'aide deSQL. 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 :
-
Athena peut uniquement interroger la dernière version des données sur un compartiment Simple Storage Service (Amazon S3) versionné, et ne peut pas interroger les versions précédentes des données.
-
Vous devez disposer des autorisations nécessaires pour utiliser les données de l'emplacement Amazon S3. Pour de plus amples informations, veuillez consulter Contrôlez l'accès à Amazon S3 depuis Athena.
-
Athena prend en charge l'interrogation des objets stockés avec plusieurs classes de stockage dans le même compartiment spécifié par la clause
LOCATION
. Par exemple, vous pouvez interroger des données dans les objets stockés dans différentes classes de stockage (Standard, Standard – Accès peu fréquent et Hiérarchisation intelligente) dans Simple Storage Service (Amazon S3). -
Athena prend en charge les compartiments de type Paiement par le demandeur. Pour savoir comment activer « Requester Pays » pour les compartiments contenant les données source que vous souhaitez interroger dans Athena, consultez Créer un groupe de travail.
-
Vous pouvez utiliser Athena pour interroger des objets restaurés à partir des classes de stockage S3 Glacier Flexible Retrieval (anciennement Glacier) et S3 Glacier Deep Archive Amazon S3, mais vous devez activer cette fonctionnalité table par table. Si vous ne souhaitez pas activer la fonctionnalité sur une table avant d'exécuter une requête, Athena ignore tous les objets S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive de la table lors de l'exécution de la requête. Pour de plus amples informations, veuillez consulter Interrogez les objets Amazon S3 Glacier restaurés.
Pour plus d'informations sur les classes de stockage, consultez les sections Classes de stockage, Modification de la classe de stockage d'un objet dans Amazon S3, Transition vers la classe de GLACIER stockage (archivage des objets) et compartiments Requester Pays dans le guide de l'utilisateur d'Amazon Simple Storage Service.
-
Si vous exécutez des requêtes sur les compartiments Simple Storage Service (Amazon S3) avec un grand nombre d'objets et que les données ne sont pas partitionnées, de telles requêtes peuvent affecter les limites de débit de demande Get dans Simple Storage Service (Amazon S3) et conduire à des exceptions Simple Storage Service (Amazon S3). Pour éviter des erreurs, partitionnez vos données. En outre, envisagez de régler vos taux de demande Simple Storage Service (Amazon S3). Pour plus d'informations, consultez Considérations en matière de débit de demandes et de performances.
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 une liste complète des mots clés non pris en charge, voir Non pris en charge DDL.
-
Les opérations sur les tables sont les suivantes ACID : lorsque vous créez, mettez à jour ou supprimez des tables, leur ACID conformité 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 EXTERNAL : sauf lors de la création de tables Iceberg, utilisez toujours le
EXTERNAL
mot clé. Si vous utilisezCREATE 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 le plugin AWS Glue CreateTableAPIopération ou AWS CloudFormation
AWS::Glue::Table
modèle pour créer une table à utiliser dans Athena sans spécifier laTableType
propriété, puis exécuter une DDL requête du typeSHOW CREATE TABLE
ouMSCK REPAIR TABLE
, vous pouvez recevoir le message d'erreur suivantFAILED: Le NullPointerException nom est nul
.Pour résoudre l'erreur, spécifiez une valeur pour l'TableInput
TableType
attribut dans le cadre du AWS GlueCreateTable
APIappelez ou AWS CloudFormation modèle. Parmi les valeurs possibles pourTableType
figurentEXTERNAL_TABLE
ouVIRTUAL_VIEW
.Cette exigence s'applique uniquement lorsque vous créez une table à l'aide du AWS Glue
CreateTable
APIopération ou leAWS::Glue::Table
modèle. Si vous créez un tableau pour Athéna à l'aide d'une DDL instruction ou d'un AWS Glue crawler, laTableType
propriété est définie automatiquement pour vous.