Considérations et limitations relatives aux requêtes SQL dans Amazon Athena - Amazon Athena

Considérations et limitations relatives aux requêtes SQL dans Amazon Athena

Lorsque vous exécutez des requêtes dans Athena, gardez à l'esprit les considérations et limitations suivantes :

  • Procédures stockées – Les procédures stockées ne sont pas prises en charge.

  • Nombre maximum de partitions – Le nombre maximum de partitions que vous pouvez créer avec des instructions CREATE TABLE AS SELECT (CTAS) est de 100. Pour obtenir des informations, consultez CREATE TABLE AS. Pour obtenir une solution de contournement, veuillez consulter Utilisation de CTAS et d’INSERT INTO pour créer une table avec plus de 100 partitions.

  • Instructions non prises en charge – Les instructions suivantes ne sont pas prises en charge :

    • CREATE TABLE LIKE n'est pas pris en charge.

    • DESCRIBE INPUT et DESCRIBE OUTPUT ne sont pas pris en charge.

    • Les instructions MERGE ne sont pas prises en charge.

    • Les instructions UPDATE ne sont pas prises en charge.

  • Connecteurs PrestoLes connecteurs Presto ne sont pas pris en charge. Utilisation d'une requête fédérée Amazon Athena pour vous connecter aux sources de données. Pour plus d'informations, consultez Utilisation de la requête fédérée Amazon Athena.

  • Délais d'expiration sur des tables avec plusieurs partitions – Athena peut expirer lors de l'interrogation d'une table qui contient plusieurs milliers de partitions. Cela peut se produire lorsque la table comporte de nombreuses partitions qui ne sont pas de type string. Lorsque vous utilisez le type string, Athena réduit les partitions au niveau du métastore. Toutefois, lorsque vous utilisez d'autres types de données, Athena réduit les partitions côté serveur. Plus vous avez de partitions, plus ce processus est long et plus vos requêtes sont susceptibles d'expirer. Pour résoudre ce problème, définissez votre type de partition sur string de sorte qu'Athena réduise les partitions au niveau du métastore. Cela réduit les frais généraux et empêche les requêtes d'expirer.

  • Stockage Amazon S3 Glacier – Athena ne prend en charge l'interrogation des données ni dans les classe de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, ni dans les niveaux Archive Access ou Deep Archive Access de la classe de stockage S3 Intelligent-Tiering. Les objets dans les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive sont ignorés.

    Les données déplacées ou transférées vers l'une de ces classes ne sont plus lisibles ou interrogeables par Athena, même après la restauration des objets de la classe de stockage. Pour rendre lisibles par Athena les objets restaurés que vous souhaitez interroger, copiez les objets restaurés dans Simple Storage Service (Amazon S3) pour modifier leur classe de stockage. Vous pouvez également utiliser la classe de stockage Simple Storage Service (Amazon S3) Glacier Instant Retrieval qui peut être interrogée par Athena. Pour de plus amples informations, consultez la rubrique Classe de stockage Amazon S3 Glacier Instant Retrieval.

  • Fichiers traités comme masqués – Athena traite les fichiers sources qui commencent par un trait de soulignement (_) ou un point (.) comme étant masqués. Pour contourner cette limitation, renommez les fichiers.

  • Limitation de taille de ligne ou de colonne – La taille d'une ligne ou de ses colonnes ne peut pas dépasser 32 mégaoctets. Cette limite peut être dépassée lorsque, par exemple, une ligne d'un fichier CSV ou JSON contient une seule colonne de 100 mégaoctets. Le dépassement de cette limite peut également produire le message d'erreurLine too long in text file (Ligne trop longue dans le fichier texte). Pour contourner cette limitation, assurez-vous que la somme des données des colonnes d'une ligne est inférieure à 32 Mo.

  • Maximum de la clause LIMIT – Le nombre maximum de lignes pouvant être spécifié pour la clause LIMIT est de 2 147 483 647. Le dépassement de cette limite renvoie le message d'erreur NOT_SUPPORTED: ORDER BY LIMIT > 2147483647 is not supported (NOT_SUPPORTED : ORDER BY LIMIT > 2 147 483 647 n'est pas pris en charge).

  • information_schéma : les requêtes à information_schema sont plus performantes si vous avez une quantité faible à modérée de métadonnées AWS Glue. Si vous disposez d'un grand nombre de métadonnées, des erreurs peuvent se produire. Pour obtenir des informations sur les requêtes à la base de données information_schema pour les métadonnées AWS Glue, consultez Interrogation du AWS Glue Data Catalog.

  • Initialisations de tableaux – En raison d'une limitation de Java, il n'est pas possible d'initialiser dans Athena un tableau comportant plus de 254 arguments.

Pour plus d'informations sur la longueur maximale de la chaîne de requête, les quotas des délais d'expiration des requêtes et les quotas du nombre actif de requêtes DML, consultez Service Quotas.