Paramètres des tâches 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.

Paramètres des tâches AWS Glue

Lorsque vous créez une tâche AWS Glue, vous définissez des champs standard, tels que Role etWorkerType. Vous pouvez fournir des informations de configuration supplémentaires par le biais des champs Argument (Paramètres de la tâche dans la console). Dans ces champs, vous pouvez fournir aux tâches AWS Glue les arguments (paramètres) répertoriés dans cette rubrique. Pour plus d'informations sur l'API AWS Glue Job, consultezTâches.

Configuration des paramètres de tâche

Vous pouvez configurer une tâche via la console, dans les Détails de la tâche, sous l'en-tête Paramètres des tâches. Vous pouvez également configurer une tâche via le paramètre «  AWS CLI  en configurant » DefaultArguments ou NonOverridableArguments sur une tâche, ou en configurant Arguments l'exécution d'une tâche. Les arguments définis pour la tâche seront transmis à chaque exécution de la tâche, tandis que les arguments définis lors de l'exécution de la tâche ne seront transmis que pour cette exécution individuelle.

Par exemple, ce qui suit est la syntaxe pour exécuter une tâche en utilisant --arguments pour définir un paramètre de tâche.

$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'

Accès aux paramètres des tâches

Lorsque vous écrivez des scripts AWS Glue, vous souhaiterez peut-être accéder aux valeurs des paramètres des tâches afin de modifier le comportement de votre propre code. Nous fournissons des méthodes d'aide pour ce faire dans nos bibliothèques. Ces méthodes résolvent les valeurs des paramètres d'exécution des tâches qui remplacent les valeurs des paramètres des tâches. Lors de la résolution de paramètres définis à plusieurs emplacements, la tâche NonOverridableArguments remplacera les Arguments de l'exécution de la tâche, qui remplacera les DefaultArguments de la tâche.

Dans Python :

Dans les tâches Python, nous fournissons une fonction nommée getResolvedParameters. Pour plus d’informations, consultez Accès aux paramètres à l'aide de getResolvedOptions. Les paramètres de la tâche sont disponibles dans la variable sys.argv.

Dans Scala :

Dans les tâches Scala, nous fournissons un objet nommé GlueArgParser. Pour plus d’informations, consultez Liste des API GlueArgParser Scala AWS Glue. Les paramètres de la tâche sont disponibles dans la variable sysArgs.

Référence des paramètres de la tâche

AWS Glue reconnaît les noms d'argument suivants que vous pouvez utiliser pour configurer l'environnement de script pour vos tâches et exécutions de tâche :

--additional-python-modules

une liste délimitée par des virgules représentant un ensemble de packages Python à installer. Vous pouvez installer des packages depuis PyPI ou fournir une distribution personnalisée. Une entrée de package PyPI sera au format package==version, avec le nom PyPI et la version de votre package cible. Une entrée de distribution personnalisée est le chemin S3 vers la distribution.

Les entrées utilisent la correspondance entre versions de Python pour faire correspondre le package et la version. Cela signifie que vous devrez utiliser deux signes d'égalité, comme ==. Il existe d'autres opérateurs de correspondance de version. Pour plus d'informations, voir PEP 440.

Pour transmettre les options d'installation du module à pip3, utilisez le paramètre --python-modules-installer-option.

--auto-scale-within-microbatch

La valeur par défaut est false. Ce paramètre ne peut être utilisé que pour les tâches de streaming AWS Glue, qui traitent les données de streaming en une série de microlots, et le dimensionnement automatique doit être activé. Lorsque cette valeur est définie sur false, il calcule la moyenne mobile exponentielle de la durée du lot pour les microlots terminés et compare cette valeur à la taille de la fenêtre pour déterminer s'il convient d'augmenter ou de réduire le nombre d'exécuteurs. La mise à l'échelle ne se produit que lorsqu'un microlot est terminé. Lorsque cette valeur est définie sur true, lors d'un microlot, elle augmente lorsque le nombre de tâches Spark reste le même pendant 30 secondes ou que le traitement par lots en cours est supérieur à la taille de la fenêtre. Le nombre d'exécuteurs diminuera si un exécuteur est inactif depuis plus de 60 secondes ou si la moyenne mobile exponentielle de la durée du lot est faible.

--class

La classe Scala qui sert de point d'entrée à votre script Scala. Cela s'applique uniquement si votre --job-language est défini sur scala.

--continuous-log-conversionPattern

Spécifie un modèle de journal de conversion personnalisé pour une tâche activée pour la journalisation en continu. Le modèle de conversion s'applique uniquement aux journaux des pilotes et des programmes d'exécution. Cela n'affecte pas la barre de progression AWS Glue.

