Configuration des propriétés de tâches Spark dans AWS Glue - AWS Glue

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.

Configuration des propriétés de tâches Spark dans AWS Glue

Lorsque vous définissez votre tâche dans la console AWS Glue, vous fournissez les valeurs des propriétés afin de contrôler l’environnement d’exécution AWS Glue.

Définition des propriétés des tâches Spark

La liste suivante contient les propriétés d’une tâche Spark. Pour les propriétés d’une tâche shell Python, consultez Définition des propriétés pour les tâches shell Python. Pour les propriétés d’une tâche ETL en streaming, consultez Définition des propriétés de tâche pour une tâche ETL en streaming.

Les propriétés sont répertoriées selon l’ordre dans lequel elles apparaissent dans l’Assistant Add job (Ajout de tâche) sur la console AWS Glue.

Nom

Fournit une chaîne UTF-8 d’une longueur maximale de 255 caractères

Description

Fournissez une description facultative de 2 048 caractères maximum.

Rôle IAM

Spécifiez le rôle IAM qui permet de définir les autorisations d’accès aux ressources utilisées pour exécuter la tâche et accéder aux magasins de données. Pour plus d’informations sur les autorisations requises pour exécuter des tâches dans AWS Glue, consultez Gestion des identités et des accès pour AWS Glue.

Type

Le type de tâche ETL. Ce paramètre est défini automatiquement en fonction du type de sources de données que vous sélectionnez.

Version AWS Glue

La version de AWS Glue détermine les versions d’Apache Spark et Python disponibles pour la tâche, comme indiqué dans le tableau suivant.

Version AWS Glue Versions Spark et Python prises en charge
5.0
  • Spark 3.5.4

  • Python 3.11

4.0
  • Spark 3.3.0

  • Python 3.10

3.0
  • Spark 3.1.1

  • Python 3.7

Langue

Le code inclus dans le script ETL permet de définir la logique de votre tâche. Le script peut être codé dans Python ou dans Scala. Vous pouvez indiquer si le script que la tâche exécute est généré par AWS Glue ou fourni par vous-même. Vous fournissez le nom et l’emplacement du script dans Amazon Simple Storage Service (Amazon S3). Vérifiez qu’il n’existe pas de fichier portant le même nom que le répertoire de script dans le chemin d’accès. Pour en savoir plus sur l’écriture de scripts, consultez Guide de programmation AWS Glue.

Type d’employé

Les types d’employé suivantes sont disponibles :

