Utilisation des paramètres des tâches dans les 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.

Utilisation des paramètres des tâches dans les 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 le AWS Glue JobAPI, 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 de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter 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'arguments suivants que vous pouvez utiliser pour configurer l'environnement de script pour vos tâches et leurs exécutions :

--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 PEP440.

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 de 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 JAR fichiers requis pour les frameworks que vous spécifiez dans leclasspath. Pour de plus amples informations, veuillez consulter 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 votreVPC. CloudWatch Pour plus d'informations, consultez la section Configuration des AWS 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

Permet la journalisation continue en temps réel des tâches AWS Glue. Vous pouvez afficher les journaux de tâches Apache Spark en temps réel dans 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 messages inutiles du pilote/exécuteur Apache Spark et du journal des battements de cœur d'Apache YARN Hadoop. 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 pour les versions 2.0 et 3.0 de AWS Glue.

--enable--lakeformation-fine-grained-access

Permet un contrôle d'accès précis pour les tâches AWS Glue. Pour de plus amples informations, veuillez consulter Utiliser AWS Glue with AWS Lake Formation pour un contrôle d'accès précis.

--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 les consoles AWS Glue et Amazon CloudWatch . 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 sous AWS la console Glue et la 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 EMRFS renommage 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 n'est disponible que sur la version 1.0 de AWS Glue.

--enable-s3-parquet-optimized-committer

Permet au valideur EMRFS optimisé pour S3 d'écrire des 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 Glue AWS . 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 plus d'informations, consultez la section Utilisation du EMRFS Committer optimisé pour S3.

--enable-spark-ui

Lorsque ce paramètre est défini surtrue, active la fonctionnalité permettant d'utiliser l'interface utilisateur de Spark pour surveiller et déboguer les ETL tâches AWS Glue.

--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 vCPUs travailleurs, soit 8 actifsG.1X, 16 actifsG.2X, 32 actifs G.4X et 64 actifsG.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, car le parallélisme accru des tâches entraîne une augmentation de la mémoire, de la pression sur le disque et peut également ralentir les systèmes source et cible (par exemple : cela entraînerait un plus grand nombre de connexions simultanées sur Amazon). RDS

--extra-files

Les chemins Amazon S3 mènent à des fichiers supplémentaires, tels que des fichiers de configuration que AWS Glue copie dans le répertoire de travail de votre script sur le nœud du pilote 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

Les chemins Amazon S3 mènent à des fichiers supplémentaires que AWS Glue copie vers le pilote et les exécuteurs. AWS Glue ajoute également ces fichiers au chemin de classe Java avant d'exécuter votre script. Plusieurs valeurs doivent être des chemins entiers séparés par une virgule (,). Il n'est pas nécessaire que l'extension soit .jar

--extra-py-files

Les chemins Amazon S3 vers des modules Python supplémentaires que AWS Glue ajoute au chemin Python sur le nœud pilote 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 avec pip dans AWS Glue 2.0 ou version ultérieure.

Note

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

--scriptLocation

L'emplacement Amazon Simple Storage Service (Amazon S3) où se trouve ETL votre script (dans le s3://path/to/my/script.py formulaire). 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 s'il n'en existe pas déjà un 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 cette valeur est définie surtrue, elle donne la priorité au JDBC pilote Postgres dans le chemin de classe afin d'éviter tout conflit avec le pilote Amazon Redshift. JDBC Cette option n'est disponible que dans AWS la version 2.0 de Glue.

--user-jars-first

Lorsque cette valeur est définie surtrue, elle donne la priorité aux JAR fichiers supplémentaires du client dans le chemin de classe. Cette option n'est disponible que dans AWS la version 2.0 ou ultérieure de Glue.

--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 devez 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 permet de démarrer un environnement à l'aide du site module Python 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 est pris en charge dans toute la mesure du possible sur Glue 4.0. AWS

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