--continuous-log-logGroup

Spécifie un nom de groupe de CloudWatch journaux Amazon personnalisé pour une tâche activée pour la journalisation continue.

--continuous-log-logStreamPrefix

Spécifie un préfixe de flux de CloudWatch journal personnalisé pour une tâche activée pour la journalisation continue.

--customer-driver-env-vars et --customer-executor-env-vars

Ces paramètres définissent des variables d'environnement sur le système d'exploitation respectivement pour chaque travailleur (pilote ou exécuteur). Vous pouvez utiliser ces paramètres lorsque vous créez des plateformes et des frameworks personnalisés sur AWS Glue, afin de permettre à vos utilisateurs d'écrire des jobs dessus. L'activation de ces deux indicateurs vous permettra de définir des variables d'environnement différentes sur le pilote et sur l'exécuteur, respectivement, sans avoir à injecter la même logique dans le script de tâche lui-même.

Exemple d’utilisation

Voici un exemple d'utilisation de ces paramètres :

"—customer-driver-env-vars", "CUSTOMER_KEY1=VAL1,CUSTOMER_KEY2=\"val2,val2 val2\"", "—customer-executor-env-vars", "CUSTOMER_KEY3=VAL3,KEY4=VAL4"

Les définir dans l'argument job run revient à exécuter les commandes suivantes :

Dans le pilote :

  • exporter CUSTOMER_KEY1=VAL1

  • export CUSTOMER_KEY2="Val2, val2 val2"

Dans l'exécuteur testamentaire :

  • exporter CUSTOMER_KEY3=VAL3

Ensuite, dans le script de tâche lui-même, vous pouvez récupérer les variables d'environnement à l'aide de os.environ.get("CUSTOMER_KEY1") ouSystem.getenv("CUSTOMER_KEY1").

Syntaxe appliquée

Respectez les normes suivantes lors de la définition des variables d'environnement :

  • Chaque clé doit avoir leCUSTOMER_ prefix.

    Par exemple : for"CUSTOMER_KEY3=VAL3,KEY4=VAL4", KEY4=VAL4 sera ignoré et ne sera pas défini.

  • Chaque paire clé/valeur doit être délimitée par une simple virgule.

    Par exemple : "CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"

  • Si la « valeur » comporte des espaces ou des virgules, elle doit être définie entre guillemets.

    Par exemple : CUSTOMER_KEY2=\"val2,val2 val2\"

Cette syntaxe modélise étroitement les normes de définition des variables d'environnement bash.

--datalake-formats

Pris en charge dans AWS Glue 3.0 et versions ultérieures.

Spécifie la structure du lac de données à utiliser. AWS Glue ajoute les fichiers JAR requis pour les frameworks que vous spécifiez dans leclasspath. Pour plus d'informations, consultez Utilisation de cadres de lac de données avec des tâches AWS Glue ETL.

Vous pouvez spécifier une ou plusieurs des valeurs suivantes, séparées par une virgule :

  • hudi

  • delta

  • iceberg

Par exemple, transmettez l'argument suivant pour spécifier les trois infrastructures.

'--datalake-formats': 'hudi,delta,iceberg'
--disable-proxy-v2

Désactivez le proxy de AWS service pour autoriser les appels de service vers Amazon S3 et AWS Glue provenant de votre script via votre VPC. CloudWatch Pour plus d'informations, consultez Configurer AWS les appels pour qu'ils passent par votre VPC. Pour désactiver le proxy de service, définissez la valeur de ce paramètre sur true.

--enable-auto-scaling

Lorsque cette valeur est paramétrée sur true, active la mise à l'échelle automatique ainsi que la facturation par employé.

--enable-continuous-cloudwatch-log

Active la journalisation continue en temps réel des tâches AWS Glue. Vous pouvez consulter les connexions aux tâches Apache Spark en temps réel CloudWatch.

--enable-continuous-log-filter

Spécifie un filtre standard (true) ou aucun filtre (false) lorsque vous créez ou modifiez une tâche activée pour la journalisation continue. Le choix du filtre standard élimine les pilotes/exécuteurs Apache Spark inutiles et les messages des journaux de pulsation Apache Hadoop YARN. Ne choisir aucun filtre vous donne tous les messages de journaux.

--enable-glue-datacatalog

Vous permet d'utiliser le catalogue de données AWS Glue comme métastore Apache Spark Hive. Pour activer cette fonctionnalité, définissez la valeur sur true.

--enable-job-insights

Permet une surveillance supplémentaire de l'analyse des erreurs grâce à AWS Glue Job Run Insights. Pour plus de détails, consultez Surveillance avec les informations sur l'exécution de la tâcheAWS Glue. Par défaut, cette valeur est définie sur true et les informations sur l'exécution des tâches sont activées.

