Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Résoudre les problèmes dans Athena

Mode de mise au point
Résoudre les problèmes 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.

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.

L'équipe d'Athena a rassemblé les informations suivantes de résolution de problèmes à partir des problèmes des clients. Bien qu'elles ne soient pas exhaustives, elles comprennent des conseils concernant certains problèmes courants de performances, de délais d'attente et de manque de mémoire.

CREATE TABLE AS SELECT (CTAS)

Il y a duplication des données en cas d'instructions CTAS simultanées

Athena ne maintient pas la validation simultanée pour CTAS. Assurez-vous qu'il n'y a pas d'instruction CTAS dupliquée pour le même emplacement au même moment. Même si une instruction CTAS ou INSERT INTO échoue, les données orphelines peuvent être laissées dans l'emplacement de données spécifié dans l'instruction.

HIVE_TOO_MANY_OPEN_PARTITIONS

Lorsque vous utilisez une instruction CTAS pour créer une table comportant plus de 100 partitions, l'erreur HIVE_TOO_MANY_OPEN_PARTITIONS: Exceeded limit of 100 open writers for partitions/buckets (Dépassement de la limite de 100 rédacteurs ouverts pour les partitions/compartiments) peut s'afficher. Pour contourner ces limitations, vous pouvez utiliser une instruction CTAS et une série d'instructions INSERT INTO qui créent ou insèrent jusqu'à 100 partitions chacune. Pour de plus amples informations, veuillez consulter Utilisez CTAS et INSERT INTO pour contourner la limite de 100 partitions.

Problèmes de fichiers de données

Athena ne peut pas lire les fichiers cachés

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

Athena lit les fichiers que j'ai exclus du crawler AWS Glue

Athena ne reconnaît pas les modèles d'exclusion que vous spécifiez à un AWS Glue robot d'exploration. Par exemple, si vous disposez d'un compartiment Simple Storage Service (Amazon S3) contenant à la fois des fichiers .csv et .json et que vous excluez les fichiers .json du Crawler, Athena interroge les deux groupes de fichiers. Pour éviter cela, placez les fichiers que vous voulez exclure dans un autre emplacement.

HIVE_BAD_DATA : erreur lors de l'analyse de la valeur du champ

Cette erreur peut se produire dans les cas suivants :

HIVE_CANNOT_OPEN_SPLIT : Erreur lors de l'ouverture de Hive Split s3://amzn-s3-demo-bucket

Cette erreur peut se produire lorsque vous interrogez un préfixe de compartiment Simple Storage Service (Amazon S3) qui contient un grand nombre d'objets. Pour plus d'informations, consultez Comment résoudre l'erreur « HIVE_CANNOT_OPEN_SPLIT : Error opening Hive split s3://amzn-s3-demo-bucket/ : Slow down » dans Athena ? dans le AWS Knowledge Center.

HIVE_CURSOR_ERROR : com.amazonaws.services.s3.model.AmazonS3Exception : la clé spécifiée n'existe pas

Cette erreur se produit généralement lorsqu'un fichier est supprimé alors qu'une requête est en cours d'exécution. Vous pouvez soit réexécuter la requête, soit vérifier votre flux de travail pour voir si une autre tâche ou un autre processus modifie les fichiers pendant l'exécution de la requête.

HIVE_CURSOR_ERROR : fin inattendue du flux d'entrée

Ce message indique que le fichier est soit corrompu, soit vide. Vérifiez l'intégrité du fichier et exécutez à nouveau la requête.

HIVE_FILESYSTEM_ERROR : Taille du fichier 1234567 incorrecte pour le fichier

Ce message peut survenir lorsqu'un fichier a été modifié entre la planification de la requête et son exécution. Cela se produit généralement lorsqu'un fichier sur Simple Storage Service (Amazon S3) est remplacé sur place (par exemple, un PUT est exécuté sur une clé où un objet existe déjà). Athena ne prend pas en charge la suppression ou le remplacement du contenu d'un fichier lorsqu'une requête est en cours d'exécution. Pour éviter cette erreur, planifiez des tâches qui écrasent ou suppriment des fichiers à des moments où les requêtes ne sont pas exécutées, ou qui n'écrivent des données que dans de nouveaux fichiers ou partitions.

HIVE_UNKNOWN_ERROR : impossible de créer le format d'entrée

