Finestre di manutenzione per lo streaming AWS Glue - AWS Glue

Finestre di manutenzione per lo streaming AWS Glue

AWS Glue esegue periodicamente attività di manutenzione. Durante queste finestre di manutenzione, AWS Glue deve riavviare i lavori di streaming. Puoi controllare quando i lavori vengono riavviati specificando le finestre di manutenzione. In questa sezione, descriviamo dove è possibile configurare la finestra di manutenzione e i comportamenti specifici da prendere in considerazione.

Impostazione della finestra di manutenzione

Puoi configurare una finestra di manutenzione utilizzando Studio AWS Glue o le API.

Configurazione di una finestra di manutenzione in Studio AWS Glue

È possibile specificare una finestra di manutenzione nella pagina Dettagli lavoro del lavoro di streaming AWS Glue. Puoi specificare il giorno e l'ora in GMT. AWS Glue riavvierà il lavoro entro la finestra temporale specificata.

Specificare una finestra di manutenzione in Studio AWS Glue

Configurazione di una finestra di manutenzione nell'API

In alternativa, puoi configurare la finestra di manutenzione nell'API Create Job. Ecco un esempio di configurazione di una finestra di manutenzione tramite l'API.

aws glue create-job —name jobName —role roleArnForTheJob —command Name=gluestreaming,ScriptLocation=s3-path-to-the-script --maintenance-window="Sun:10"

Di seguito è riportato un comando di esempio:

aws glue create-job —name testMaintenance —role arn:aws:iam::012345678901:role/Glue_DefaultRole —command Name=gluestreaming,ScriptLocation=s3://glue-example-test/example.py —maintenance-window="Sun:10

Comportamento della finestra di manutenzione

AWS Glue esegue una serie di passaggi per decidere quando riavviare un lavoro:

  1. Quando viene avviato un nuovo processo di streaming, AWS Glue verifica innanzitutto se è presente un timeout associato all'esecuzione del lavoro. Un timeout consente di configurare l'ora di fine del processo. Se il timeout è inferiore a 7 giorni, il processo non verrà riavviato.

  2. Se il timeout è superiore a 7 giorni, AWS Glue controlla se la finestra di manutenzione è configurata per il lavoro. In tal caso, quella finestra viene selezionata e assegnata all'esecuzione del lavoro. AWS Glue riavvierà il lavoro entro 3 ore dalla finestra di manutenzione specificata. Ad esempio, se imposti la finestra di manutenzione per lunedì alle 10:00 GMT, i lavori verranno riavviati tra le 10:00 GMT e le 13:00 GMT.

  3. Se la finestra di manutenzione non è configurata, AWS Glue imposta automaticamente l'ora di riavvio a 7 giorni dall'inizio dell'esecuzione del lavoro. Ad esempio, se hai avviato il lavoro il giorno 1/7/2024 alle 12:00 GMT e non hai specificato gli intervalli di manutenzione, il lavoro verrà impostato per il riavvio il giorno 8/7/2024 alle 12:00 GMT.

    Nota

    Se stai già eseguendo lavori di streaming, questa modifica avrà effetto su di te a partire dal 1° luglio 2024. Hai tempo fino al 30 giugno per configurare le finestre di manutenzione. Dopo il 1° luglio, tutti i processi di streaming avviati verranno riavviati in base a questa documentazione. Se hai bisogno di ulteriore assistenza, puoi contattare l'assistenza AWS.

  4. A volte, AWS Glue potrebbe non riuscire a riavviare il lavoro, specialmente quando il microbatch in corso non viene elaborato. In questi casi, il lavoro non verrà interrotto. In questi casi, AWS Glue riavvierà il processo dopo 14 giorni e la finestra di manutenzione non verrà rispettata.

Monitoraggio del lavoro

Puoi monitorare i lavori nella pagina Monitoraggio di Studio AWS Glue.