Cette option est disponible avec les versions AWS Glue 2.0 et 3.0.

--enable-metrics

Permet de collecter des métriques de profilage de tâche pour l'exécution de cette tâche. Ces statistiques sont disponibles sur la AWS Glue console et sur la CloudWatch console Amazon. La valeur de ce paramètre n'est pas pertinente. Pour activer cette fonctionnalité, vous pouvez attribuer à ce paramètre n'importe quelle valeur, mais la valeur true est recommandée pour des raisons de clarté. Pour désactiver cette fonctionnalité, supprimez ce paramètre de la configuration de votre tâche.

--enable-observability-metrics

Active un ensemble de mesures d'observabilité pour générer des informations sur ce qui se passe dans chaque tâche exécutée sur la page Job Runs Monitoring située sous AWS Glue console et Amazon CloudWatch console. Pour activer cette fonctionnalité, définissez la valeur de ce paramètre sur « true ». Pour désactiver cette fonctionnalité, définissez-la sur false ou supprimez ce paramètre de la configuration de votre tâche.

--enable-rename-algorithm-v2

Définit la version de l'algorithme de renommage EMRFS sur la version 2. Lorsqu'une tâche Spark utilise le mode d'écrasement de partition dynamique, il est possible qu'une partition en double soit créée. Par exemple, vous pouvez vous retrouver avec une partition dupliquée telle que s3://bucket/table/location/p1=1/p1=1. Ici, P1 est la partition en cours de remplacement. Renommer l'algorithme en version 2 résout ce problème.

Cette option est uniquement disponible sur AWS Glue version 1.0.

--enable-s3-parquet-optimized-committer

Active le validateur EMRFS optimisé pour S3 pour l'écriture de données Parquet dans Amazon S3. Vous pouvez fournir la paire paramètre/valeur via la console AWS Glue lors de la création ou de la mise à jour d'une tâche AWS Glue. Définir la valeur sur true active le validateur. Par défaut, le drapeau est activé dans AWS Glue 3.0 et désactivé dans AWS Glue 2.0.

Pour de plus amples informations, veuillez consulter Utilisation du validateur EMRFS optimisé pour S3.

--enable-spark-ui

Lorsque true est défini, active la fonction permettant d'utiliser l'interface utilisateur Spark pour surveiller et déboguer les tâches AWS Glue ETL.

--executor-cores

Nombre de tâches Spark pouvant être exécutées en parallèle. Cette option est prise en charge sur AWS Glue 3.0+. La valeur ne doit pas dépasser le double du nombre de vCPU sur le type de travailleur, soit 8 sur G.1X, 16 sur G.2X, 32 sur G.4X et 64 sur. G.8X Vous devez faire preuve de prudence lors de la mise à jour de cette configuration, car cela peut avoir un impact sur les performances des tâches. En effet, l'augmentation du parallélisme des tâches entraîne une surcharge de la mémoire et des disques, ainsi qu'un ralentissement des systèmes source et cible (par exemple : cela entraînerait davantage de connexions simultanées sur Amazon RDS).

--extra-files

Chemins Amazon S3 vers des fichiers supplémentaires (par exemple, des fichiers de configuration) que AWS Glue copie vers le répertoire de travail de votre script avant de l'exécuter. Plusieurs valeurs doivent être des chemins entiers séparés par une virgule (,). Seuls les fichiers individuels sont pris en charge, et non un chemin de répertoire. Cette option n'est pas prise en charge pour les types de tâches shell Python.

--extra-jars

Chemins Amazon S3 vers des fichiers Java .jar supplémentaires que AWS Glue ajoute au chemin de classe Java avant d'exécuter votre script. Plusieurs valeurs doivent être des chemins entiers séparés par une virgule (,).

--extra-py-files

Chemins Amazon S3 vers les modules Python supplémentaires ajoutés par AWS Glue au chemin Python avant d'exécuter votre script. Plusieurs valeurs doivent être des chemins entiers séparés par une virgule (,). Seuls les fichiers individuels sont pris en charge, et non un chemin de répertoire.

--job-bookmark-option

Contrôle le comportement d'un signet de tâche. Les valeurs d'option suivantes peuvent être définies.