Cette erreur peut être le résultat de problèmes tels que :

  • Le AWS Glue robot n'a pas pu classer le format des données

  • Certaines propriétés de définition de AWS Glue table sont vides

  • Athena ne prend pas en charge le format de données des fichiers de Simple Storage Service (Amazon S3)

Pour plus d'informations, consultez la rubrique Comment résoudre l'erreur « impossible de créer le format d'entrée » dans Athena ? dans le Centre de connaissances AWS ou regardez la vidéo du Centre de connaissances.

L'emplacement S3 fourni pour enregistrer les résultats de votre requête n'est pas valide.

Assurez-vous que vous avez spécifié un emplacement S3 valide pour les résultats de votre requête. Pour plus d'informations, consultez Spécifier l'emplacement des résultats de la requête dans la rubrique Travailler avec les résultats des requêtes et les requêtes récentes.

Tables Linux Foundation Delta Lake

Schéma de table Delta Lake non synchronisé

Lorsque vous interrogez une table Delta Lake dont le schéma est obsolète, le message d'erreur suivant peut s'afficher : AWS Glue

INVALID_GLUE_SCHEMA: Delta Lake table schema in Glue does not match the most recent schema of the Delta Lake transaction log. Please ensure that you have the correct schema defined in Glue.

Le schéma peut devenir obsolète s'il est modifié AWS Glue après avoir été ajouté à Athena. Pour mettre à jour le schéma, effectuez l'une des étapes suivantes :

Requêtes fédérées

Délai d'attente pendant l'appel ListTableMetadata

Un appel à l'ListTableMetadataAPI peut expirer si la source de données contient de nombreuses tables, si la source de données est lente ou si le réseau est lent. Pour résoudre ce problème, essayez les étapes suivantes.

  • Vérifier le nombre de tables : si vous avez plus de 1 000 tables, essayez de réduire le nombre de tables. Pour obtenir la réponse ListTableMetadata la plus rapide, nous vous recommandons d'avoir moins de 1 000 tables par catalogue.

  • Vérifier la configuration Lambda – Il est essentiel de surveiller le comportement de la fonction Lambda. Lorsque vous utilisez des catalogues fédérés, veillez à examiner les journaux d'exécution de la fonction Lambda. Sur la base des résultats, ajustez les valeurs de mémoire et de délai d'expiration en conséquence. Pour identifier tout problème potentiel lié aux délais d'expiration, parcourez à nouveau votre configuration Lambda. Pour plus d'informations, consultez Configuration du délai d'expiration de la fonction (console) dans le Guide du développeur AWS Lambda .

  • Vérifier les journaux des sources de données fédérées – Examinez les journaux et les messages d'erreur de la source de données fédérée pour voir s'il existe des problèmes ou des erreurs. Les journaux peuvent fournir des informations précieuses sur la cause du délai d'expiration.

  • Utiliser StartQueryExecution pour récupérer les métadonnées : si vous avez plus de 1 000 tables, la récupération des métadonnées à l'aide de votre connecteur fédéré peut prendre plus de temps que prévu. Étant donné que la nature asynchrone de StartQueryExecutiongarantit qu'Athena exécute la requête de la manière la plus optimale, envisagez de l'utiliser StartQueryExecution comme alternative à. ListTableMetadata Les AWS CLI exemples suivants montrent StartQueryExecution comment utiliser au lieu d'ListTableMetadataobtenir toutes les métadonnées des tables de votre catalogue de données.

    Commencez par exécuter une requête qui récupère toutes les tables, comme dans l'exemple suivant.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT table_name FROM information_schema.tables LIMIT 50" \ --work-group "your-work-group-name"

    Ensuite, récupérez les métadonnées d'une table individuelle, comme dans l'exemple suivant.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT * FROM information_schema.columns \ WHERE table_name = 'your-table-name' AND \ table_catalog = 'your-catalog-name'" \ --work-group "your-work-group-name"

    Le temps nécessaire pour obtenir les résultats dépend du nombre de tables de votre catalogue.

Pour plus d'informations sur la résolution des problèmes liés aux requêtes fédérées, consultez Common_Problems dans la aws-athena-query-federation section awslabs/ de GitHub, ou consultez la documentation des connecteurs de source de données Athena individuels.

Erreurs de données NULL ou incorrectes lors de la tentative de lecture de données JSON

