Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Questa pagina spiega come definire i periodi di manutenzione per i tuoi ambienti.
Informazioni sui periodi di manutenzione
Un periodo di manutenzione è un periodo di tempo in cui consenti a Managed Airflow di eseguire operazioni di manutenzione. Ad esempio, puoi assicurarti che le esecuzioni delle attività critiche non vengano interrotte specificando i periodi di manutenzione al di fuori degli orari di pianificazione dei DAG.
Con i periodi di manutenzione, hai il controllo sui periodi di tempo in cui può essere eseguita la manutenzione del tuo ambiente:
Se definisci periodi di manutenzione personalizzati per il tuo ambiente, Managed Airflow esegue la manutenzione durante questi periodi definiti.
Se non definisci periodi di manutenzione personalizzati per il tuo ambiente, Managed Airflow esegue la manutenzione durante i periodi di manutenzione predefiniti.
Come funzionano i periodi di manutenzione
I periodi di manutenzione funzionano nel seguente modo:
Le operazioni di manutenzione richiedono almeno 12 ore di tempo allocate in una singola settimana.
Puoi utilizzare più intervalli di tempo, ma la durata di ogni intervallo deve essere di almeno 4 ore.
Il tuo ambiente rimane disponibile durante i periodi di manutenzione. Alcuni componenti del tuo ambiente potrebbero diventare temporaneamente non disponibili durante le operazioni di manutenzione.
Le 12 ore sono necessarie per consentire a Managed Airflow di avere tempo sufficiente per pianificare ed eseguire tutte le operazioni di manutenzione. Ciò non significa che le operazioni di manutenzione richiedano 12 ore complete o che vengano eseguite ogni settimana.
Puoi comunque eseguire i DAG durante i periodi di manutenzione, a condizione che sia accettabile che alcune attività possano essere interrotte e riprovate. Se esegui i DAG durante i periodi di manutenzione, assicurati di attivare i tentativi di ripetizione delle attività. Puoi configurare i tentativi di ripetizione delle attività a livello di configurazione di Airflow, DAG o attività.
Le attività che richiedono meno di 55 minuti per l'esecuzione in genere non sono interessate dalle operazioni di manutenzione, ma devono comunque avere i tentativi di ripetizione attivati per resistere ai riavvii dello scheduler. Lo scheduler potrebbe riavviarsi durante le operazioni standard di Managed Airflow, al di fuori dei periodi di manutenzione.
Managed Airflow informa i worker di Airflow che sta per essere eseguita un'operazione di manutenzione. Un worker di Airflow completa le attività già avviate e non ne seleziona di nuove. Queste nuove attività vengono eseguite dai worker di Airflow che non sono sottoposti a operazioni di manutenzione.
Se utilizzi un ambiente altamente resiliente, è probabile che i componenti Airflow del tuo ambiente vengano riavviati in momenti diversi durante un'operazione di manutenzione (a seconda del tipo di operazione di manutenzione). In generale, l'utilizzo di un ambiente altamente resiliente riduce i tempi di inattività del tuo ambiente durante le operazioni di manutenzione.
Le operazioni di manutenzione hanno i seguenti effetti sul tuo ambiente:
La UI di Airflow potrebbe non essere temporaneamente disponibile.
La modifica di alcuni parametri dell'ambiente o l'upgrade a una versione successiva potrebbe non essere possibile temporaneamente.
Le query SQL dirette al database Airflow potrebbero richiedere più tempo del solito e potrebbero richiedere tentativi di ripetizione.
Alcune attività di Airflow che richiedono più di 55 minuti per l'esecuzione possono essere interrotte. Al termine dell'operazione di manutenzione, Airflow pianifica i tentativi di ripetizione per queste attività (se non configurato diversamente).
Periodi di manutenzione predefiniti
I periodi di manutenzione predefiniti in Managed Airflow (Gen 2) vanno dalle 00:00:00 alle 04:00:00 (GMT) di venerdì, sabato e domenica di ogni settimana.
Manutenzione al di fuori dei periodi di manutenzione
Managed Airflow potrebbe eseguire la manutenzione al di fuori dei periodi di manutenzione configurati nei seguenti casi:
In situazioni di emergenza, ad esempio quando si corregge una vulnerabilità di sicurezza critica, alcune operazioni di manutenzione potrebbero essere eseguite al di fuori dei normali periodi di manutenzione.
Se Managed Airflow non è riuscito a eseguire le normali operazioni di manutenzione durante i periodi di manutenzione per 30 giorni, esegue le operazioni di manutenzione critiche al di fuori dei periodi di manutenzione specificati. Si tratta di un meccanismo di fallback per i casi in cui i periodi di manutenzione non sono configurati correttamente e Managed Airflow non riesce ripetutamente a eseguire la manutenzione di un ambiente.
Come utilizzare i periodi di manutenzione
Le operazioni di manutenzione potrebbero influire sull'esecuzione dei DAG e delle attività di Airflow, pertanto ti consigliamo di procedere nel seguente modo:
Definisci i periodi di manutenzione per gli ambienti Managed Airflow.
Pianifica le esecuzioni dei DAG al di fuori dei periodi di manutenzione specificati utilizzando
start_dateescheduleparametri nei DAG.
Specificare i periodi di manutenzione per i nuovi ambienti
Puoi specificare i periodi di manutenzione quando crei un ambiente. Per maggiori informazioni, consulta Creare ambienti.
Specificare i periodi di manutenzione per gli ambienti esistenti
Console
Per definire o modificare i periodi di manutenzione per un ambiente esistente, aggiorna l'ambiente:
Nella Google Cloud console, vai alla pagina Ambienti.
Seleziona l'ambiente.
Vai alla scheda Configurazione ambiente.
Accanto alla voce Periodi di manutenzione, fai clic su Modifica.
Nella finestra di dialogo Periodi di manutenzione, seleziona la casella di controllo Imposta un orario personalizzato per i periodi di manutenzione.
Imposta Ora di inizio, Fuso orario, Giorni e Durata in modo che il tempo combinato per la pianificazione specificata sia di almeno 12 ore in una finestra temporale continua di 7 giorni. Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce la quantità di tempo richiesta.
Fai clic su Salva e attendi l'aggiornamento dell'ambiente.
gcloud
Quando aggiorni un ambiente, i seguenti argomenti definiscono i parametri dei periodi di manutenzione:
--maintenance-window-startimposta l'ora di inizio di un periodo di manutenzione.--maintenance-window-endimposta l'ora di fine di un periodo di manutenzione.--maintenance-window-recurrenceimposta la ricorrenza del periodo di manutenzione.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una regola RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Managed Airflow supporta due formati:Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera.Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data 1° gennaio 2023 viene ignorata.
gcloud composer environments update example-environment \
--location us-central1 \
--maintenance-window-start '2023-01-01T01:00:00Z' \
--maintenance-window-end '2023-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
Crea una richiesta API
environments.patch.In questa richiesta:
Nel parametro
updateMask, specifica la mascheraconfig.maintenanceWindow.Nel corpo della richiesta, specifica i parametri per i periodi di manutenzione.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Sostituisci:
DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una regola RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Managed Airflow supporta due formati:- Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera. - Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
- Il formato
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data 1° gennaio 2023 viene ignorata.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.maintenanceWindow
{
"config": {
"maintenanceWindow": {
"startTime": "2023-01-01T01:00:00Z",
"endTime": "2023-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Terraform
Il blocco maintenance_window specifica i periodi di manutenzione per il tuo ambiente:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
maintenance_window {
start_time = "DATETIME_START"
end_time = "DATETIME_END"
recurrence = "MAINTENANCE_RECURRENCE"
}
}
}
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una regola RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Managed Airflow supporta due formati:- Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera. - Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
- Il formato
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data 1° gennaio 2023 viene ignorata.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2023-01-01T01:00:00Z"
end_time = "2023-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}