Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Bonnes pratiques
Lorsque vous développez avec AWS Glue, tenez compte des meilleures pratiques suivantes.
Développez d'abord localement
Pour économiser du temps et des coûts lors de la création de vos tâches ETL, testez d'abord votre code et votre logique métier localement. Pour obtenir des instructions sur la configuration d'un conteneur Docker qui peut vous aider à tester des tâches AWS Glue ETL à la fois dans un shell et dans un environnement de développement intégré (IDE), consultez le billet de blog Développez et testez des AWS Glue tâches localement à l'aide d'un conteneur Docker
Utilisez des sessions AWS Glue interactives
AWS Glue les sessions interactives fournissent un backend Spark sans serveur, associé à un noyau Jupyter open source qui s'intègre aux ordinateurs portables et aux IDE tels que PyCharm IntelliJ et VS Code. En utilisant des sessions interactives, vous pouvez tester votre code sur des ensembles de données réels avec le backend AWS Glue Spark et l'IDE de votre choix. Pour commencer, suivez les étapes décrites dans Getting started with AWS Glue interactive sessions.
Utilisez le partitionnement pour rechercher exactement ce dont vous avez besoin
Le partitionnement consiste à diviser un grand ensemble de données en partitions plus petites en fonction de colonnes ou de clés spécifiques. Lorsque les données sont partitionnées, AWS Glue vous pouvez effectuer des analyses sélectives sur un sous-ensemble de données répondant à des critères de partitionnement spécifiques, plutôt que de scanner l'ensemble de données dans son intégralité. Cela se traduit par un traitement des requêtes plus rapide et plus efficace, en particulier lorsque vous travaillez avec de grands ensembles de données.
Partitionnez les données en fonction des requêtes qui seront exécutées sur celles-ci. Par exemple, si la plupart des requêtes filtrent sur une colonne en particulier, le partitionnement sur cette colonne peut réduire considérablement le temps de requête. Pour en savoir plus sur le partitionnement des données, consultez la section Utilisation de données partitionnées
Optimisez la gestion de la mémoire
La gestion de la mémoire est cruciale lors de l'écriture de tâches AWS Glue ETL, car celles-ci s'exécutent sur le moteur Apache Spark, qui est optimisé pour le traitement en mémoire. Le billet de blog Optimize memory management in AWS Glue
-
Implémentation de la liste Amazon S3 de AWS Glue
-
Regroupement
-
Exclusion des chemins et des classes de stockage Amazon S3 non pertinents
-
Partitionnement Spark et AWS Glue Read
-
Inserts en vrac
-
Optimisations des jointures
-
PySpark fonctions définies par l'utilisateur (UDFs)
-
Traitement incrémentiel
Utilisez des formats de stockage de données efficaces
Lorsque vous créez des tâches ETL, nous vous recommandons de générer les données transformées dans un format de données basé sur des colonnes. Les formats de données en colonnes, tels qu'Apache Parquet et ORC, sont couramment utilisés dans le stockage et l'analyse de mégadonnées. Ils sont conçus pour minimiser le mouvement des données et optimiser la compression. Ces formats permettent également de diviser les données entre plusieurs lecteurs pour augmenter le nombre de lectures parallèles lors du traitement des requêtes.
La compression des données permet également de réduire la quantité de données stockées et d'améliorer les performances des opérations de lecture/écriture. AWS Glue prend en charge plusieurs formats de compression de manière native. Pour plus d'informations sur le stockage et la compression efficaces des données, voir Création d'un pipeline de données performant.
Utilisez le type de mise à l'échelle approprié
Il est important de comprendre quand procéder à une mise à l'échelle horizontale (modification du nombre de travailleurs) ou à une échelle verticale (modification du type de travailleur), AWS Glue car cela peut avoir un impact sur le coût et les performances des tâches ETL.
En général, les tâches ETL comportant des transformations complexes consomment plus de mémoire et nécessitent une mise à l'échelle verticale (par exemple, le passage du type de travail G-1X au type de travail G.2X). Pour les tâches ETL gourmandes en ressources informatiques impliquant de gros volumes de données, nous recommandons la mise à l'échelle horizontale, car elle AWS Glue est conçue pour traiter ces données en parallèle sur plusieurs nœuds.
En surveillant de près les indicateurs relatifs aux AWS Glue tâches sur CloudWatch Amazon, vous pouvez déterminer si un goulot d'étranglement en matière de performances est dû à un manque de mémoire ou de calcul. Pour plus d'informations sur les types de AWS Glue travailleurs et le dimensionnement, consultez Bonnes pratiques pour dimensionner les tâches Apache Spark et partitionner les données avec AWS Glue