Les ressources disponibles pour les travailleurs AWS Glue sont mesurées en DPU. Une DPU est une mesure relative de la puissance de traitement consistant en 4 vCPU de capacité de calcul et 16 Go de mémoire.

  • G.025X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 0,25 DPU (2 vCPU, 4 Go de mémoire) avec un disque de 84 Go (environ 34 Go disponibles). Nous recommandons ce type d’employé pour les travaux de streaming à faible volume. Ce type de travailleur est uniquement disponible pour les tâches de streaming avec AWS Glue versions 3.0 ou ultérieures.

  • G.1X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 1 DPU (4 vCPU, 16 Go de mémoire) avec un disque de 94 Go (environ 44 Go disponibles). Nous recommandons ce type de travailleur pour les charges de travail telles que les transformations de données, les jointures et les requêtes, afin de proposer un moyen évolutif et rentable d’exécuter la plupart des tâches.

  • G.2X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 2 DPU (8 vCPU, 32 Go de mémoire) avec un disque de 138 Go (environ 78 Go disponibles). Nous recommandons ce type de travailleur pour les charges de travail telles que les transformations de données, les jointures et les requêtes, afin de proposer un moyen évolutif et rentable d’exécuter la plupart des tâches.

  • G.4X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 4 DPU (16 vCPU, 64 Go de mémoire) avec un disque de 256 Go (environ 230 Go disponibles). Nous recommandons ce type de travailleur pour les tâches dont les charges de travail contiennent les transformations, les agrégations, les jointures et les requêtes les plus exigeantes.

  • G.8X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 8 DPU (32 vCPU, 128 Go de mémoire) avec un disque de 512 Go (environ 485 Go disponibles). Nous recommandons ce type de travailleur pour les tâches dont les charges de travail contiennent les transformations, les agrégations, les jointures et les requêtes les plus exigeantes.

  • G.12X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 12 DPU (48 vCPU, 192 Go de mémoire) avec un disque de 768 Go (environ 741 Go disponibles). Nous recommandons ce type de travailleur pour les tâches comportant des charges de travail très importantes et gourmandes en ressources qui nécessitent une capacité de calcul importante.

  • G.16X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur correspond à 16 DPU (64 vCPU, 256 Go de mémoire) avec un disque de 1024 Go (environ 996 Go disponibles). Nous recommandons ce type de travailleur pour les tâches comportant les charges de travail les plus importantes et les plus gourmandes en ressources et nécessitant une capacité de calcul maximale.

  • R.1X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur mappe vers 1 DPU avec une configuration optimisée pour la mémoire. Nous recommandons ce type de travailleur pour les charges de travail gourmandes en mémoire qui rencontrent fréquemment des erreurs liées à l’épuisement de la mémoire ou qui nécessitent des ratios mémoire/processeur élevés.

  • R.2X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur mappe vers 2 DPU avec une configuration optimisée pour la mémoire. Nous recommandons ce type de travailleur pour les charges de travail gourmandes en mémoire qui rencontrent fréquemment des erreurs liées à l’épuisement de la mémoire ou qui nécessitent des ratios mémoire/processeur élevés.

  • R.4X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur mappe vers 4 DPU avec une configuration optimisée pour la mémoire. Nous recommandons ce type de travailleur pour les charges de travail volumineuses et gourmandes en mémoire qui rencontrent fréquemment des erreurs liées à l’épuisement de la mémoire ou qui nécessitent des ratios mémoire/processeur élevés.

  • R.8X – Lorsque vous choisissez ce type, vous devez également fournir une valeur pour Number of workers (Nombre d’employés). Chaque travailleur mappe vers 8 DPU avec une configuration optimisée pour la mémoire. Nous recommandons ce type de travailleur pour les charges de travail très volumineuses et gourmandes en mémoire qui rencontrent fréquemment des erreurs liées à l’épuisement de la mémoire ou qui nécessitent des ratios mémoire/processeur élevés.

Spécifications des types de travailleur

La table suivante fournit des spécifications détaillées pour tous les types de travailleurs G disponibles :

Spécifications du type de travailleur G
Type de travailleur DPU par nœud vCPU Mémoire (Go) Disque (Go) Espace disque disponible (Go) Exécuteurs Spark par nœud
G.025X 0.25 2 4 84 34 1
G.1X 1 4 16 94 44 1
G.2X 2 8 32 138 78 1
G.4X 4 16 64 256 230 1
G.8X 8 32 128 512 485 1
G.12X 12 48 192 768 741 1
G.16X 16 64 256 1 024 996 1

Important : les types de travailleurs G.12X et G.16X, ainsi que tous les types de travailleurs R (R.1X à R.8X), ont une latence de démarrage plus élevée.

Vous êtes facturé selon un taux horaire en fonction du nombre de DPU utilisés pour exécuter vos tâches ETL. Pour plus d’informations, consultez la page de tarification AWS Glue.

Pour les tâches AWS Glue version 1.0 ou antérieures, lorsque vous configurez une tâche à l’aide de la console et spécifiez un Worker type (Type d’employé) Standard, la Maximum capacity (Capacité maximum) est définie et le Number of workers (Nombre d’employés) devient la valeur de Maximum capacity (Capacité maximum) - 1. Si vous utilisez l’AWS Command Line Interface (AWS CLI) ou un kit SDK AWS, vous pouvez soit spécifier le paramètre Max capacity (Capacité max), soit le Worker type (Type d’employé) et le Number of workers (Nombre d’employés).