Les erreurs de données NULL ou incorrectes lorsque vous essayez de lire des données JSON peuvent avoir plusieurs causes. Pour identifier les lignes à l'origine des erreurs lorsque vous utilisez OpenX SerDe, définissez surignore.malformed.json. true Les registres mal formés seront renvoyés comme NULL. Pour plus d'informations, consultez la rubrique Je reçois des erreurs lorsque j'essaie de lire des données JSON dans Amazon Athena dans le Centre de connaissances AWS ou regardez la vidéo du Centre de connaissances.

HIVE_BAD_DATA : Erreur lors de l'analyse de la valeur du champ 0 : java.lang.String ne peut pas être converti en org.openx.data.jsonserde.json. JSONObject

Le SerDe OpenX JSON SerDe renvoie cette erreur lorsqu'il ne parvient pas à analyser une colonne dans une requête Athena. Cela peut se produire si vous définissez une colonne comme un map ou un struct, mais que les données sous-jacentes sont en fait un string, un int ou un autre type primitif.

HIVE_CURSOR_ERROR : La ligne n'est pas un objet JSON valide - : clé dupliquée JSONException

Cette erreur se produit lorsque vous utilisez Athena pour interroger AWS Config des ressources comportant plusieurs balises portant le même nom dans différents cas. La solution consiste à exécuter CREATE TABLE en utilisant WITH SERDEPROPERTIES 'case.insensitive'='false' et à mapper les noms. Pour plus d'informations sur case.insensitive et le mappage, voir JSON SerDe bibliothèques. Pour plus d'informations, voir Comment résoudre le problème « HIVE_CURSOR_ERROR : Row is not a valid JSON object - JSONException : Duplicate key » lors de la lecture de fichiers depuis Athena ? AWS Config dans le AWS Knowledge Center.

Messages HIVE_CURSOR_ERROR avec JSON formaté à des fins d'impression (pretty-printed)

Les bibliothèques Ruche JSON SerDe et OpenX JSON SerDe nécessitent que chaque document JSON soit sur une seule ligne de texte, sans caractères de fin de ligne pour séparer les champs de l'enregistrement. Si le texte JSON est dans un joli format d'impression, vous pouvez recevoir un message d'erreur tel que HIVE_CURSOR_ERROR : Row is not a valid JSON Object ou HIVE_CURSOR_ERROR : : Unexpected JsonParseException end-of-input : expected close marker for OBJECT lorsque vous essayez d'interroger la table après l'avoir créée. Pour plus d'informations, consultez les fichiers de données JSON dans la SerDe documentation OpenX sur. GitHub

Plusieurs registres JSON renvoient un SELECT COUNT de 1

Si vous utilisez le SerDe OpenX JSON SerDe, assurez-vous que les registres sont séparés par un caractère de saut de ligne. Pour plus d'informations, consultez La requête SELECT COUNT dans Amazon Athena ne renvoie qu'un seul enregistrement, même si le fichier JSON d'entrée contient plusieurs enregistrements dans le AWS Knowledge Center.

Impossible d'interroger une table créée par un AWS Glue robot d'exploration qui utilise un classificateur JSON personnalisé

Le moteur Athena ne prend pas en charge les classificateurs JSON personnalisés. Pour contourner ce problème, créez une nouvelle table sans le classificateur personnalisé. Pour transformer le JSON, vous pouvez utiliser CTAS ou créer une vue. Par exemple, si vous travaillez avec des tableaux, vous pouvez utiliser l'option UNNEST pour aplatir le JSON. Une autre option consiste à utiliser une tâche AWS Glue ETL qui prend en charge le classificateur personnalisé, à convertir les données en parquet dans Amazon S3, puis à les interroger dans Athena.

MSCK REPAIR TABLE

Pour plus d'informations sur les problèmes liés à MSCK REPARATION TABLE, consultez les sections Considérations et restrictions et Résolution des problèmes de la page MSCK REPAIR TABLE.

Problèmes de sortie

Impossible de vérifier/créer un compartiment de sortie

Cette erreur peut se produire si l'emplacement spécifié pour le résultat de la requête n'existe pas ou si les autorisations appropriées ne sont pas présentes. Pour plus d'informations, consultez Comment résoudre l'erreur « Impossible de vérifier/créer un compartiment de sortie » dans Amazon Athena ? dans le AWS Knowledge Center.

