Échec de l'analyseur AWS Glue avec une exception de service interne

Date de la dernière mise à jour : 28/08/2020

Comment puis-je empêcher les analyseurs AWS Glue d'échouer avec l'erreur « ERROR : Internal Service Exception » (ERREUR : exception de service interne) ?

Résolution

Les exceptions de service internes de l'analyseur sont parfois dues à des problèmes transitoires. Avant de commencer le dépannage, exécutez à nouveau l'analyseur. Si vous obtenez toujours une exception de service interne, recherchez les problèmes courants suivants :

Catalogue de données AWS Glue

  • Assurez-vous que les noms de colonne ne dépassent pas 255 caractères et ne contiennent pas de caractères spéciaux. Pour plus d'informations sur les exigences en matière de colonnes, consultez « Column » (Colonne).
  • Recherchez des données malformées. Par exemple, l'analyseur ne fonctionne pas si le nom de la colonne n'est pas conforme au modèle d'expression régulière « [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t] ».
  • Recherchez les colonnes dont la longueur est 0. De telles longueurs apparaissent lorsque les colonnes des données ne correspondent pas au format de données de la table.
  • Si vos données contiennent des colonnes « DECIMAL » avec le format « (precision, scale) » (précision, échelle), assurez-vous que la valeur de l'échelle est inférieure ou égale à la valeur de précision.

Amazon Simple Storage Service (Amazon S3)

  • Assurez-vous que le chemin d'accès d'Amazon S3 ne contient pas de caractères spéciaux.
  • Vérifiez que le rôle AWS Identity and Access Management (IAM) pour l'analyseur dispose des autorisations nécessaires pour accéder au chemin Amazon S3. Pour plus d'informations, consultez Créer un rôle IAM pour AWS Glue.
  • L'échec de l'analyseur avec une exception de service interne peut survenir en raison de l'existence d'un grand nombre de petits fichiers. Pour éviter ce problème, utilisez l'outil S3DistCp pour combiner de tout petits fichiers. Des frais Amazon EMR supplémentaires vous seront facturés lorsque vous utilisez S3DistCp. Vous pouvez également définir des modèles d'exclusion puis analyser les fichiers par lots.
  • Supprimez les caractères spéciaux ASCII comme ^, % et ~ de vos données, si possible. Dans le cas contraire, utilisez des classifieurs personnalisés pour classer vos données.
  • Vérifiez que les objets S3 utilisent la classe de stockageSTANDARD. Pour restaurer des objets dans la classe de stockage STANDARD, consultez Comment restaurer un objet S3 qui a été archivé ?
  • Vérifiez que les modèles d'inclusion et d'exclusion dans la configuration de l'analyseur correspondent aux chemins du compartiment S3.
  • Si vous analysez un compartiment S3 chiffré, vérifiez que le rôle IAM de l'analyseur dispose des autorisations appropriées pour la clé AWS Key Management Service (AWS KMS). Pour plus d'informations, consultez Gestion des configurations de sécurité sur la console AWS Glue et Configuration du chiffrement dans AWS Glue.
  • Si vous analysez un compartiment S3 chiffré, assurez-vous que le compartiment, la clé KMS et la tâche AWS Glue se trouvent dans la même région AWS.
  • Vérifiez le taux de demandes sur le compartiment S3 que vous analysez. Si ce taux est élevé, pensez à créer d'autres préfixes pour paralléliser les lectures. Pour plus d'informations, consultez Modèles de conception des bonnes pratiques : optimisation des performances Amazon S3.
  • Assurez-vous que les partitions et clés du compartiment S3 sont cohérentes. Par exemple, si l'analyseur s'attend à ce que les objets utilisent le chemin s3://awsdoc-example-bucket/aaaa =xxxx/mm=xxx/dd=xx/[files], mais que certains objets utilisent le chemin s3://awsdoc-example-bucket/aaaa =xxxx/mm=xxx/[files], l'analyseur échoue avec une exception de service interne.

Amazon DynamoDB

JDBC

  • Si vous analysez une source de données JDBC chiffrée avec AWS KMS, vérifiez le sous-réseau que vous utilisez pour la connexion. La table de routage du sous-réseau doit avoir une route vers le point de terminaison KMS, soit via un point de terminaison d'un VPC AWS KMS, soit une passerelle NAT.
  • Assurez-vous que vous utilisez la bonne syntaxe « Include path » (Inclure un chemin). Pour plus d'informations, consultez Définition des analyseurs.
  • Si vous analysez un magasin de données JDBC, vérifiez que la connexion SSL est configurée correctement. Si vous n'utilisez pas de connexion SSL, assurez-vous que « Require SSL Connection » (Connexion SSL requise) n'est pas sélectionné lorsque vous configurez l'analyseur.
  • Vérifiez que le nom de base de données dans la connexion AWS Glue correspond au nom de base de données dans « Include path » (Inclure un chemin) de l'analyseur et assurez-vous que vous avez saisi correctement « Include path » (Inclure un chemin). Pour plus d'informations, voir Modèles d'inclusion et d'exclusion.

AWS KMS

  • Si vous utilisez AWS KMS, l'analyseur AWS Glue doit avoir accès à AWS KMS. Pour accorder l'accès, sélectionnez l'option « Enable Private DNS Name » (Activer le nom DNS privé) lorsque vous créez le point de terminaison KMS. Ensuite, ajoutez le point de terminaison KMS à la configuration du sous-réseau VPC pour la connexion AWS Glue. Pour plus d'informations, consultez Création d'un point de terminaison d'un VPC AWS KMS (console VPC).