Pour les tâches des versions 2.0 ou ultérieures d’AWS Glue, vous ne pouvez pas spécifier la Capacité maximum. Au lieu de cela, vous devez spécifier le Worker type (Type d’employé) et le Number of workers (Nombre d’employés).

Les types de travailleurs G.4X et G.8X ne sont disponibles que pour les tâches ETL Spark AWS Glue version 3.0 ou ultérieure dans les Régions AWS suivantes : USA Est (Ohio), USA Est (Virginie du Nord), USA Ouest (Californie du Nord), USA Ouest (Oregon), Asie-Pacifique (Mumbai), Asie-Pacifique (Séoul), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Canada (Centre), Europe (Francfort), Europe (Irlande), Europe (Londres), Europe (Espagne), Europe (Stockholm) et Amérique du Sud (São Paulo).

Les types de travailleurs G.12X, G.16X, et R.1X à R.8X sont disponibles uniquement pour les tâches ETL Spark AWS Glue version 4.0 ou ultérieure dans les Régions AWS suivantes : USA Est (Virginie du Nord), USA Ouest (Oregon), USA Est (Ohio), Europe (Irlande) et Europe (Francfort). D’autres régions seront prises en charge dans les prochaines versions.

Nombre de travailleurs demandé

Pour la plupart des types d’employés, vous devez spécifier le nombre de travailleurs qui sont alloués lors de l’exécution de la tâche.

Marque-page de tâche

Spécifiez comment AWS Glue traite des informations d’état lors de l’exécution de la tâche. Ce signet peut se souvenir des données traitées précédemment, mettre à jour les informations sur l’état ou ignorer les informations sur l’état. Pour plus d’informations, consultez Suivi des données traitées à l'aide de signets de tâche.

Mise en file d’attente des tâches

Spécifie si les exécutions de tâches sont mises en file d’attente pour être exécutées ultérieurement lorsqu’elles ne peuvent pas être exécutées immédiatement en raison de Service Quotas.

Lorsque cette case est cochée, la mise en file d’attente des tâches est activée pour les exécutions de tâches. Si cette option n’est pas cochée, les exécutions de tâches ne seront pas prises en compte pour la mise en file d’attente.

Si ce paramètre ne correspond pas à la valeur définie dans l’exécution de la tâche, la valeur du champ d’exécution de la tâche sera utilisée.

Exécution flexible

Lorsque vous configurez une tâche à l’aide de AWS Studio ou l’API, vous pouvez spécifier une classe d’exécution de travail standard ou flexible. Vos tâches peuvent avoir différents degrés de priorité et de sensibilité au temps. La classe d’exécution standard est idéale pour les charges de travail urgentes qui nécessitent un démarrage rapide des tâches et des ressources dédiées.

La classe d’exécution flexible convient aux tâches non urgentes telles que les tâches de pré-production, les tests et les chargements de données uniques. Les exécutions de tâches flexibles sont prises en charge pour les tâches utilisant AWS Glue version 3.0 ou utérieure et les types de travailleurs G.1X ou G.2X. Les nouveaux types de travailleurs (G.12X, G.16X et R.1X à R.8X) ne permettent pas une exécution flexible.

Les exécutions de tâches flexibles sont facturées en fonction du nombre de travailleurs en cours d’exécution à un moment donné dans le temps. Le nombre de travailleurs peut être ajouté ou supprimé pour une exécution flexible en cours d’exécution. Au lieu de facturer comme un simple calcul de Max Capacity * Execution Time, chaque travailleur contribuera pour le temps qu’il a effectué pendant l’exécution du travail. La facture est la somme de (Number of DPUs per worker * time each worker ran).

Pour de plus amples informations, veuillez consulter le panneau d’aide dans AWS Studio, ou Tâches et Exécutions de tâches.

Nombre de nouvelles tentatives

Spécifiez le nombre de fois, entre 0 et 10, où une tâche doit être redémarrée automatiquement par AWS Glue en cas d’échec. Les tâches qui atteignent la limite de délai d’expiration ne sont pas redémarrées.

Délai d’expiration de la tâche