Le résultat TIMESTAMP est vide

Athena nécessite le format TIMESTAMP de Java. Pour plus d'informations, consultez la rubrique Lorsque j'interroge une table dans Amazon Athena, le résultat TIMESTAMP est vide dans le Centre de connaissances AWS .

Stockage des résultats de la requête Athena dans un format autre que CSV

Par défaut, Athena n'affiche que des fichiers au format CSV. Pour afficher les résultats d'une requête SELECT dans un autre format, vous pouvez utiliser l'instruction UNLOAD. Pour de plus amples informations, veuillez consulter UNLOAD. Vous pouvez également utiliser une requête CTAS qui utilise la propriété de table format pour configurer le format de sortie. Contrairement à UNLOAD, la technique CTAS nécessite la création d'une table. Pour plus d'informations, voir Comment puis-je stocker une sortie de requête Athena dans un format autre que CSV, tel qu'un format compressé ? dans le AWS Knowledge Center.

L'emplacement S3 fourni pour enregistrer les résultats de votre requête n'est pas valide

Il est possible que vous receviez ce message d'erreur si l'emplacement de votre compartiment de sortie ne se trouve pas dans la même région que celle dans laquelle vous exécutez votre requête. Pour éviter cela, spécifiez l'emplacement des résultats de la requête dans la région dans laquelle vous exécutez la requête. Pour les étapes, consultez Spécifier l'emplacement des résultats de la requête.

Problèmes liés à Parquet

org.apache.parquet.io. GroupColumnL'IO ne peut pas être converti vers org.apache.parquet.io. PrimitiveColumnIO

Cette erreur est causée par une inadéquation du schéma Parquet. Une colonne qui a un type non primitif (par exemple, array) a été déclarée comme un type primitif (par exemple, string) dans AWS Glue. Pour résoudre ce problème, vérifiez le schéma de données dans les fichiers et comparez-le au schéma déclaré dans AWS Glue.

Problèmes de statistiques liés à Parquet

Lorsque vous lisez des données Parquet, vous pouvez recevoir des messages d'erreur tels que les suivants :

HIVE_CANNOT_OPEN_SPLIT: Index x out of bounds for length y HIVE_CURSOR_ERROR: Failed to read x bytes HIVE_CURSOR_ERROR: FailureException at Malformed input: offset=x HIVE_CURSOR_ERROR: FailureException at java.io.IOException: can not read class org.apache.parquet.format.PageHeader: Socket is closed by peer.

Pour contourner ce problème, utilisez l'ALTER TABLE SET TBLPROPERTIESinstruction CREATE TABLE or pour définir la SerDe parquet.ignore.statistics propriété Parquet surtrue, comme dans les exemples suivants.

Exemple CREATE TABLE

... ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' WITH SERDEPROPERTIES ('parquet.ignore.statistics'='true') STORED AS PARQUET ...

Exemple ALTER TABLE

ALTER TABLE ... SET TBLPROPERTIES ('parquet.ignore.statistics'='true')

Pour plus d'informations sur le Parquet Hive SerDe, consultezParquet SerDe.

Problèmes de partitionnement

MSCK REPARATION TABLE ne supprime pas les partitions périmées

Si vous supprimez manuellement une partition dans Simple Storage Service (Amazon S3), puis exécutez MSCK REPAIR TABLE, il est possible que vous receviez le message d'erreur Partitions missing from filesystem (Partitions manquantes dans le système de fichiers). Cela se produit parce que MSCK REPAIR TABLE ne supprime pas les partitions périmées des métadonnées de la table. Utilisez ALTER TABLE DROP PARTITION pour supprimer manuellement les partitions périmées. Pour plus d'informations, consultez la section « Résolution des problèmes » de la rubrique MSCK REPAIR TABLE.

Échec de MSCK REPAIR TABLE

Lorsqu'un grand nombre de partitions (par exemple, plus de 100 000) sont associées à une table particulière, MSCK REPAIR TABLE peut échouer en raison de limitations de mémoire. Pour contourner cette limite, utilisez ALTER TABLE ADD PARTITION à la place.

MSCK REPAIR TABLE détecte les partitions mais ne les ajoute pas AWS Glue

