Parámetros de los trabajos de AWS Glue - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Parámetros de los trabajos de AWS Glue

Al crear un trabajo de AWS Glue, estableces algunos campos estándar, como Role yWorkerType. Puede proporcionar información de configuración adicional a través de los campos Argument (Parámetros del trabajo en la consola). En estos campos, puede proporcionar a los trabajos de AWS Glue los argumentos (parámetros) enumerados en este tema. Para obtener más información sobre la API AWS Glue Job, consulteJobs.

Configuración de los parámetros del trabajo

Puede configurar un trabajo a través de la consola, en la pestaña Job details (Detalles del trabajo), en el encabezado Job Parameters (Parámetro del trabajo). También puede configurar un trabajo AWS CLI mediante la configuración DefaultArguments o NonOverridableArguments en un trabajo, o configurando Arguments la ejecución de un trabajo. Los argumentos establecidos en el trabajo se pasarán cada vez que se ejecute el trabajo, mientras que los argumentos establecidos en la ejecución del trabajo solo se pasarán para esa ejecución individual.

Por ejemplo, a continuación se muestra la sintaxis para ejecutar un trabajo con --arguments para configurar un parámetro de trabajo.

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

Acceder a los parámetros del trabajo

Al escribir scripts de AWS Glue, es posible que desee acceder a los valores de los parámetros del trabajo para modificar el comportamiento de su propio código. Proporcionamos métodos auxiliares para hacerlo en nuestras bibliotecas. Estos métodos resuelven los valores de los parámetros de ejecución del trabajo que anulan los valores de los parámetros del trabajo. Al resolver los parámetros establecidos en varios lugares, el trabajo NonOverridableArguments anulará el trabajo ejecutado Arguments, que anulará el trabajo DefaultArguments.

En Python:

En los trabajos de Python, proporcionamos una función llamada getResolvedParameters. Para obtener más información, consulte Acceso a los parámetros mediante getResolvedOptions. Los parámetros del trabajo están disponibles en la variable sys.argv.

En Scala:

En los trabajos de Scala, proporcionamos un objeto llamado GlueArgParser. Para obtener más información, consulte API GlueArgParser Scala de AWS Glue. Los parámetros del trabajo están disponibles en la variable sysArgs.

Referencia de parámetros de trabajo

AWS Glue reconoce los siguientes nombres de argumentos que se pueden utilizar para configurar el entorno de scripts para los trabajos y las ejecuciones de trabajos:

--additional-python-modules

Lista delimitada por comas que representa un conjunto de paquetes de Python que se deben instalar. Puede instalar los paquetes desde PyPI o proporcionar una distribución personalizada. Una entrada de paquete de PyPI tendrá el formato package==version, con el nombre y la versión del paquete de destino de PyPI. Una entrada de distribución personalizada es la ruta de S3 a la distribución.

Las entradas utilizan la coincidencia de versiones de Python para hacer coincidir el paquete y la versión. Eso significa que tendrá que usar dos signos igual: ==. Existen otros operadores de coincidencia de versiones; para obtener más información, consulte PEP 440.

Para pasar las opciones de instalación del módulo a pip3, utilice el parámetro --python-modules-installer-option.

--auto-scale-within-microbatch

El valor predeterminado es false. Este parámetro solo se puede usar para los trabajos de transmisión de AWS Glue, que procesan los datos de transmisión en una serie de microlotes, y el escalado automático debe estar habilitado. Al establecer este valor en falso, calcula la media móvil exponencial de la duración del lote de los microlotes completados y lo compara con el tamaño de la ventana para determinar si se debe escalar verticalmente o reducir verticalmente el número de ejecutores. El escalado solo se produce cuando se completa un microlote. Al establecer este valor en verdadero, durante un microlote, escala verticalmente cuando el número de tareas de Spark permanece igual durante 30 segundos o cuando el procesamiento por lotes actual es superior al tamaño de la ventana. El número de ejecutores disminuirá si un ejecutor ha estado inactivo durante más de 60 segundos o si la media móvil exponencial de la duración del lote es baja.

--class

La clase de Scala que sirve de punto de entrada del script de Scala. Esto solo se aplica si --job-language está establecido en scala.

--continuous-log-conversionPattern

Especifica un patrón de registro de conversión personalizado para un trabajo habilitado para el registro continuo. El patrón de conversión solo se aplica a los registros de controlador y de ejecutor. No afecta a la barra de progreso de AWS Glue.

