Pourquoi mon crawler AWS Glue échoue-t-il avec une exception de service interne ?

Lecture de 9 minute(s)
0

Mon crawler AWS Glue échoue et affiche l'erreur « ERROR: Internal Service Exception » (ERREUR : exception de service interne).

Résolution

Les exceptions de service internes du crawler peuvent être dues à des problèmes transitoires. Avant de commencer le dépannage, exécutez à nouveau le crawler. Si vous obtenez toujours une exception de service interne, vérifiez les problèmes courants suivants.

Problèmes de données

Si votre crawler AWS Glue est configuré pour traiter une grande quantité de données, il se peut qu'il soit confronté à une exception de service interne. Passez en revue les causes des problèmes de données pour y remédier :

  • Le crawler risque d'échouer avec une exception de service interne s'il existe un grand nombre de petits fichiers. Pour éviter ce problème, utilisez l'outil S3DistCp pour combiner des petits fichiers. Des frais Amazon EMR supplémentaires vous sont facturés lorsque vous utilisez S3DistCp. Vous pouvez également définir des modèles d'exclusion et analyser les fichiers de manière itérative. Enfin, pensez à activer l'échantillonnage pour éviter d'analyser tous les fichiers contenus dans un préfixe.
  • Si votre crawler approche de la valeur d'expiration de 24 heures, divisez le flux de travail pour éviter les problèmes de mémoire. Pour plus d'informations, consultez Pourquoi le crawler AWS Glue fonctionne-t-il pendant longtemps ?

Remarque : la meilleure façon de résoudre les problèmes d'échelle des données est de réduire la quantité de données traitées.

Structure de dossiers Amazon Simple Storage Service (Amazon S3) incohérente

Au fil du temps, votre crawler AWS Glue rencontre vos données dans un format spécifique. Toutefois, des incohérences dans les applications en amont peuvent déclencher une erreur d'exception de service interne.

Il peut y avoir une incohérence entre la définition d'une partition de table dans le catalogue de données et une structure de partition Hive dans Amazon S3. De telles différences peuvent poser des problèmes à votre crawler. Par exemple, le crawler peut s'attendre à ce que les objets soient partitionnés sous la forme « s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/dd=xx/[files] ». Mais supposons que certains objets relèvent plutôt de « s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/[files] ». Dans ce cas, le crawler échoue et l'erreur d'exception de service interne est générée.

Si vous modifiez un emplacement de données précédemment analysé, une erreur d'exception de service interne avec une analyse incrémentielle peut se produire. Cela se produit parce que l'une des conditions suivantes est remplie :

  • Un emplacement Amazon S3 connu pour être vide est mis à jour avec des fichiers de données
  • Les fichiers sont supprimés d'un emplacement Amazon S3 connu pour être rempli de fichiers de données

Si vous modifiez la structure du préfixe Amazon S3, cette exception est déclenchée.

Si vous pensez que des modifications ont été apportées à votre entrepôt de données S3, il est préférable de supprimer le crawler actuel. Après avoir supprimé le crawler actuel, créez-en un nouveau sur la même cible S3 à l'aide de l'option Crawl all folders (Analyser tous les dossiers).

Problèmes liés à AWS Key Management Service (AWS KMS)

Si votre entrepôt de données est configuré avec le chiffrement AWS KMS, vérifiez les points suivants :

  • Vérifiez que le rôle AWS Identity and Access Management (IAM) de votre crawler dispose des autorisations nécessaires pour accéder à la clé AWS KMS.
  • Vérifiez que votre politique relative aux clés AWS KMS consiste à déléguer correctement les autorisations.
  • Vérifiez que la clé AWS KMS existe toujours et qu'elle est à l'état Available (Disponible). Si la clé AWS KMS est en attente de suppression, l'exception de service interne est déclenchée.

Pour plus d'informations, consultez Gestion des configurations de sécurité sur la console AWS Glue et Configuration du chiffrement dans AWS Glue.

Problèmes liés au catalogue de données AWS Glue

Si votre catalogue de données comporte un grand nombre de colonnes ou de structures imbriquées, la taille du schéma peut dépasser la limite de 400 Ko. Pour traiter les exceptions liées au catalogue de données, vérifiez les points suivants :

  • 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 Colonne.
  • Recherchez les colonnes dont la longueur est 0. Cela peut se produire si les colonnes des données sources ne correspondent pas au format de données de la table du catalogue de données.
  • Dans la définition de schéma de votre table, assurez-vous que la valeur Type de chacune de vos colonnes ne dépasse pas 131 072 octets. Si cette limite est dépassée, votre crawler risque de faire face à une exception de service interne. Pour plus d'informations, consultez Structure de colonne.
  • Recherchez des données malformées. Par exemple, le crawler 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] ».
  • Si vos données contiennent des colonnes de type DECIMAL au format (precision, scale) (précision, échelle), vérifiez que la valeur de l'échelle est inférieure ou égale à la valeur de la précision.
  • Votre crawler risque d'échouer avec un message d'erreur « Unable to create table in Catalog » (Impossible de créer une table dans le catalogue) ou « Payload size of request exceeded limit » (La taille de la charge utile de la demande a dépassé la limite). Dans ce cas, surveillez la taille de la définition du schéma de table. Il n'y a aucune limite quant au nombre de colonnes qu'une table du catalogue de données peut contenir. Toutefois, la taille totale du schéma est limitée à 400 Ko. Un grand nombre de colonnes contribue à ce que la taille totale du schéma dépasse la limite de 400 Ko. Les solutions de contournement potentielles incluent la division du schéma en plusieurs tables et la suppression des colonnes inutiles. Vous pouvez également envisager de réduire la taille des métadonnées en réduisant les noms de colonnes.

Problèmes liés à Amazon S3

Problèmes liés à Amazon DynamoDB

Problèmes liés à 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 AWS KMS. Cette route peut passer par le point de terminaison d'un cloud privé virtuel (VPC) pris en charge par AWS KMS ou par une passerelle NAT.
  • Assurez-vous que vous utilisez la syntaxe de chemin d'inclusion correcte. Pour plus d'informations, consultez Définition des analyseurs.
  • Si vous analysez un entrepôt 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 » (chemin d'inclusion). Veillez également à entrer correctement le chemin d'inclusion. Pour de plus amples informations, veuillez consulter les Include and exclude patterns (Modèles d'inclusion et d'exclusion).
  • Assurez-vous que le sous-réseau que vous utilisez se trouve dans une zone de disponibilité prise en charge par AWS Glue.
  • Assurez-vous que le sous-réseau que vous utilisez dispose de suffisamment d'adresses IP privées disponibles.
  • Vérifiez que la source de données JDBC est prise en charge avec le pilote JDBC AWS Glue intégré.

Problèmes liés à AWS KMS lors de l'utilisation du point de terminaison d'un VPC

  • Si vous utilisez AWS KMS, le crawler 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 AWS KMS. Ensuite, ajoutez le point de terminaison AWS KMS à la configuration du sous-réseau VPC pour la connexion AWS Glue. Pour plus d'informations, consultez Connexion à AWS KMS via le point de terminaison d'un VPC.

Informations connexes

Utilisation d'analyseurs sur la console AWS Glue

Chiffrement des données écrites par des analyseurs, des tâches et des points de terminaison de développement

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an