Ce problème peut se produire si un chemin d'accès Simple Storage Service (Amazon S3) est en majuscules au lieu de minuscules ou si une politique IAM n'autorise pas l'action glue:BatchCreatePartition. Pour plus d'informations, consultez MSCK REPAIR TABLE détecte les partitions dans Athena mais ne les ajoute pas AWS Glue Data Catalog dans le Knowledge Center. AWS

Partitionnez les plages de projection avec le format de date dd-MM-yyyy-HH -mm-ss ou ne fonctionnent pas yyyy-MM-dd

Pour fonctionner correctement, le format de date doit être défini sur yyyy-MM-dd HH:00:00. Pour plus d'informations, consultez l'article Dépassement de la capacité de la pile : la projection de partition Athena ne fonctionne pas comme prévu.

PARTITION BY ne prend pas en charge le type BIGINT

Convertir le type de données en string et réessayer.

Pas de partitions significatives disponibles

Ce message d'erreur signifie généralement que les paramètres de la partition ont été corrompus. Pour résoudre ce problème, abandonnez la table et créez une table avec de nouvelles partitions.

La projection de partition ne fonctionne pas en conjonction avec les partitions de plage

Vérifiez que la plage de temps correspond à la projection. <columnName>.interval .unit correspond au délimiteur des partitions. Par exemple, si les partitions sont délimitées par des jours, l'unité de plage des heures ne fonctionnera pas.

Erreur de projection de partition lorsque la plage est spécifiée par un tiret

La spécification de la propriété de la range table par un tiret au lieu d'une virgule produit une erreur du type INVALID_TABLE_PROPERTY : Pour la chaîne de saisie : "- ». number number Veillez à ce que les valeurs de la plage soient séparées par une virgule, et non par un tiret. Pour de plus amples informations, veuillez consulter Type d'entier.

HIVE_UNKNOWN_ERROR : impossible de créer le format d'entrée

Une ou plusieurs des partitions Glue sont déclarées dans un format différent, car chaque partition Glue a son propre format d'entrée spécifique de manière indépendante. Vérifiez comment vos partitions sont définies dans AWS Glue.

HIVE_PARTITION_SCHEMA_MISMATCH

Si le schéma d'une partition diffère du schéma de la table, la requête peut échouer avec le message d'erreur HIVE_PARTITION_SCHEMA_MISMATCH.

Pour chaque table du catalogue de AWS Glue données comportant des colonnes de partition, le schéma est stocké au niveau de la table et pour chaque partition individuelle de la table. Le schéma des partitions est renseigné par un AWS Glue robot d'exploration en fonction de l'échantillon de données qu'il lit dans la partition.

Lorsqu'Athena exécute une requête, il valide le schéma de la table et le schéma de toute partition nécessaire à la requête. La validation compare les types de données des colonnes dans l'ordre et s'assure qu'ils correspondent pour les colonnes qui se chevauchent. Ceci empêche les opérations inattendues, telles que l'ajout ou la suppression de colonnes depuis le milieu d'une table. Si Athena détecte que le schéma d'une partition diffère du schéma de la table, Athena risque de ne pas pouvoir traiter la requête et échoue avec HIVE_PARTITION_SCHEMA_MISMATCH.

Il existe deux moyens de corriger ce problème. Tout d'abord, si les données ont été ajoutées accidentellement, vous pouvez supprimer les fichiers de données à l'origine de la différence de schéma, supprimer la partition et exécuter à nouveau le robot d'indexation sur les données. Deuxièmement, vous pouvez supprimer la partition individuelle, puis exécuter MSCK REPAIR dans Athena pour recréer la partition à l'aide du schéma de la table. Cette deuxième option fonctionne uniquement si vous êtes certain que le schéma appliqué continuera de lire les données correctement.

SemanticException la table n'est pas partitionnée mais la spécification de partition existe

Cette erreur peut se produire lorsqu'aucune partition n'a été définie dans l'instruction CREATE TABLE. Pour plus d'informations, consultez Comment puis-je résoudre l'erreur « ÉCHEC : la SemanticException table n'est pas partitionnée mais la spécification de partition existe » dans Athena ? dans le AWS Knowledge Center.

Fichiers _$folder$ zéro octet

