Dimensionamento automatico di AWS Glue Streaming - AWS Glue

Dimensionamento automatico di AWS Glue Streaming

I processi di streaming AWS Glue ETL consumano continuamente dati provenienti da origini di streaming, puliscono e trasformano i dati in corso e li rendono disponibili per l'analisi. Monitorando ogni fase dell'esecuzione del lavoro, la scalabilità automatica AWS Glue può disattivare i lavoratori quando sono inattivi o aggiungere lavoratori se è possibile un'ulteriore elaborazione parallela.

Nelle sezioni seguenti vengono fornite informazioni sul dimensionamento automatico dello streaming di AWS Glue

Abilitazione dell'Auto Scaling in AWS Glue Studio

Sulla scheda Job details (Dettagli processo) in AWS Glue Studio, scegli il tipo Spark o Spark Streaming e Glue version (Versione di Glue) come Glue 3.0 o Glue 4.0. In seguito, una casella di controllo verrà visualizzata sotto Worker type (tipo di worker).

  • Seleziona l'opzione Dimensiona automaticamente il numero di worker.

  • Imposta la proprietà Numero massimo di dipendenti per definire il numero massimo di dipendenti che possono essere ceduti all'esecuzione del processo.

Abilitazione e configurazione di Auto Scaling in AWS Glue Studio.

Abilitazione di Auto Scaling con il CLI o SDK di AWS

Per abilitare Auto Scaling dal CLI di AWS per eseguire il processo, eseguirestart-job-run con la configurazione seguente:

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, and R.8X are supported for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

Una volta terminata l'esecuzione del processo ETL, puoi anche chiamareget-job-run per verificare l'effettivo utilizzo delle risorse del processo eseguito in secondi DPU. Nota: il nuovo campo DPUSeconds verrà visualizzato solo per i processi batch su AWS Glue 3.0 o versioni successive abilitati con Dimensionamento automatico. Questo campo non è supportato per i processi di streaming.

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

È inoltre possibile configurare le esecuzioni dei processi con Auto Scaling utilizzando l'SDKAWS Glue con la stessa configurazione.

Come funziona

Dimensionamento tra microbatch

L'esempio seguente viene utilizzato per descrivere come funziona il dimensionamento automatico.

  • Hai un processo AWS Glue che inizia con 50 DPU.

  • Il dimensionamento automatico è abilitato.

In questo esempio, AWS Glue esamina il parametro "batchProcessingTimeInMs" per alcuni microbatch e determina se i processi vengono completati entro i limiti della finestra stabiliti. Se i tuoi processi vengono completati prima e a seconda della tempistica con cui vengono completati, AWS Glue potrebbe ridursi. In Amazon CloudWatch è possibile monitorare questo parametro, tracciato con "numberAllExecutors", per vedere come funziona il dimensionamento automatico.

Il numero di esecutori aumenta o diminuisce in modo esponenziale solo dopo il completamento di ogni microbatch. Come si può vedere dal log di monitoraggio di Amazon CloudWatch, AWS Glue analizza il numero di esecutori necessari (linea arancione) e dimensiona gli esecutori (linea blu) in modo che corrispondano automaticamente a tale numero.

Lo screenshot mostra un log di monitoraggio di Amazon CloudWatch, AWS Glue per l'esempio fornito sopra, ed esamina il numero di esecutori necessari (linea arancione) e dimensiona gli esecutori (linea blu) in modo che corrispondano a tale numero senza bisogno di regolazioni manuali.

Dopo che AWS Glue riduce il numero di esecutori e rileva che il volume di dati aumenta, con conseguente aumento del tempo di elaborazione dei microbatch, AWS Glue aumenta fino a 50 DPU, che è il limite massimo specificato.

Dimensionamento all'interno di un microbatch

Nell'esempio precedente, il sistema monitora alcuni microbatch completati per decidere se eseguire un aumento o una riduzione. Per le finestre più lunghe, il dimensionamento automatico è utile per rispondere più rapidamente all'interno del microbatch, anziché attendere pochi microbatch. In questi casi, è possibile utilizzare la configurazione aggiuntiva --auto-scaIe-within-microbatch per true. È possibile aggiungerla alle proprietà del processo AWS Glue in AWS Glue Studio come illustrato di seguito.

Lo screenshot mostra i parametri del processo per chiave e valore. Il campo Chiave contiene il valore --auto-scaIe-within-microbatch, mentre il campo Valore contiene il valore true.