Parametri del processo AWS Glue - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Parametri del processo AWS Glue

Quando si crea un lavoro AWS Glue, si impostano alcuni campi standard, come Role eWorkerType. È possibile fornire informazioni di configurazione aggiuntive tramite i campi Argument (Parametri del processo nella console). In questi campi, è possibile fornire ai job AWS Glue gli argomenti (parametri) elencati in questo argomento. Per ulteriori informazioni sull'API AWS Glue Job, vedereProcessi.

Impostazione dei parametri del processo

È possibile configurare un processo tramite la console nella scheda Job details (Dettagli del processo), sotto l'intestazione Job parameters (Parametri del processo). Puoi anche configurare un lavoro tramite AWS CLI by setting DefaultArguments o NonOverridableArguments on a job oppure impostando Arguments on a job run. Gli argomenti impostati nel processo verranno trasmessi ogni volta che il processo viene eseguito, mentre gli argomenti impostati durante l'esecuzione del processo verranno trasmessi solo per quella singola esecuzione.

Ad esempio, di seguito è riportata la sintassi per l'esecuzione di un processo utilizzando --arguments per impostare un parametro di processo.

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

Accesso ai parametri di processo

Quando scrivi script AWS Glue, potresti voler accedere ai valori dei parametri di lavoro per modificare il comportamento del tuo codice. Forniamo metodi di supporto per eseguire questa operazione tramite le nostre librerie. Questi metodi riescono a risolvere i valori dei parametri di esecuzione del processo che sostituiscono i valori dei parametri del processo. Quando si risolvono i parametri impostati in più posizioni, il processo NonOverridableArguments sostituisce l'esecuzione del processo Arguments, che sostituisce il processo DefaultArguments.

In Python:

Nei processi Python, forniamo una funzione denominata getResolvedParameters. Per ulteriori informazioni, consulta Accesso ai parametri utilizzando getResolvedOptions. I parametri del processo sono disponibili nella variabile sys.argv.

In Scala:

Nei processi Scala, forniamo un oggetto denominato GlueArgParser. Per ulteriori informazioni, consulta API Scala GlueArgParser di AWS Glue. I parametri del processo sono disponibili nella variabile sysArgs.

Riferimento ai parametri di processo

AWS Glue riconosce i seguenti nomi di argomenti che puoi utilizzare per configurare l'ambiente di script per i processi e le esecuzioni di processi:

--additional-python-modules

Un elenco delimitato da virgole che rappresenta un insieme di pacchetti Python da installare. Puoi installare pacchetti da PyPI o fornire una distribuzione personalizzata. Una voce del pacchetto PyPI sarà nel formato package==version, con il nome e la versione del pacchetto di destinazione. Una voce della distribuzione personalizzata è rappresentata dal percorso S3 della distribuzione.

Le voci utilizzano la versione di Python corrispondente al pacchetto e alla versione, in modo che l'utente non debba utilizzare due segni uguali, come ==. Per ulteriori informazioni su altri operatori che corrispondono alle versioni, consulta la pagina PEP 440.

Per inviare le opzioni di installazione del modulo a pip3, utilizza il parametro --python-modules-installer-option.

--auto-scale-within-microbatch

Il valore predefinito è false. Questo parametro può essere utilizzato solo per i lavori di streaming AWS Glue, che elaborano i dati di streaming in una serie di micro batch, e la scalabilità automatica deve essere abilitata. Quando si imposta questo valore su "false", viene calcolata la media mobile esponenziale della durata del batch per i microbatch completati e questo valore viene confrontato con la dimensione della finestra per determinare se aumentare o ridurre il numero di esecutori. Il dimensionamento avviene solo quando viene completato un microbatch. Quando si imposta questo valore su "true", durante un microbatch, l'aumento avviene quando il numero di attività Spark rimane invariato per 30 secondi o se l'elaborazione del batch corrente è maggiore della dimensione della finestra. Il numero di esecutori diminuisce se un esecutore è rimasto inattivo per più di 60 secondi o se la media mobile esponenziale della durata del batch è bassa.

--class

La classe Scala che funge da punto di accesso per lo script Scala. Questo vale solo se il tuo --job-language è impostato su scala.

--continuous-log-conversionPattern

Specifica un modello di log di conversione personalizzato per un processo abilitato per la registrazione continua. Il modello di conversione si applica solo ai log dei driver e ai log delle esecuzioni. Non interessa la barra di avanzamento di AWS Glue.

--continuous-log-logGroup

Specifica un nome di gruppo di CloudWatch log Amazon personalizzato per un job abilitato alla registrazione continua.

--continuous-log-logStreamPrefix

Specifica un prefisso di CloudWatch log stream personalizzato per un job abilitato alla registrazione continua.

--customer-driver-env-vars e --customer-executor-env-vars

Questi parametri impostano le variabili di ambiente nel sistema operativo rispettivamente per ogni lavoratore (driver o esecutore). Puoi utilizzare questi parametri quando crei piattaforme e framework personalizzati su AWS Glue, per consentire ai tuoi utenti di scrivere lavori su di esso. L'attivazione di questi due flag vi consentirà di impostare diverse variabili di ambiente rispettivamente sul driver e sull'executor senza dover inserire la stessa logica nello script di lavoro stesso.

Esempio di utilizzo

Di seguito è riportato un esempio di utilizzo di questi parametri:

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

L'impostazione di questi nell'argomento job run equivale all'esecuzione dei seguenti comandi:

Nel driver:

  • esporta CUSTOMER_KEY1=VAL1

  • esporta CUSTOMER_KEY2="val2, val2 val2"

Nell'esecutore:

  • esporta CUSTOMER_KEY3=VAL3

Quindi, nello script di lavoro stesso, è possibile recuperare le variabili di ambiente utilizzando o. os.environ.get("CUSTOMER_KEY1") System.getenv("CUSTOMER_KEY1")

Sintassi applicata

Osservate i seguenti standard quando definite le variabili di ambiente:

  • Ogni chiave deve avere ilCUSTOMER_ prefix.

    Ad esempio: for"CUSTOMER_KEY3=VAL3,KEY4=VAL4", KEY4=VAL4 verrà ignorato e non impostato.

  • Ogni coppia di chiavi e valori deve essere delineata con una sola virgola.

    Ad esempio: "CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"

  • Se il «valore» contiene spazi o virgole, deve essere definito tra virgolette.

    Ad esempio: CUSTOMER_KEY2=\"val2,val2 val2\"

Questa sintassi modella da vicino gli standard di impostazione delle variabili di ambiente bash.

--datalake-formats

Supportato in AWS Glue 3.0 e versioni successive.

Specifica il framework del data lake da utilizzare. AWS Glue aggiunge i file JAR richiesti per i framework specificati in. classpath Per ulteriori informazioni, consulta Utilizzo di framework data lake con processi ETL di AWS Glue.

Puoi specificare uno o più dei seguenti valori, separati da una virgola:

  • hudi

  • delta

  • iceberg

Ad esempio, invia il seguente argomento per specificare tutti e tre i framework.

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

Disattiva il proxy del AWS servizio per consentire le chiamate di servizio verso Amazon S3 e AWS Glue provenienti dallo script tramite il tuo VPC. CloudWatch Per ulteriori informazioni, consulta Configurazione di chiamate AWS affinché passino attraverso il tuo VPC. Per disabilitare il proxy del servizio, imposta il valore di questo parametro su true.

--enable-auto-scaling

Attiva la scalabilità automatica e la fatturazione per operatore quando imposti il valore su true.

--enable-continuous-cloudwatch-log

Abilita la registrazione continua in tempo reale per i processi AWS Glue. Puoi visualizzare i log dei job di Apache Spark in tempo reale. CloudWatch

--enable-continuous-log-filter

Specifica un filtro standard (true) o nessun filtro (false) durante la creazione o la modifica di un processo abilitato per la registrazione continua. La scelta del filtro Standard elimina i messaggi di log di heartbeat inutili di driver/executor Apache Spark e Apache Hadoop YARN. Non scegliendo alcun filtro si ottengono tutti i messaggi di log.

--enable-glue-datacatalog

Consente di utilizzare AWS Glue Data Catalog come metastore Apache Spark Hive. Imposta questo valore su true per abilitare questa funzionalità.

--enable-job-insights

Consente un monitoraggio aggiuntivo dell'analisi degli errori con AWS Glue job run insights. Per informazioni dettagliate, vedi Monitoraggio con le informazioni dell'esecuzione del processo di AWS Glue. Per impostazione predefinita, il valore è impostato su true e le informazioni dettagliate sull'esecuzione dei processi sono abilitate.

Questa opzione è disponibile con AWS Glue versione 2.0 e 3.0.

--enable-metrics

Abilita la raccolta di parametri per la profilatura del processo per questa esecuzione. Queste metriche sono disponibili sulla AWS Glue console e sulla CloudWatch console Amazon. Il valore di questo parametro non è rilevante. Per abilitare questa funzionalità, è possibile fornire a questo parametro qualsiasi valore, ma true è consigliabile per motivi di chiarezza. Per disabilitare la funzionalità, rimuovi questo parametro dalla configurazione del processo.

--enable-observability-metrics

Abilita una serie di metriche di osservabilità per generare informazioni su ciò che accade all'interno di ogni lavoro eseguito nella pagina Job Runs Monitoring nella AWS Glue console e nella Amazon CloudWatch console. Per abilitare questa funzionalità, imposta il valore del parametro su "true". Per disabilitare questa funzionalità, impostalo su false o rimuovi questo parametro dalla configurazione del processo.

--enable-rename-algorithm-v2

Imposta la versione dell'algoritmo di ridenominazione EMRFS alla versione 2. Quando un processo Spark utilizza la modalità di sovrascrittura della partizione dinamica, è possibile che venga creata una partizione duplicata. Ad esempio, si può ottenere una partizione duplicata come s3://bucket/table/location/p1=1/p1=1. Qui, P1 è la partizione che viene sovrascritta. La versione 2 dell'algoritmo di ridenominazione risolve questo problema.

Questa opzione è disponibile solo nella versione AWS Glue 1.0.

--enable-s3-parquet-optimized-committer

Abilita il committer ottimizzato EMRFS S3 per la scrittura dei dati Parquet in Amazon S3. Puoi fornire la coppia parametro/valore tramite la console AWS Glue durante la creazione o l'aggiornamento di un processo AWS Glue. L'impostazione del valore su true abilita il committer. Per impostazione predefinita, il flag è attivato in AWS Glue 3.0 e disattivato in AWS Glue 2.0.

Per ulteriori informazioni, consulta Utilizzo del committer ottimizzato EMRFS S3.

--enable-spark-ui

Quando è impostato su true, attiva la funzionalità per utilizzare l'interfaccia utente di Spark per monitorare ed eseguire il debug dei processi ETL di AWS Glue.

--executor-cores

Numero di attività spark che possono essere eseguite in parallelo. Questa opzione è supportata su AWS Glue 3.0+. Il valore non deve superare il doppio del numero di vCPU del tipo di worker, ossia 8 su G.1X, 16 su G.2X, 32 su G.4X e 64 su G.8X. È necessario prestare attenzione durante l'aggiornamento di questa configurazione in quanto potrebbe influire sulle prestazioni del processo; l'incremento del parallelismo, infatti, esercita pressione sulla memoria e sul disco, oltre a limitare i sistemi di origine e destinazione (ad esempio, potrebbe causare più connessioni simultanee su Amazon RDS).

--extra-files

I percorsi Amazon S3 dei file aggiuntivi, come file di configurazione, che AWS Glue copia nella directory di lavoro del tuo script prima di eseguirlo. I valori multipli devono essere percorsi completi separati dalla virgola (,). Solo i singoli file sono supportati, non il percorso di una directory. Questa opzione non è supportata per i tipi di processo shell Python.

--extra-jars

I percorsi Amazon S3 dei file Java .jar aggiuntivi che AWS Glue aggiunge alla classpath Java prima di eseguire lo script. I valori multipli devono essere percorsi completi separati dalla virgola (,).

--extra-py-files

I percorsi Amazon S3 dei moduli Python aggiuntivi che AWS Glue aggiunge al percorso Python prima di eseguire lo script. I valori multipli devono essere percorsi completi separati dalla virgola (,). Solo i singoli file sono supportati, non il percorso di una directory.

--job-bookmark-option

Controlla il comportamento di un segnalibro del processo. É possibile impostare i seguenti valori opzione.