Per vedere il prossimo orario di riavvio previsto dei lavori di streaming, mostra la colonna nella tabella Esecuzione lavoro nella pagina Monitoraggio.

  1. Fai clic sull'icona a forma di ingranaggio in alto a destra nella tabella.

    Specificare una finestra di manutenzione in Studio AWS Glue
  2. Scorri verso il basso e attiva la colonna Tempo di riavvio previsto. Sono disponibili sia l'ora UTC che l'ora locale.

    Specificare una finestra di manutenzione in Studio AWS Glue
  3. Puoi quindi visualizzare le colonne nella tabella.

    Specificare una finestra di manutenzione in Studio AWS Glue

Il lavoro originale avrà lo stato “SCADUTO” e la nuova istanza di lavoro avrà lo stato “IN ESECUZIONE”. La nuova esecuzione del lavoro che è stato riavviato avrà un ID di esecuzione del lavoro come concatenazione dell'ID iniziale dell'esecuzione del processo più il prefisso “restart_”, che rappresenta il conteggio dei riavvii. Ad esempio, se l'ID iniziale dell'esecuzione del lavoro è jr_1234, l'esecuzione del lavoro riavviato avrà l'ID jr1234_restart_1 del primo riavvio. Il secondo riavvio sarà jr1234_restart_2 per il secondo riavvio e così via.

I riavvii non influiscono sui tentativi. Se un'esecuzione fallisce viene avviata una nuova esecuzione di un nuovo tentativo automatico, il contatore di riavvio ricomincerà da 1. Ad esempio, se un'esecuzione ha esito negativo a jr_1234_attempt_3_restart_5, un nuovo tentativo automatico avvierà una nuova esecuzione con ID: jr_id1_attempt_4. Quando questo tentativo verrà riavviato dopo 7 giorni, il nuovo ID di esecuzione sarà: jr_id1_attempt_4_restart_1.

Gestione della perdita di dati

Durante i riavvii di manutenzione, Streaming AWS Glue segue un processo che garantisce l'integrità e la coerenza dei dati tra l'esecuzione del lavoro precedente e l'esecuzione del lavoro riavviato. Nota che AWS Glue non garantisce l'integrità e la coerenza dei dati tra i riavvii dei processi e consigliamo di prendere in considerazione l'architettura per gestire i dati duplicati all'interno dei lavori di streaming.

  1. Rilevamento delle condizioni di riavvio per manutenzione: Streaming AWS Glue monitora le condizioni che indicano quando deve essere attivato un riavvio di manutenzione, ad esempio se viene raggiunta una finestra di manutenzione dopo 7 giorni o se è necessario un riavvio forzato dopo 14 giorni.

  2. Richiamo di una terminazione graduale: quando vengono soddisfatte le condizioni di riavvio della manutenzione, Streaming AWS Glue avvia un processo di terminazione graduale per il lavoro in esecuzione. Il processo prevede le seguenti fasi:

    1. Interruzione dell'inserimento di nuovi dati: il lavoro di streaming smette di consumare nuovi dati dalle fonti di input (ad esempio, argomenti Kafka, dirette Kinesis o file).

    2. Elaborazione dei dati in sospeso: il processo continua a elaborare tutti i dati già presenti nei buffer o nelle code interni.

    3. Immissione di offset e checkpoint: il lavoro trasferisce gli offset o i checkpoint più recenti su sistemi esterni (ad esempio, Kafka, Kinesis o Amazon S3) per garantire che il lavoro riavviato possa riprendere da dove è stato interrotto il lavoro precedente.

  3. Riavvio del lavoro: una volta completato il corretto processo di terminazione, Streaming AWS Glue riavvia il lavoro utilizzando lo stato e i checkpoint preservati. Il lavoro riavviato riprende l'elaborazione dall'ultimo offset o checkpoint eseguito, assicurando che nessun dato venga perso o duplicato.

  4. Ripresa dell'elaborazione dei dati: il lavoro riavviato riprende l'elaborazione dei dati dal punto in cui era stato interrotto il lavoro precedente. Continua a importare nuovi dati dalle fonti di input, a partire dall'ultimo offset o checkpoint impegnato ed elabora i dati secondo la logica ETL definita.