Définit le délai d’exécution maximal en minutes. La valeur maximale est de 7 jours ou 10 080 minutes. Dans le cas contraire, les tâches déclencheront une exception.

Lorsque la valeur est laissée vide, le délai d’expiration est défini par défaut sur 2 880 minutes.

Toutes les tâches AWS Glue existantes dont la valeur du délai d’expiration est supérieure à sept jours seront définies par défaut sur sept jours. Par exemple, si vous avez spécifié un délai d’expiration de 20 jours pour un traitement par lots, celui-ci sera arrêté le 7e jour.

Bonnes pratiques relatives aux délais d’expiration des tâches

Les tâches sont facturées en fonction du temps d’exécution. Pour éviter des frais imprévus, configurez des valeurs de délai d’expiration adaptées à la durée d’exécution prévue de votre tâche.

Propriétés avancées
Nom du fichier de script

Un nom de script unique pour votre tâche. Il ne peut pas être nommé Tâche sans titre.

Chemin d’accès au script

L’emplacement Amazon S3 du script. Le chemin doit être de la forme s3://bucket/prefix/path/. Il doit se terminer par une barre oblique (/) et ne pas inclure de fichiers.

Métriques de tâche

Activez ou désactivez la création de métriques Amazon CloudWatch lorsque cette tâche s’exécute. Pour afficher les données de profilage, vous devez activer cette option. Pour en savoir plus sur l’activation et la visualisation de métriques, consultez Surveillance et débogage des tâches.

Métriques d’observabilité de la tâche

Activez la création de métriques CloudWatch d’observabilité supplémentaires lorsque cette tâche s’exécute. Pour plus d’informations, consultez Surveillance à l'aide de métriques d'observabilité AWS Glue.

Journalisation continue

Activez la journalisation continue sur Amazon CloudWatch. Si cette option n’est pas activée, les journaux ne sont disponibles qu’une fois la tâche terminée. Pour plus d’informations, consultez Journalisation des tâches AWS Glue.

Interface utilisateur Spark

Permettez l’utilisation de l’interface utilisateur Spark pour la surveillance de cette tâche. Pour plus d’informations, consultez Activation de l’interface utilisateur web Apache Spark pour les tâches AWS Glue.

Chemin d’accès aux journaux de l’interface utilisateur Spark

Le chemin pour écrire les journaux lorsque l’interface utilisateur Spark est activée.

Configuration de journalisation et de surveillance de l’interface utilisateur Spark

Choisissez l’une des options suivantes :

  • Standard : écrivez des journaux en utilisant l’ID d’exécution de tâche AWS Glue comme nom de fichier. Activez la surveillance de l’interface utilisateur Spark dans la console AWS Glue.

  • Hérité : écrivez des journaux en utilisant « spark-application-{timestamp} » comme nom de fichier. N’activez pas la surveillance de l’interface utilisateur Spark.

  • Standard et hérité : écrivez des journaux à la fois dans les emplacements standard et hérités. Activez la surveillance de l’interface utilisateur Spark dans la console AWS Glue.

Simultanéité maximum

Définit le nombre maximal d’exécutions simultanées autorisées pour cette tâche. La valeur par défaut est 1. Une erreur est renvoyée lorsque ce seuil est atteint. La valeur maximale que vous pouvez spécifier est contrôlée par une limite de service. Par exemple, si une tâche est toujours en cours d’exécution lorsqu’une nouvelle instance est lancée, vous pouvez souhaiter le renvoi d’une erreur pour empêcher deux instances de la même tâche de s’exécuter simultanément.

Chemin d’accès temporaire

Fournissez l’emplacement d’un répertoire de travail dans Amazon S3 où les résultats intermédiaires temporaires sont écrits lorsqu’AWS Glue exécute le script. Vérifiez qu’il n’existe pas de fichier portant le même nom que le répertoire temporaire dans le chemin d’accès. Ce répertoire est utilisé quand AWS Glue lit et écrit sur Amazon Redshift, ainsi que par certaines transformations AWS Glue.

Note