Si vous exécutez une instruction ALTER TABLE ADD PARTITION et spécifiez par erreur une partition déjà existante et un emplacement Simple Storage Service (Amazon S3) incorrect, des fichiers d'emplacement zéro octet du format partition_value_$folder$ sont créés dans Simple Storage Service (Amazon S3). Vous devez supprimer ces fichiers manuellement.

Pour éviter que cela ne se produise, utilisez la syntaxe ADD IF NOT EXISTS dans votre instruction ALTER TABLE ADD PARTITION comme suit :

ALTER TABLE table_name ADD IF NOT EXISTS PARTITIION […]

Aucun registre renvoyé par les données partitionnées

Ce problème peut se produire pour différentes raisons. Pour connaître les causes et les solutions possibles, consultez la section J'ai créé une table dans Amazon Athena avec des partitions définies, mais lorsque j'interroge la table, aucun enregistrement n'est renvoyé dans le AWS Knowledge Center.

Voir aussi HIVE_TOO_MANY_OPEN_PARTITIONS.

Autorisations

Erreur d'accès refusé lors de l'interrogation de Simple Storage Service (Amazon S3)

Cela peut se produire lorsque vous n'avez pas l'autorisation de lire les données dans le compartiment, l'autorisation d'écrire dans le compartiment de résultats ou que le chemin d'accès Simple Storage Service (Amazon S3) contient un point de terminaison de région comme us-east-1.amazonaws.com. Pour plus d'informations, consultez la rubrique Lorsque j'exécute une requête Athena, je reçois une erreur « access denied » (Accès refusé) dans le centre de connaissances AWS .

Accès refusé avec le code d'état : erreur 403 lors de l'exécution de requêtes DDL sur des données chiffrées dans Simple Storage Service (Amazon S3)

À quel moment vous pouvez recevoir le message d'erreur Accès refusé (service : Amazon S3 ; code d'état : 403 ; code d'erreur : AccessDenied ; ID de demande :<request_id>) si les conditions suivantes sont remplies :

  1. Vous exécutez une requête DDL comme ALTER TABLE ADD PARTITION ou MSCK REPAIR TABLE.

  2. Vous avez un compartiment dont le chiffrement par défaut est configuré pour utiliser SSE-S3.

  3. Le compartiment a également une politique de compartiment comme la suivante qui force les demandes PutObject à spécifier les en-têtes PUT "s3:x-amz-server-side-encryption": "true" etd "s3:x-amz-server-side-encryption": "AES256".

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption": "true" } } }, { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } } ] }

Dans un cas comme celui-ci, la solution recommandée est de supprimer la politique de compartiment comme celle ci-dessus, étant donné que le chiffrement par défaut du compartiment est déjà présent.

Accès refusé avec le code d'état : 403 lors de l'interrogation d'un compartiment Simple Storage Service (Amazon S3) dans un autre compte

Cette erreur peut se produire lorsque vous essayez d'interroger des journaux rédigés par un autre compte Service AWS et que le second compte est le propriétaire du compartiment mais ne possède pas les objets du compartiment. Pour plus d'informations, consultez l'article Je reçois l'exception Amazon S3 « accès refusé avec le code de statut : 403 » dans Amazon Athena lorsque j'interroge un bucket dans un autre compte dans AWS le Knowledge Center.

Utilisation des informations d'identification du rôle IAM pour la connexion au pilote JDBC Athena

Vous pouvez récupérer les informations d'identification temporaires d'un rôle pour authentifier la Connexion JDBC à Athena. Les informations d'identification temporaires ont une durée de vie maximale de 12 heures. Pour plus d'informations, consultez Comment puis-je utiliser les informations d'identification de mon rôle IAM ou passer à un autre rôle IAM lorsque je me connecte à Athena à l'aide du pilote JDBC ? dans le AWS Knowledge Center.

Le descripteur de stockage de table requis n'est pas renseigné

Cela peut se produire lorsque vous essayez d'interroger ou d'afficher une table pour laquelle vous n'êtes pas autorisé. Pour cela, la solution recommandée consiste à accorder DESCRIBE des SELECT autorisations sur les ressources via AWS Lake Formation. Si votre ressource est partagée entre plusieurs comptes, lorsque la ressource d'origine existe dans le compte A et que vous souhaitez interroger une ressource liée dans le compte B. Vous devez vous assurer que votre rôle est DESCRIBE autorisé sur la ressource d'origine dans le compte A et SELECT sur la ressource liée dans le compte B.