--continuous-log-logGroup

Especifica un nombre de grupo de CloudWatch registros de Amazon personalizado para un trabajo habilitado para el registro continuo.

--continuous-log-logStreamPrefix

Especifica un prefijo de flujo de CloudWatch registro personalizado para un trabajo habilitado para el registro continuo.

--customer-driver-env-vars y --customer-executor-env-vars

Estos parámetros establecen variables de entorno en sistemas operativos de manera respectiva para cada trabajador (controlador o ejecutor). Puedes usar estos parámetros al crear plataformas y marcos personalizados sobre AWS Glue, para que tus usuarios puedan escribir trabajos sobre él. Al activar estos dos marcadores, podrá establecer distintas variables de entorno para el controlador y para el ejecutor respectivamente sin tener que inyectar la misma lógica en el propio script del trabajo.

Ejemplo de uso

A continuación se muestra un ejemplo de la utilización de estos parámetros:

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

El establecimiento de estos en el argumento del trabajo equivale a la ejecución de los siguientes comandos:

En el controlador:

  • exportar CUSTOMER_KEY1=VAL1

  • exportar CUSTOMER_KEY2="val2,val2 val2"

En el ejecutor:

  • exportar CUSTOMER_KEY3=VAL3

Luego, en el propio script de trabajo, se pueden recuperar las variables de entorno con os.environ.get("CUSTOMER_KEY1") o System.getenv("CUSTOMER_KEY1").

Sintaxis de uso obligatorio

Controle los siguientes estándares al definir las variables del entorno:

  • Cada clave debe contener el CUSTOMER_ prefix.

    Por ejemplo: para "CUSTOMER_KEY3=VAL3,KEY4=VAL4", se ignorará KEY4=VAL4 y no se establecerá.

  • Cada par de clave y valor debe estar delimitado por una coma simple.

    Por ejemplo: "CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"

  • Si el valor contiene espacios o comas, debe encerrarse entre comillas.

    Por ejemplo: CUSTOMER_KEY2=\"val2,val2 val2\"

Esta sintaxis modela con precisión los estándares de configuración de las variables de entorno de bash.

--datalake-formats

Compatible con AWS Glue 3.0 y versiones posteriores.

Especifica el marco del lago de datos que se va a utilizar. AWS Glue añade los archivos JAR necesarios para los marcos que especifique en elclasspath. Para obtener más información, consulte Uso de marcos de lagos de datos con trabajos de ETL de AWS Glue.

Puede especificar uno o varios de los siguientes valores, separados por una coma:

  • hudi

  • delta

  • iceberg

Por ejemplo, pase el siguiente argumento para especificar los tres marcos.

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

Inhabilite el proxy del servicio para permitir las llamadas de AWS servicio a Amazon S3 y que se AWS Glue originen desde su script a través de su VPC. CloudWatch Para obtener más información, consulte Configuración de las llamadas de AWS para que pasen a través de su VPC. Para deshabilitar el proxy del servicio, defina el valor de este parámetro en true.

--enable-auto-scaling

Cuando este valor se configura en true, se activa el escalado automático y la facturación por proceso de trabajo.

--enable-continuous-cloudwatch-log

Permite un registro continuo en tiempo real de los trabajos de AWS Glue. Puede ver los registros de trabajo de Apache Spark en CloudWatch tiempo real.

--enable-continuous-log-filter

Especifica un filtro estándar (true) o ningún filtro (false) al crear o editar un trabajo habilitado para el registro continuo. Si se elige Standard filter (Filtro estándar), se filtran los mensajes de registro de estado de Apache Hadoop YARN y de controlador/ejecutor de Apache Hadoop YARN no útiles. Si se elige sin filtro, se verán todos los mensajes de registro.

--enable-glue-datacatalog

Le permite utilizar el catálogo de datos de AWS Glue como un metaalmacén de Apache Spark Hive. Para habilitar esta característica, establezca el valor como true.

--enable-job-insights

Permite una supervisión adicional del análisis de errores con información sobre la ejecución de los trabajos de AWS Glue. Para obtener más detalles, consulte Supervisión con Información de ejecuciones de trabajos de AWS Glue. De forma predeterminada, el valor se establece en true y la información de ejecución de trabajos está habilitada.

Esta opción está disponible para AWS Glue versión 2.0 y 3.0.