AWS Glue crée un compartiment temporaire pour les tâches si un compartiment n’existe pas déjà dans une région. Ce compartiment peut permettre l’accès au public. Vous pouvez soit modifier le compartiment dans Amazon S3 pour définir le bloc d’accès public, soit supprimer le compartiment ultérieurement une fois toutes les tâches de cette région terminées.

Seuil de notification de délai (minutes)

Définit le seuil (en minutes) avant l’envoi d’une notification de dépassement de délai. Vous pouvez définir ce seuil pour envoyer des notifications lorsqu’une exécution de tâche RUNNING, STARTING ou STOPPING prend plus de temps que le nombre de minutes prévu.

Configuration de la sécurité

Choisissez une configuration de sécurité dans la liste. Une configuration de sécurité spécifie la manière dont les données de la cible Amazon S3 sont chiffrées : pas de chiffrement, chiffrement côté serveur avec des clés gérées par AWS KMS (SSE-KMS) ou clés de chiffrement gérées par Amazon S3 (SSE-S3).

Chiffrement côté serveur

Si vous sélectionnez cette option, lorsque la tâche ETL écrit sur Amazon S3, les données sont chiffrées au repos à l’aide du chiffrement SSE-S3. Votre cible de données Amazon S3 et toutes les données qui sont écrites dans un répertoire temporaire Amazon S3 sont chiffrées. Cette option est transmise en tant que paramètre de tâche. Pour en savoir plus, consultez la section Protecting Data Using Server-Side Encryption with Amazon S3-Managed Encryption Keys (SSE-S3) (Protection des données à l’aide du chiffrement côté serveur avec des clés de chiffrement (SSE-S3) gérées par Amazon S3) dans le guide de l’utilisateur Amazon Simple Storage Service.

Important

Cette option est ignorée si une configuration de sécurité est spécifiée.

Utiliser le catalogue de données Glue en tant que metastore Hive

Sélectionnez cette option pour utiliser le catalogue de données AWS Glue comme metastore Hive. Le rôle IAM utilisé pour la tâche doit disposer de l’autorisation glue:CreateDatabase. Une base de données appelée « default » est créée dans le catalogue de données si elle n’existe pas.

Connexions

Choisissez une configuration VPC pour accéder aux sources de données Amazon S3 situées dans votre cloud privé virtuel (VPC). Vous pouvez créer et gérer une connexion réseau dans AWS Glue. Pour plus d’informations, consultez Connexion aux données.

Bibliothèques
Chemin d’accès à la bibliothèque Python, chemin d’accès aux fichiers JAR dépendants et chemin d’accès aux fichiers référencés

Spécifiez ces options si votre script les requiert. Vous pouvez définir des chemins Amazon S3 séparés par des virgules pour ces options lorsque vous définissez la tâche. Vous pouvez remplacer ces chemins lorsque vous exécutez la tâche. Pour plus d’informations, consultez Fournir vos propres scripts personnalisés.

Paramètres des tâches

Ensemble de paires clé-valeur transmises sous forme de paramètres nommés au script. Il s’agit de valeurs par défaut qui sont utilisées lors de l’exécution du script, mais vous pouvez les remplacer dans les déclencheurs ou lorsque vous exécutez la tâche. Vous devez préfixer le nom de la clé avec -- ; par exemple : --myKey. Vous transmettez les paramètres de tâche en tant que mappe lorsque vous utilisez le AWS Command Line Interface.

Pour accéder à des exemples, veuillez consulter les paramètres Python dans Transmission de paramètres Python et accès à ces paramètres dans AWS Glue.

Balises

Identifiez votre tâche avec une clé d’identification et avec une valeur d’identification facultative. Lorsque les clés d’identification sont créées, elles sont en lecture seule. Utilisez des identifications sur certaines ressources pour mieux les organiser et les identifier. Pour plus d’informations, consultez AWS tags dans AWS Glue.

Restrictions pour les tâches qui accèdent aux tables gérées par Lake Formation

Souvenez-vous des remarques et restrictions suivantes lorsque vous créez des tâches qui lisent ou écrivent dans des tables gérées par AWS Lake Formation: