Comment résoudre l'erreur « unable to create input format » dans Athena ?

Dernière mise à jour : 2021-05-14

Lorsque j'exécute une requête dans Amazon Athena, je reçois l'erreur « unable to create input format » (impossible de créer un format d'entrée).

Solution

Il existe plusieurs causes à cette erreur. Voici plusieurs scénarios et solutions courants :

L'analyseur AWS Glue ne peut pas classer le format de données

  • Les données sont stockées dans Amazon Simple Storage Service (Amazon S3)
  • Vous exécutez un analyseur AWS Glue avec un classifieur intégré pour détecter le schéma de table. L'analyseur renvoie une classification UNKNOWN. Au moins une colonne est détectée, mais le schéma est incorrect.
  • Lorsque vous interrogez la table à partir d'Athena, la requête échoue avec l'erreur « HIVE_UNKNOWN_ERROR : Unable to create input format ».

Pour résoudre cette erreur, utilisez un type de données pris en charge par un classifieur intégré. Si le format de données ne peut pas être classé par un classifieur intégré, pensez à utiliser un classifieur personnalisé.

Athena ne prend pas en charge le format de données

  • Les données sont stockées dans Amazon S3.
  • Vous exécutez un analyseur pour créer la table. L'analyseur classe la table dans un format qu'Athena ne prend pas en charge, comme ion ou xml.
  • Lorsque vous interrogez la table à partir d'Athena, la requête échoue avec l'erreur « HIVE_UNKNOWN_ERROR : Unable to create input format ».

Pour éliminer cette erreur, utilisez un format de données pris en charge par Athena.

Une ou plusieurs propriétés de définition de table AWS Glue sont vides

  • La table AWS Glue n'est pas créée dans Athena ou par un analyseur AWS Glue. La table est créée à l'aide d'une autre méthode. Par exemple, la table est créée manuellement sur la console AWS Glue.
  • Lorsque vous interrogez la table à partir d'Athena, la requête échoue avec l'erreur « HIVE_UNKNOWN_ERROR : Unable to create input format ».

Cette erreur se produit car une ou plusieurs des propriétés suivantes de la définition de table AWS Glue sont vides :

  • Format d'entrée
  • Format de sortie
  • Nom du cadre SerDe

Vérifiez que ces propriétés sont définies correctement pour SerDe et le format de données. N'oubliez pas que le cadre SerDe que vous spécifiez définit le schéma de table. SerDe peut remplacer la configuration DDL que vous spécifiez dans Athena lorsque vous créez votre table.

Pour mettre à jour les propriétés de définition de table, procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Sélectionnez la table à mettre à jour.
  3. Choisissez Actions, puis View details (Afficher les détails).
  4. Choisissez Edit table (Modifier la table).
  5. Mettez à jour les paramètres pour Input format (Format d'entrée), Output format (Format de sortie) ou SerDe name (Nom du cadre SerDe).
  6. Sélectionnez Apply (Appliquer).

La source de données de votre requête Athena n'est pas prise en charge

Athena prend en charge l'interrogation de tables uniquement si les tables sont stockées dans Amazon S3. Vous pouvez obtenir l'erreur « unable to create input format » si vous interrogez une source de données qui n'est pas prise en charge par Athena.

Pour résoudre cette erreur, utilisez le kit Athena Query Federation SDK. Le kit SDK vous permet de personnaliser Athena avec votre propre code. Avec Athena Federation SDK, vous pouvez intégrer différentes sources de données et formats de données propriétaires. Vous pouvez également créer de nouvelles fonctions définies par l'utilisateur. Pour plus d'informations, consultez Interroger n'importe quelle source de données avec la nouvelle fonction de requête fédérée d'Amazon Athena.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?