--enable-metrics

Permite recopilar métricas para generar perfiles de trabajo en la ejecución de este trabajo. Estas métricas están disponibles en la AWS Glue consola y en la CloudWatch consola de Amazon. El valor de este parámetro no es relevante. Para activar esta característica, puede proporcionar a este parámetro cualquier valor, pero se recomienda true para mayor claridad. Para deshabilitar esta característica, elimine este parámetro de la configuración de su trabajo.

--enable-observability-metrics

Permite un conjunto de métricas de observabilidad para generar información sobre lo que sucede dentro de cada trabajo que se ejecuta en la página Job Runs Monitoring en la AWS Glue consola y la Amazon CloudWatch consola. Para habilitar esta característica, establezca el valor como true (verdadero). Para deshabilitar esta característica, defínala en false o elimine este parámetro de la configuración de su trabajo.

--enable-rename-algorithm-v2

Establece la versión del algoritmo de cambio de nombre de EMRFS a la versión 2. Cuando un trabajo de Spark utiliza el modo de sobrescritura de partición dinámica, existe la posibilidad de que se cree una partición duplicada. Por ejemplo, puede tener como resultado una partición duplicada como s3://bucket/table/location/p1=1/p1=1. Aquí, P1 es la partición que se está sobrescribiendo. El algoritmo de cambio de nombre versión 2 corrige este problema.

Esta opción solo se encuentra disponible en la versión 1.0 de AWS Glue.

--enable-s3-parquet-optimized-committer

Habilita el confirmador optimizado para S3 de EMRFS de forma que puedan escribirse datos de Parquet en Amazon S3. Puede suministrar el par parámetro/valor a través de la consola de AWS Glue cuando cree o actualice un trabajo de AWS Glue. Al establecer el valor en true, se habilita el confirmador. De forma predeterminada, la marca está activada en AWS Glue 3.0 y desactivada en AWS Glue 2.0.

Para obtener más información, consulte este artículo sobre el uso del confirmador optimizado para S3 de EMRFS.

--enable-spark-ui

Cuando se establece en true, se activa la característica que permite utilizar la interfaz de usuario de Spark para supervisar y depurar trabajos de ETL de AWS Glue.

--executor-cores

Número de tareas de Spark que se pueden ejecutar en paralelo. Esta opción es compatible con AWS Glue 3.0+. El valor no debe superar el doble de la cantidad de vCPU en el tipo de trabajador, es decir, 8 en G.1X, 16 en G.2X, 32 en G.4X y 64 en G.8X. Debe tener cuidado al actualizar esta configuración, ya que podría afectar al rendimiento laboral porque el aumento del paralelismo entre las tareas provoca presión en la memoria y el disco y podría limitar los sistemas de origen y destino (por ejemplo, provocaría más conexiones simultáneas en Amazon RDS).

--extra-files

Las rutas de Amazon S3 a archivos adicionales, por ejemplo, archivos de configuración que AWS Glue copia en el directorio de trabajo de su script antes de ejecutarlo. Varios valores deben ser rutas completas separadas por una coma (,). Solo se admiten archivos individuales, no una ruta de directorio. Esta opción no es compatible con los tipos de trabajo de intérprete de comandos de Python.

--extra-jars

Las rutas de Amazon S3 a archivos .jar de Java adicionales que AWS Glue agrega al classpath Java antes de ejecutar el script. Varios valores deben ser rutas completas separadas por una coma (,).

--extra-py-files

Las rutas de Amazon S3 a módulos de Python adicionales que AWS Glue agrega a la ruta de Python antes de ejecutar el script. Varios valores deben ser rutas completas separadas por una coma (,). Solo se admiten archivos individuales, no una ruta de directorio.

--job-bookmark-option

Controla el comportamiento de un marcador de trabajo. Se pueden establecer los siguientes valores de opciones.