Valeur ‑‑job‑bookmark‑option Description
job-bookmark-enable Conserver une trace des données précédemment traitées. Lorsqu'une tâche s'exécute, traiter les nouvelles données depuis le dernier point de contrôle.
job-bookmark-disable Toujours traiter l'intégralité de l'ensemble de données. Vous êtes responsable de la gestion de la sortie des exécutions de tâche précédentes.
job-bookmark-pause Traitez les données progressives+ depuis la dernière exécution réussie ou les données de la plage identifiée par les sous-options suivantes, sans mettre à jour l'état du dernier marque-page. Vous êtes responsable de la gestion de la sortie des exécutions de tâche précédentes. Les deux sous-options sont les suivantes :
  • job-bookmark-from <from-value> est l'ID d'exécution qui représente toute l'entrée qui a été traitée jusqu'à la dernière exécution réussie jusqu'à l'ID d'exécution spécifié (compris). L'entrée correspondante est ignorée.

  • job-bookmark-to <to-value> est l'ID d'exécution qui représente toute l'entrée qui a été traitée jusqu'à la dernière exécution réussie jusqu'à l'ID d'exécution spécifié (compris). L'entrée correspondante, à l'exclusion de l'entrée identifiée par <from-value>, est traitée par la tâche. Toute entrée postérieure à cette entrée est également exclue pour traitement.

L'état du marque-page de tâche n'est pas mis à jour lorsque cette option est spécifiée.

Les sous-options sont facultatives. Cependant, lorsqu'elles sont utilisées, les deux sous-options doivent être fournies.

Par exemple, pour activer un marque-page de tâche, transmettez l'argument suivant :

'--job-bookmark-option': 'job-bookmark-enable'
--job-language

Langage de programmation des scripts. Cette valeur doit être scala ou python. Si le paramètre n'est pas présent, la valeur par défaut est python.

--python-modules-installer-option

Une chaîne de texte simple qui définit les options à transmettre à pip3 lors de l'installation de modules avec --additional-python-modules. Fournissez des options comme vous le feriez dans la ligne de commande, séparées par des espaces et préfixées par des tirets. Pour plus d'informations sur l'utilisation, consultez Installation de modules Python supplémentaires dans AWS Glue 2.0 et versions ultérieures avec pip.

Note

Cette option n'est pas prise en charge pour les tâches AWS Glue lorsque vous utilisez Python 3.9.

--scriptLocation

Emplacement Amazon Simple Storage Service (Amazon S3) dans lequel votre script ETL est situé (sous la forme s3://path/to/my/script.py). Ce paramètre remplace celui du script défini dans l'objet JobCommand.

--spark-event-logs-path

Spécifie un chemin d'accès Amazon S3. Lors de l'utilisation de la fonction de surveillance de l'interface utilisateur Spark, AWS Glue vide les journaux d'événements Spark vers ce chemin Amazon S3 toutes les 30 secondes dans un compartiment qui peut être utilisé comme répertoire temporaire pour stocker les événements de l'interface utilisateur Spark.

--TempDir

Spécifie un chemin Amazon S3 vers un compartiment qui peut être utilisé comme répertoire temporaire pour la tâche.

Par exemple, pour définir un répertoire temporaire, transmettez l'argument suivant :

'--TempDir': 's3-path-to-directory'
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.

--use-postgres-driver

Lorsque vous définissez cette valeur sur true, cela priorise le pilote JDBC Postgres dans le chemin de classe afin d'éviter tout conflit avec le pilote JDBC Amazon Redshift. Cette option n'est disponible que dans AWS Glue version 2.0.

--user-jars-first

Lorsque vous définissez cette valeur sur true, cela priorise les fichiers JAR supplémentaires du client dans le chemin de classe. Cette option n'est disponible que dans AWS Glue version 2.0 ou au-delà.

--conf

Contrôle les paramètres de configuration de Spark. Elle est destinée aux cas d'utilisation avancés.

--encryption-type

Paramètre hérité. Le comportement correspondant doit être configuré à l'aide des configurations de sécurité. Pour plus d'informations sur les configurations de sécurité, consultez Chiffrement de données écrites par AWS Glue.

AWS Glue utilise les arguments suivants en interne et vous ne devriez jamais les utiliser :

  • --debug — Interne à AWS Glue. Ne pas définir.

  • --mode — Interne à AWS Glue. Ne pas définir.

  • --JOB_NAME — Interne à AWS Glue. Ne pas définir.

  • --endpoint — Interne à AWS Glue. Ne pas définir.

AWS Glue prend en charge l'amorçage d'un environnement avec le module site de Python en utilisant sitecustomize pour effectuer des personnalisations spécifiques au site. L'amorçage de vos propres fonctions d'initialisation est recommandé uniquement pour les cas d'utilisation avancés et n'est pris en charge que dans la mesure du possible dans la version 4.0 d'AWS Glue.

Le préfixe de la variable d'environnement, GLUE_CUSTOMER, est réservé à l'usage du client.