‑‑job‑bookmark‑option  Valore Descrizione
job-bookmark-enable Tieni traccia dei dati elaborati in precedenza. Quando si esegue un processo, elabora i nuovi dati a partire dall'ultimo punto di controllo.
job-bookmark-disable Elabora sempre l'intero set di dati. Sei responsabile della gestione dell'output dalle esecuzioni dei processi precedenti.
job-bookmark-pause Elabora i dati incrementali dall'ultima esecuzione riuscita o i dati nell'intervallo identificato dalle seguenti opzioni secondarie, senza aggiornare lo stato dell'ultimo segnalibro. Sei responsabile della gestione dell'output dalle esecuzioni dei processi precedenti. Le due opzioni secondarie sono le seguenti:
  • job-bookmark-from <from-value> è l'ID di esecuzione che rappresenta tutto l'input che è stato elaborato fino all'ultima esecuzione riuscita prima, incluso l'ID di esecuzione specificato. L'input corrispondente viene ignorato.

  • job-bookmark-to <to-value> è l'ID di esecuzione che rappresenta tutto l'input che è stato elaborato fino all'ultima esecuzione riuscita prima, incluso l'ID di esecuzione specificato. L'input corrispondente escluso l'input identificato da <from-value> viene elaborato dal processo. Qualsiasi input successivo a questo è escluso anche dall'elaborazione.

Lo stato dei segnalibri di processo non viene aggiornato quando viene specificato questo set di opzioni.

Le opzioni secondarie sono facoltative. Tuttavia, se vengono utilizzate, devono essere fornite entrambe le opzioni secondarie.

Ad esempio, per abilitare un segnalibro di processo, passa l'argomento seguente.

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

Il linguaggio di programmazione script. Questo valore deve essere scala o python. Se questo parametro non è presente, il valore predefinito è python.

--python-modules-installer-option

Una stringa di testo semplice che definisce le opzioni da inviare a pip3 quando si installano i moduli con --additional-python-modules. Fornisci le opzioni come faresti nella riga di comando, separate da spazi e precedute da trattini. Per ulteriori informazioni sull'utilizzo, consulta Installazione di moduli Python aggiuntivi in AWS Glue 2.0 con pip.

Nota

Questa opzione non è supportata per i lavori AWS Glue quando si utilizza Python 3.9.

--scriptLocation

La posizione di Amazon Simple Storage Service (Amazon S3) in cui si trova lo script ETL (nel formato s3://path/to/my/script.py). Questo parametro sovrascrive un percorso script impostato nell'oggetto JobCommand.

--spark-event-logs-path

Specifica un percorso Amazon S3. Quando si utilizza la funzionalità di monitoraggio dell'interfaccia utente di Spark, AWS Glue scarica i log degli eventi Spark su questo percorso Amazon S3 ogni 30 secondi in un bucket utilizzabile come directory temporanea per l'archiviazione di eventi dell'interfaccia utente Spark.

--TempDir

Specifica un percorso Amazon S3 a un bucket utilizzabile come directory temporanea per il processo.

Ad esempio, per impostare una directory temporanea, passa l'argomento seguente.

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

AWS Glue crea un bucket temporaneo per i processi, se il bucket non esiste già una regione. Questo bucket potrebbe consentire l'accesso pubblico. Puoi modificare il bucket in Amazon S3 per impostare il blocco dell'accesso pubblico oppure eliminare il bucket in un secondo momento dopo che tutti i processi in quella regione sono stati completati.

--use-postgres-driver

Impostando questo valore su true, assegna la priorità al driver JDBC Postgres nella variabile classpath per evitare un conflitto con il driver JDBC Amazon Redshift. Questa opzione è disponibile solo in AWS Glue versione 2.0.

--user-jars-first

Impostando questo valore su true, dà la priorità ai file JAR aggiuntivi del cliente nella variabile classpath. Questa opzione è disponibile solo nella versione AWS Glue 2.0 o successive.

--conf

Controlla i parametri di configurazione di Spark. È per casi d'uso avanzati.

--encryption-type

Parametro legacy. Il comportamento corrispondente deve essere configurato utilizzando le configurazioni di sicurezza. Per ulteriori informazioni sulle configurazioni di sicurezza, consulta la pagina Crittografia dei dati scritti da AWS Glue.

AWS Glue utilizza internamente i seguenti argomenti, che non dovresti mai usare:

  • --debug: interno a AWS Glue. Non impostare.

  • --mode: interno a AWS Glue. Non impostare.

  • --JOB_NAME: interno a AWS Glue. Non impostare.

  • --endpoint: interno a AWS Glue. Non impostare.

AWS Glue supporta l'operazione di bootstrap di un ambiente con il modulo site di Python utilizzando sitecustomize per eseguire personalizzazioni specifiche del sito. L'operazione di bootstrap delle proprie funzioni di inizializzazione è consigliata solo per casi d'uso avanzati ed è supportata su base best effort dalla versione 4.0 di AWS Glue.

Il prefisso della variabile di ambiente, GLUE_CUSTOMER, è riservato all'uso da parte dei clienti.