Pourquoi l'exécution de l'analyseur AWS Glue prend-elle beaucoup de temps ?

Lecture de 4 minute(s)
0

L'analyseur AWS Glue s'exécute depuis plusieurs heures et ne parvient toujours pas à identifier le schéma dans mon magasin de données.

Brève description

Voici quelques causes courantes des durées d'exécution de l'analyseur :

  • Ajout fréquent de nouvelles données : lors de la première exécution de l'analyseur, l'analyseur lit le premier méga-octet de chaque fichier pour en inférer le schéma. Lors des exécutions suivantes de l'analyseur, il répertorie les fichiers dans la cible, y compris les fichiers analysés lors de la première exécution, et lit le premier méga-octet des nouveaux fichiers. L'analyseur ne lit pas les fichiers qui ont été lus lors de sa précédente exécution. Par conséquent, les exécutions suivantes de l'analyseur sont souvent plus rapides. Cela est dû à la fonction d'analyse progressive, si elle est activée. Avec cette option, l'analyseur ne lit que les nouvelles données lors des exécutions d'analyse suivantes. Toutefois, lorsque vous ajoutez un grand nombre de fichiers ou de dossiers à votre magasin de données entre les exécutions de l'analyseur, la durée d'exécution augmente à chaque fois.

  • **Indexation des fichiers compressés :**l'analyse des fichiers compressés prend plus de temps. Cela est dû au fait que l'analyseur doit télécharger le fichier et le décompresser avant de lire le premier méga-octet ou de lister le fichier.
    Remarque : pour les fichiers Apache Parquet, Apache Avro et Apache Orc, l'analyseur n'analyse pas le premier méga-octet. Au lieu de cela, l'analyseur lit les métadonnées stockées dans chaque fichier.

Résolution

Avant de commencer le dépannage, assurez-vous que vous avez besoin d'exécuter un analyseur. Vous n'avez pas besoin d'exécuter un analyseur, à moins d'avoir besoin de créer une table dans le catalogue de données AWS Glue et d'utiliser la table dans une tâche Extract-transform-load (ETL) ou un service en aval tel qu'Amazon Athena. Pour les tâches ETL, vous pouvez utiliser from_options pour lire les données directement à partir du magasin de données et utiliser les transformations sur le DynamicFrame. Dans ce cas, vous n'avez pas besoin d'un analyseur dans votre pipeline ETL. Si vous trouvez qu'un analyseur est pertinent pour votre cas d'utilisation, utilisez une ou plusieurs des méthodes suivantes pour réduire les temps d'exécution de l'analyseur.

Utiliser un modèle d'exclusion

Un modèle d'exclusion indique à l'analyseur d'ignorer certains fichiers ou chemins. Les modèles d'exclusion réduisent le nombre de fichiers que l'analyseur doit répertorier, ce qui accélère l'exécution de l'analyseur. Par exemple, utilisez un modèle d'exclusion pour exclure les méta-fichiers et les fichiers qui ont déjà été analysés. Pour plus d'informations, y compris des exemples de modèles d'exclusion, consultez Modèles d'inclusion et d'exclusion.

Utiliser la fonction de taille d'échantillon

L'analyseur AWS Glue prend en charge la fonction de taille d'échantillon. Avec cette fonction, vous pouvez spécifier le nombre de fichiers dans chaque dossier terminal à analyser lors de l'indexation des exemples de fichiers dans un jeu de données. Lorsque cette fonction est activée, l'analyseur sélectionne au hasard certains fichiers de chaque dossier terminal à analyser au lieu d'indexer tous les fichiers du jeu de données. Si vous avez déjà des connaissances sur vos formats de données et que vous savez que les schémas de vos dossiers ne changent pas, utilisez l'analyseur d'échantillonnage. L'activation de cette fonction réduit considérablement la durée de fonctionnement de l'analyseur.

Exécuter plusieurs analyseurs

Au lieu d'exécuter un analyseur sur l'ensemble du magasin de données, pensez à exécuter plusieurs analyseurs. Il est préférable d'exécuter plusieurs analyseurs pendant une courte durée que d'exécuter un seul analyseur pendant une longue durée. Par exemple, supposons que vous partitionnez vos données par année et que chaque partition contient une grande quantité de données. Si vous exécutez un analyseur différent sur chaque partition (chaque année), les tâches d'exécution des analyseurs se terminent plus rapidement.

Combiner de tout petits fichiers pour obtenir des fichiers plus volumineux

Il faut plus de temps pour analyser un grand nombre de petits fichiers qu'un petit nombre de fichiers volumineux. En effet, l'analyseur doit répertorier chaque fichier et doit lire le premier méga-octet de chaque nouveau fichier.


Informations connexes

Comment résoudre l'exception « Unable to infer schema » (Impossible d'inférer le schéma) dans AWS Glue ?

Pourquoi l'analyseur AWS Glue classe-t-il mon fichier de données à largeur fixe comme UNKNOWN (INCONNU) lorsque j'utilise un classifieur intégré pour analyser le fichier ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 ans