Problèmes de syntaxe des requêtes

ÉCHEC : NullPointerException le nom est nul

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.

Fonction non enregistrée

Cette erreur se produit lorsque vous essayez d'utiliser une fonction qu'Athena ne prend pas en charge. Pour connaître la liste des fonctions prises en charge par Athena, consultezFonctions dans Amazon Athena ou exécutez l'instruction SHOW FUNCTIONS dans l'éditeur de requête. Vous pouvez également écrire votre propre fonction définie par l'utilisateur (UDF). Pour plus d'informations, consultez la rubrique Comment résoudre l'erreur de syntaxe « fonction non enregistrée » dans Athena ? dans le Centre de connaissances AWS .

Exceptions GENERIC_INTERNAL_ERROR

Les exceptions GENERIC_INTERNAL_ERROR peuvent avoir plusieurs causes, notamment les suivantes :

  • GENERIC_INTERNAL_ERROR : NULL – Vous pouvez voir cette exception dans le cadre de l'une des conditions suivantes :

    • Vous avez une inadéquation de schéma entre le type de données d'une colonne dans la définition de table et le type de données réel du jeu de données.

    • Vous exécutez une requête CREATE TABLE AS SELECT (CTAS) dont la syntaxe est imprécise.

  • GENERIC_INTERNAL_ERROR : le générateur parent est nul. Cette exception peut se produire lorsque vous interrogez une table contenant des colonnes de type array de données et que vous utilisez la bibliothèque Open De. CSVSer Le CSVSerde format Open ne prend pas en charge le type de array données.

  • GENERIC_INTERNAL_ERROR: Value exceeds MAX_INT (GENERIC_INTERNAL_ERROR : la valeur dépasse MAX_INT) : cette exception peut s'afficher lorsque la colonne de données source est définie avec le type de données INT et a une valeur numérique supérieure à 2 147 483 647.

  • GENERIC_INTERNAL_ERROR : Value exceeds MAX_BYTE (GENERIC_INTERNAL_ERROR : la valeur dépasse MAX_BYTE) : cette exception peut s'afficher lorsque la valeur numérique de la colonne de données source dépasse la taille autorisée pour le type de données BYTE. Le type de données BYTE est équivalent à TINYINT. TINYINT est un entier signé de 8 bits au format de complément à deux avec une valeur minimum de -128 et une valeur maximum de 127.

  • GENERIC_INTERNAL_ERROR: Number of partition values does not match number of filters (GENERIC_INTERNAL_ERROR : le nombre de valeurs de partition ne correspond pas au nombre de filtres) : cette exception peut s'afficher si vous avez des partitions incohérentes sur les données Amazon Simple Storage Service (Amazon S3). Les partitions peuvent être incohérentes dans le cadre de l'une des conditions suivantes :

    • Les partitions sur Simple Storage Service (Amazon S3) ont changé (exemple : de nouvelles partitions ont été ajoutées).

    • Le nombre de colonnes de partition de la table ne correspond pas à celui des métadonnées de partition.

Pour des informations plus détaillées sur chacune de ces erreurs, consultez Comment résoudre l'erreur « GENERIC_INTERNAL_ERROR » lorsque j'interroge une table dans Amazon Athena ? dans le AWS Knowledge Center.

Le nombre de groupes correspondants ne correspond pas au nombre de colonnes

Cette erreur se produit lorsque vous utilisez le SerDe Régex SerDe dans une instruction CREATE TABLE et que le nombre de groupes de correspondance regex ne correspond pas au nombre de colonnes que vous avez spécifié pour la table. Pour plus d'informations, consultez Comment résoudre l' RegexSerDe erreur « le nombre de groupes correspondants ne correspond pas au nombre de colonnes » dans Amazon Athena ? dans le AWS Knowledge Center.

queryString ne satisfait pas à la contrainte : le membre doit avoir une longueur inférieure ou égale à 262144

La longueur maximale de la chaîne de requête dans Athena (262 144 octets) n'est pas un quota ajustable. AWS Support vous ne pouvez pas augmenter le quota pour vous, mais vous pouvez contourner le problème en divisant les longues requêtes en requêtes plus petites. Pour plus d'informations, consultez la rubrique Comment augmenter la longueur maximale de la chaîne de requête dans Athena ? dans le Centre de connaissances AWS .

