Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Comment résoudre l'erreur "GENERIC_INTERNAL_ERROR" lorsque j'interroge une table dans Athena ?
Lorsque j'interroge ma table Amazon Athena, le message d'erreur "GENERIC_INTERNAL_ERROR" s'affiche.
Résolution
"GENERIC_INTERNAL_ERROR: null"
Incompatibilité du type de données de colonne
Assurez-vous que le type de données de colonne dans la définition de la table est compatible avec le type de données de colonne dans les données source. Athena utilise la technologie Schema-on-read. Lorsqu'Athena traite les requêtes, elle applique vos définitions de table à vos données dans Amazon Simple Storage Service (Amazon S3).
Par exemple, lorsque vous créez une table dans un fichier Apache Parquet, Athena lit le schéma du fichier. Athena valide ensuite le schéma par rapport à la définition de la table dans laquelle vous interrogez le Parquet. Si le type de données d'une colonne ne correspond pas au type de données de la définition de la table, le message d'erreur "Column data type mismatch" s'affiche.
En cas d’incompatibilité d’un schéma entre les fichiers de données source et la définition de la table, effectuez l'une des actions suivantes :
- Utilisez AWS Glue pour mettre à jour le schéma.
- Utilisez la définition de la table mise à jour pour créer une nouvelle table.
Vérifiez également si les fichiers de données source sont endommagés. Si vous trouvez des fichiers de données source endommagés, supprimez-les et interrogez la table.
Syntaxe inexacte
L'erreur "GENERIC INTERNAL ERROR: null" peut s'afficher lorsque les deux conditions suivantes sont remplies :
- Vous avez utilisé une requête CTAS pour créer la table.
- Vous avez utilisé le même nom de colonne pour les propriétés de table partitioned_by et bucketed_by.
Lorsque vous utilisez la requête CTAS, vous devez utiliser des noms de colonne différents pour les propriétés partitioned_by et bucketed_by. Pour résoudre ce problème, créez une nouvelle table et choisissez des noms de colonnes différents pour partitioned_by et bucketed_by.
"GENERIC_INTERNAL_ERROR: parent builder is null"
Cette erreur peut s'afficher lorsque vous interrogez une table contenant des colonnes de type tableau et utilisant le format OpenCSVSerde. Le format OpenCSVSerde ne prend pas en charge le type de données tableau.
Pour résoudre ce problème, remplacez la colonne contenant le type de données tableau par chaîne. Vous pouvez utiliser la console AWS Glue ou exécuter une commande pour modifier le type de données de la colonne. Vous pouvez également créer une nouvelle table.
Modifier le type de données de la colonne
Pour utiliser la console AWS Glue, procédez comme suit :
- Ouvrez la console AWS Glue.
- Dans le volet de navigation, choisissez Tables.
- Sélectionnez la table que vous souhaitez mettre à jour.
- Choisissez Actions, puis Afficher les détails.
- Choisissez Modifier le schéma.
- Recherchez la colonne contenant le type de données tableau, puis choisissez tableau.
- Pour Type de colonne, sélectionnez chaîne dans la liste déroulante.
- Sélectionnez Mettre à jour.
- Sur la page Modifier le schéma, choisissez Enregistrer.
-ou-
Exécutez la commande SHOW CREATE TABLE pour générer la requête qui a créé la table. Recherchez la colonne contenant le type de données tableau, puis modifiez le type de données en chaîne.
Créer une nouvelle table
Créez une nouvelle table et choisissez chaîne pour le type de données de colonne.
"GENERIC_INTERNAL_ERROR: Value exceeds MAX_INT"
Cette erreur peut s'afficher lorsqu'une cellule d'une colonne INT source présente une valeur numérique supérieure à 2 147 483 647.
Pour résoudre ce problème, remplacez la colonne contenant le type deint par chaîne. Vous pouvez utiliser la console AWS Glue ou exécuter une commande pour modifier le type de données de la colonne. Vous pouvez également créer une nouvelle table.
Modifier le type de données de la colonne
Pour utiliser la console AWS Glue, procédez comme suit :
- Ouvrez la console AWS Glue.
- Dans le volet de navigation, choisissez Tables.
- Sélectionnez la table que vous souhaitez mettre à jour.
- Choisissez Actions, puis Afficher les détails.
- Choisissez Modifier le schéma.
- Recherchez la colonne contenant le type de données int, puis choisissez int.
- Pour Type de colonne, sélectionnez bigint dans la liste déroulante.
- Sélectionnez Mettre à jour.
- Sur la page Modifier le schéma, choisissez Enregistrer.
-ou-
Exécutez la commande SHOW CREATE TABLE pour générer la requête qui a créé la table. Recherchez la colonne contenant le type de données int, puis modifiez le type de données en bigint.
Créer une nouvelle table
Créez une nouvelle table et choisissez bigint comme type de données de colonne.
"GENERIC_INTERNAL_ERROR: Value exceeds MAX_BYTE"
Cette erreur peut s'afficher lorsqu'une cellule d'une colonne TINYINT source présente une valeur numérique non valide. La valeur minimale d'une colonne TINYINT est -128 et sa valeur maximale est 127.
Pour résoudre ce problème, remplacez la colonne contenant le type de données tinyint par smallint, int ou bigint. Vous pouvez utiliser la console AWS Glue ou exécuter une commande pour modifier le type de données de la colonne. Vous pouvez également créer une nouvelle table.
Modifier le type de données de la colonne
Pour utiliser la console AWS Glue, procédez comme suit :
- Ouvrez la console AWS Glue.
- Dans le volet de navigation, choisissez Tables.
- Sélectionnez la table que vous souhaitez mettre à jour.
- Choisissez Actions, puis Afficher les détails.
- Choisissez Modifier le schéma.
- Recherchez la colonne contenant le type de données tinyint, puis choisissez tinyinit.
- Pour Type de colonne, sélectionnez smallint, bigint ou int dans la liste déroulante.
- Sélectionnez Mettre à jour.
- Sur la page Modifier le schéma, choisissez Enregistrer.
-ou-
Exécutez la commande SHOW CREATE TABLE pour générer la requête qui a créé la table. Recherchez la colonne contenant le type de données tinyint, puis modifiez le type de données en smallint, bigint ou int.
Créer une nouvelle table
Créez une nouvelle table et choisissez smallint, bigint ou int comme type de données de colonne.
"GENERIC_INTERNAL_ERROR: Number of partition values does not match number of filters"
Cette erreur peut s'afficher lorsque les partitions des données Amazon S3 ne sont pas cohérentes pour l'une des raisons suivantes :
- Vous avez modifié vos partitions S3. Par exemple, vous avez ajouté de nouvelles partitions.
- Le nombre de colonnes de partition dans la table ne correspond pas au nombre de colonnes de partition dans les métadonnées de partition.
Pour résoudre ce problème, vous pouvez configurer un robot d'exploration AWS Glue pour créer une nouvelle table. Vous pouvez également utiliser l'instruction ALTER TABLE DROP PARTITION pour supprimer les partitions. Utilisez ensuite l'instruction ALTER TABLE ADD PARTITION pour ajouter le même nombre de partitions que dans la définition de la table.
Par exemple, vous avez des colonnes de partition nommées date et pays dans la définition de la table et une partition dont une seule colonne est nommée date. Supprimez la partition contenant la colonnedate, puis ajoutez les partitions date et pays à la table.
Exemples de commande :
ALTER TABLE doc_example_table DROP PARTITION (date = '2014-05-14'); ALTER TABLE doc_example_table ADD PARTITION (date = '2016-05-14', country = 'IN');
"GENERIC_INTERNAL_ERROR: Multiple entries with same key"
Si vos colonnes portent le même nom, vous devez prétraiter les données pour inclure une paire clé-valeur valide. Pour ignorer les colonnes portant le même nom, définissez ignore.malformed.json comme SERDEPROPERTIES dans org.openx.data.jsonserde.JsonSerDe.
Apache Hive ne prend pas en charge les colonnes sensibles à la casse. Par exemple, vous pouvez rencontrer un problème lorsque vous avez deux colonnes nommées Colonne et colonne.
Si les noms de colonnes sont identiques mais dans des cas différents, vous devez utiliser le mappage et configurer le SerDe JSON afin qu'il soit sensible à la casse.
Exemple de commande :
CREATE TABLE mytable ( time1 string, time2 string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( "case.insensitive" = "false", --tells hive to ignore key case "mapping.time1"= "time", -- lowercase 'time' mapped into 'time1' "mapping.time2"= "Time") -- uppercase to 'time2'
Informations connexes
- Sujets
- Analytics
- Balises
- Amazon Athena
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 9 mois
AWS OFFICIELA mis à jour il y a 9 mois