‑‑job‑bookmark‑option Valor Descripción
job-bookmark-enable Realizar un seguimiento de los datos procesados anteriormente. Cuando se ejecuta un flujo de trabajo, procesar los datos nuevos desde el último punto de comprobación.
job-bookmark-disable Procesar siempre todo el conjunto de datos. Usted es responsable de administrar el resultado de las ejecuciones de trabajos anteriores.
job-bookmark-pause Procesar los datos incrementales desde la última ejecución correcta o los datos en el rango identificado por las siguientes subopciones, sin actualizar el estado del último marcador. Usted es responsable de administrar el resultado de las ejecuciones de trabajos anteriores. Las dos subopciones son las siguientes:
  • job-bookmark-from <from-value> es el ID de ejecución que representa todas las entradas que se han procesado hasta la última ejecución correcta antes de la misma e incluye el ID de ejecución especificado. La entrada correspondiente se ignora.

  • job-bookmark-to <to-value> es el ID de ejecución que representa todas las entradas que se han procesado hasta la última ejecución correcta antes de la misma e incluye el ID de ejecución especificado. El trabajo procesa la entrada correspondiente, excluida la entrada identificada por <from-value>. Cualquier entrada posterior a esta entrada también se excluye para el procesamiento.

El estado del marcador de trabajo no se actualiza cuando se especifica este conjunto de opciones.

Las subopciones son opcionales. Sin embargo, cuando se utilizan, deben proporcionarse ambas subopciones.

Por ejemplo, para habilitar un marcador de trabajo, transfiera el argumento siguiente.

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

El lenguaje de programación del script. Este valor debe ser scala o python. Si no está presente este parámetro, el valor predeterminado es python.

--python-modules-installer-option

Una cadena de texto simple que define las opciones que se van a pasar a pip3 al instalar módulos con --additional-python-modules. Proporcione opciones como lo haría en la línea de comandos, separadas por espacios y prefijadas por guiones. Para obtener más información acerca del uso de una VPC, consulte Instalación de módulos de Python adicionales con pip en AWS Glue 2.0+.

nota

Esta opción no es compatible con los trabajos de AWS Glue cuando se utiliza Python 3.9.

--scriptLocation

La ubicación de Amazon Simple Storage Service (Amazon S3) donde se encuentra su script de ETL (en formato s3://path/to/my/script.py). Este parámetro invalida una ubicación del script establecida en el objeto JobCommand.

--spark-event-logs-path

Especifica una ruta de Amazon S3. Al utilizar la característica de monitoreo de la interfaz de usuario de Spark, AWS Glue vacía los registros de eventos de Spark a esta ruta de Amazon S3 cada 30 segundos, en un bucket que se puede utilizar como directorio temporal para almacenar eventos de la interfaz de usuario de Spark.

--TempDir

Especifica una ruta de Amazon S3 a un bucket que se puede utilizar como directorio temporal para el trabajo.

Por ejemplo, para establecer un directorio temporal, transfiera el argumento siguiente.

'--TempDir': 's3-path-to-directory'
nota

AWS Glue crea un bucket temporal para los trabajos si aún no existe ningún bucket en una región. Este bucket podría permitir el acceso público. Puede modificar el bucket en Amazon S3 para establecer el bloqueo del acceso público o eliminar el bucket más tarde, después de que se hayan completado todos los trabajos de esa región.

--use-postgres-driver

Al establecer este valor en true, se prioriza el controlador JDBC de Postgre en la ruta de clases para evitar un conflicto con el controlador JDBC de Amazon Redshift. La opción solo se encuentra disponible en la versión 2.0 de AWS Glue.

--user-jars-first

Al establecer este valor en true, se priorizan los archivos JAR adicionales del cliente en el classpath. Esta opción solo se encuentra disponible en AWS Glue versión 2.0 o posterior.

--conf

Controla los parámetros de configuración de Spark. Es para casos de uso avanzados.

--encryption-type

Parámetro heredado. El comportamiento correspondiente debe configurarse mediante configuraciones de seguridad. Para obtener más información sobre las configuraciones de seguridad, consulte Cifrado de datos escritos por AWS Glue.

AWS Glue utiliza los siguientes argumentos a nivel interno y el usuario nunca debe utilizarlos:

  • --debug: interno de AWS Glue. No lo establezca.

  • --mode: interno de AWS Glue. No lo establezca.

  • --JOB_NAME: interno de AWS Glue. No lo establezca.

  • --endpoint: interno de AWS Glue. No lo establezca.

AWS Glue admite el inicio de un entorno con el módulo site de Python que utiliza sitecustomize para realizar personalizaciones específicas del sitio. Se recomienda iniciar sus propias funciones de inicialización únicamente para casos de uso avanzados y, si se hace todo lo posible, se admite en la versión 4.0 AWS Glue.

El prefijo de la variable de entorno, GLUE_CUSTOMER, está reservado para el uso de los clientes.