Implementazione automatica WLM - Amazon Redshift

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à.

Implementazione automatica WLM

Con la gestione automatica del carico di lavoro (WLM), Amazon Redshift gestisce la concorrenza delle query e l'allocazione della memoria. Vengono create fino a otto code con identificatori della classe di servizio da 100 a 107. Ogni coda ha una priorità. Per ulteriori informazioni, consulta Priorità delle query.

Automatic WLM determina la quantità di risorse necessarie per le query e regola la concorrenza in base al carico di lavoro. Quando nel sistema sono presenti query che richiedono quantità elevate di risorse (ad esempio, hash join tra tabelle di grandi dimensioni), il livello di simultaneità è inferiore. Se vengono inviate query più piccole (come inserimenti, eliminazioni, scansioni o semplici aggregazioni), il livello di simultaneità è maggiore.

Automatic WLM è separato dalla short query acceleration (SQA) e valuta le query in modo diverso. Automatico WLM e SQA interagisce per consentire il completamento di query di breve durata e leggere anche quando sono attive query di lunga durata e che richiedono molte risorse. Per ulteriori informazioni suSQA, vedere. Utilizzo dall'accelerazione di query brevi

Amazon Redshift abilita l'automazione WLM tramite gruppi di parametri:

  • Se i tuoi cluster utilizzano il gruppo di parametri predefinito, Amazon Redshift abilita la WLM modalità automatica per essi.

  • Se i tuoi cluster utilizzano gruppi di parametri personalizzati, puoi configurare i cluster in modo che abilitino l'impostazione automatica. WLM Ti consigliamo di creare un gruppo di parametri separato per la configurazione automaticaWLM.

Per configurareWLM, modifica il wlm_json_configuration parametro in un gruppo di parametri che può essere associato a uno o più cluster. Per ulteriori informazioni, consulta Modifica della configurazione WLM.

È possibile definire le code di interrogazione all'interno della WLM configurazione. È possibile aggiungere code di interrogazione aggiuntive alla WLM configurazione predefinita, fino a un totale di otto code utente. Per ogni coda di query puoi configurare le seguenti opzioni:

  • Priority (Priorità)

  • Modalità dimensionamento simultaneo

  • Gruppi di utenti

  • Gruppi di query

  • Regole di monitoraggio delle query

Priority (Priorità)

Puoi definire l'importanza relativa delle query in un carico di lavoro impostando un valore di priorità. La priorità viene specificata per una coda e la ereditano tutte le query associate alla coda. Per ulteriori informazioni, consultare Priorità delle query.

Modalità dimensionamento simultaneo

Quando il dimensionamento simultaneo è abilitato, Amazon Redshift aggiunge automaticamente ulteriore capacità del cluster quando necessario per elaborare un aumento delle query di lettura r scrittura simultanee. Gli utenti visualizzano sempre i dati più recenti, indipendentemente dal fatto che le query vengano eseguite nel cluster principale o in un cluster di dimensionamento simultaneo.

È possibile gestire le query da inviare al cluster di scalabilità simultanea configurando le code. WLM Quando abiliti il dimensionamento simultaneo per una coda, le query idonee vengono inviate al cluster di dimensionamento simultaneo anziché attendere in coda. Per ulteriori informazioni, consulta Utilizzo del dimensionamento della simultaneità.

Gruppi di utenti

Puoi assegnare un set di gruppi di utenti a una coda specificando il nome di ogni gruppo di utenti o utilizzando i caratteri jolly. Quando un membro di un gruppo utenti elencato esegue una query, quella query viene eseguita nella coda corrispondente. Non esiste un limite impostato per il numero di gruppi di utenti che possono essere assegnati a una coda. Per ulteriori informazioni, consultare Assegnazione delle query alle code in base ai gruppi di utenti.

Gruppi di query

Puoi assegnare un set di gruppi di query a una coda specificando il nome di ogni gruppo di query o utilizzando i caratteri jolly. Un gruppo di query è semplicemente un'etichetta. In fase di runtime, puoi assegnare l'etichetta del gruppo di query a una serie di query. Qualsiasi query che viene assegnata a un gruppo di query elencato verrà eseguita nella coda corrispondente. Non esiste un limite definito per il numero di gruppi di query che possono essere assegnati a una coda. Per ulteriori informazioni, consulta Assegnazione di una query a un gruppo di utenti.

Caratteri jolly

Se i caratteri jolly sono abilitati nella configurazione della WLM coda, è possibile assegnare gruppi di utenti e gruppi di query a una coda singolarmente o utilizzando caratteri jolly in stile Unix shell. La corrispondenza del modello fa distinzione tra maiuscole e minuscole.

Ad esempio, il carattere jolly “*” corrisponde a qualsiasi numero di caratteri. Pertanto, se aggiungi dba_* all'elenco dei gruppi di utenti di una coda, qualsiasi query eseguita dagli utenti che appartiene a un gruppo con un nome che inizia con dba_ verrà assegnata a quella coda. Alcuni esempi sono dba_admin o DBA_primary. Il carattere jolly “?” corrisponde a qualsiasi carattere singolo. Pertanto, se la coda include il gruppo di utenti dba?1, i gruppi di utenti denominati dba11 e dba21 corrisponderanno, ma non quelli chiamati dba12.

Per impostazione predefinita, i caratteri jolly non sono abilitati.

Regole di monitoraggio delle query

Le regole di monitoraggio delle query definiscono i limiti di prestazioni basati sulle metriche per le WLM code e specificano l'azione da intraprendere quando una query supera tali limiti. Ad esempio, per una coda dedicata alle query di breve durata, puoi creare una regola che annulla le query eseguite per più di 60 secondi. Per tracciare le query mal progettate, potresti avere un'altra regola che registra le query che contengono cicli annidati. Per ulteriori informazioni, consulta WLMregole di monitoraggio delle interrogazioni.

Controllo automatico WLM

Per verificare se la modalità automatica WLM è abilitata, esegui la seguente query. Se la query restituisce almeno una riga, l'opzione automatica WLM è abilitata.

select * from stv_wlm_service_class_config where service_class >= 100;

La seguente query mostra il numero di query che hanno sostato in ciascuna coda di query (classe di servizio). Mostra anche il tempo medio di esecuzione, il numero di query con tempo di attesa al 90° percentile e il tempo medio di attesa. WLMLe interrogazioni automatiche utilizzano le classi di servizio da 100 a 107.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Per scoprire quali interrogazioni sono state eseguite automaticamente e completate correttamenteWLM, esegui la seguente query.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class >= 100 and a.final_state = 'Completed' order by b.query desc limit 5;