SYNTAX_ERROR : impossible de résoudre la colonne

Cette erreur peut se produire lorsque vous interrogez une table créée par un AWS Glue robot d'exploration à partir d'un fichier CSV codé en UTF-8 comportant une marque d'ordre des octets (BOM). AWS Glue ne les reconnaît pas BOMs et les transforme en points d'interrogation, ce qu'Amazon Athena ne reconnaît pas. La solution consiste à supprimer le point d'interrogation dans Athena ou dans AWS Glue.

Trop d'arguments pour un appel de fonction

Dans la version 3 du moteur Athena, les fonctions ne peuvent pas comporter plus de 127 arguments. Cette limitation est intentionnelle. Si vous utilisez une fonction comportant plus de 127 paramètres, un message d'erreur semblable au suivant s'affiche :

TOO_MANY_ARGUMENTS : line : nnn nn : Trop d'arguments pour la fonction call (). function_name

Pour résoudre ce problème, utilisez moins de paramètres par appel de fonction.

Problèmes de délai d'expiration des requêtes

Si vous rencontrez des erreurs de temporisation avec vos requêtes Athena, consultez CloudTrail vos journaux. Les requêtes peuvent expirer en raison de l'étranglement AWS Glue ou de la Lake Formation. APIs Lorsque ces erreurs se produisent, les messages d'erreur correspondants peuvent indiquer un problème de délai d'expiration des requêtes plutôt qu'un problème de limitation. Pour résoudre le problème, vous pouvez consulter vos CloudTrail journaux avant de nous contacter Support. Pour plus d’informations, consultez AWS CloudTrail Journaux de requêtes et Enregistrez les appels Amazon Athena API avec AWS CloudTrail.

Pour plus d'informations sur les problèmes de délai d'expiration des requêtes liées aux requêtes fédérées lorsque vous appelez l'API ListTableMetadata, veuillez consulter Délai d'attente pendant l'appel ListTableMetadata.

Problèmes de limitation

Si vos requêtes dépassent les limites des services dépendants tels qu'Amazon S3,,, ou AWS KMS, AWS Glue,, AWS Lambda,, vous pouvez vous attendre aux messages suivants. Pour résoudre ces problèmes, réduisez le nombre d'appels simultanés provenant du même compte.

Service Message d’erreur
AWS Glue AWSGlueException : taux dépassé.
AWS KMS Vous avez dépassé la vitesse de transfert à laquelle vous pouvez appeler KMS. Réduisez la fréquence de vos appels.
AWS Lambda

Vitesse de transfert dépassée

TooManyRequestsException

Simple Storage Service (Amazon S3) Amazons3Exception : veuillez réduire la vitesse de transfert de votre demande.

Pour plus d'informations sur les moyens d'empêcher la limitation d'Amazon S3 lorsque vous utilisez Athena, consultez Empêcher la régulation d'Amazon S3.

Vues

Les vues créées dans le shell Apache Hive ne fonctionnent pas dans Athena

En raison de leurs implémentations fondamentalement différentes, les vues créées dans le shell Apache Hive ne sont pas compatibles avec Athena. Pour résoudre ce problème, recréez les vues dans Athena.

La vue est périmée ; elle doit être recréée

Il est possible de recevoir cette erreur si la table qui sous-tend une vue a été modifiée ou supprimée. La résolution consiste à recréer la vue. Pour plus d'informations, voir Comment puis-je résoudre l'erreur « la vue est périmée ; elle doit être recréée » dans Athéna ? dans le AWS Knowledge Center.

Groupes de travail

Pour plus d'informations sur la résolution des problèmes liés aux groupes de travail, consultez Résoudre les erreurs des groupes de travail.

Ressources supplémentaires

Les pages suivantes fournissent des informations supplémentaires pour la résolution des problèmes liés à Amazon Athena.

Les AWS ressources suivantes peuvent également être utiles :

La résolution des problèmes nécessite souvent une requête et une recherche itératives par un expert ou par une communauté d'assistants. Si vous continuez à rencontrer des problèmes après avoir essayé les suggestions de cette page, contactez AWS Support (dans le AWS Management Console, cliquez sur Support, Centre de support) ou posez une question sur AWS Re:post en utilisant le tag Amazon Athena.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.