Perché la mia query di Amazon Redshift continua a superare il timeout WLM che ho impostato?
Ho impostato un timeout di gestione del carico di lavoro (WLM) per una query Amazon Redshift, ma la query continua a essere eseguita dopo la scadenza di questo periodo
Breve descrizione
Il timeout WLM si applica alle query solo durante la fase di esecuzione delle stesse. Se WLM non termina una query quando previsto, in genere è perché la query ha impiegato del tempo in fasi diverse da quella di esecuzione. Ad esempio, la query potrebbe attendere di essere analizzata o riscritta, attendere un blocco o attendere un posto nella coda WLM. Oppure, la query potrebbe raggiungere la fase di ritorno o passare a un'altra coda.
Risoluzione
Quando si esegue una query su STV_RECENTS, starttime si riferisce all'ora in cui la query è entrata nel cluster, non all'ora in cui la query inizia a essere eseguita. Quando la query è nello stato In esecuzione in STV_RECENTS, è attiva nel sistema. Tuttavia, la query non utilizza le risorse del nodo di calcolo finché non entra nello stato STV_INFLIGHT. Per ulteriori informazioni sulla pianificazione delle query, consulta la sezione Query planning and execution workflow.
Per visualizzare lo stato di una query in esecuzione, interroga STV_INFLIGHT anziché STV_RECENTS:
select \* from STV\_INFLIGHT where query = your\_query\_id;
Per ulteriori informazioni sulle fasi di interrogazione, esegui la seguente query:
select \* from SVL\_QUERY\_REPORT where query = your\_query\_id ORDER BY segment, step, slice;
Utilizza la tabella STV_EXEC_STATE per lo stato corrente di tutte le query in esecuzione attive sui nodi di calcolo:
select \* from STV\_EXEC\_STATE where query = your\_query\_id ORDER BY segment, step, slice;
Ecco alcuni motivi comuni per cui una query può sembrare in esecuzione più a lungo del periodo di timeout WLM.
La query è in fase di "ritorno"
Esistono due fasi di "ritorno". Controlla STV_EXEC_STATE per vedere se la query è entrata in una di queste fasi di ritorno:
- Il ritorno al nodo principale dai nodi di calcolo
- Il ritorno al client dal nodo principale
È in corso un rollback
Un’operazione DML (Data Manipulation Language) potrebbe riscontrare un errore ed eseguire il rollback. Questa operazione potrebbe non apparire come «interrotta» perché è già in fase di rollback. Puoi interrogare TV\ _EXEC\ _STATE per visualizzare i rollback e trovare maggiori informazioni in STL\ _UNDONE.
La query impiega del tempo in coda prima di essere eseguita
Interroga STV_WLM_QUERY_STATE per vedere il tempo in coda:
select \* from STV\_WLM\_QUERY\_STATE where query = your\_query\_id;
La query è in attesa ad un blocco
Se la query è visibile in STV_RECENTS, ma non in STV_WLM_QUERY_STATE, potrebbe essere in attesa ad un blocco e non essere entrata nella coda. Per ulteriori informazioni, consulta Come posso rilevare e sbloccare i blocchi in Amazon Redshift?
Una query è saltata a un'altra coda
Se una query di lettura raggiunge il limite di timeout per la coda WLM corrente, la query viene inviata alla coda WLM successiva. Oppure, se esiste una regola di monitoraggio delle query che specifica un'azione hop, la query viene inviata alla coda WLM successiva. Per confermare se la query è passata alla coda successiva, completa la seguente query in base allo scenario:
- Se la query è attualmente in esecuzione, interroga STV\ _WLM\ _QUERY\ _STATE.
- Se la query è stata completata, interroga STL\ _WLM\ _QUERY
Per evitare che le query saltino a un'altra coda, configura la coda WLM o le regole di monitoraggio delle query WLM. Per ulteriori informazioni sul salto della coda, consulta WLM query queue hopping.
Un problema di rete o firewall
Se un server Amazon Redshift ha problemi di comunicazione con il tuo client, il server potrebbe rimanere bloccato nello stato di "ritorno al client". Verifica la presenza di conflitti con i componenti di rete, come le impostazioni del firewall in entrata on-premise, le regole del gruppo di sicurezza in uscita o le regole della lista di controllo degli accessi alla rete (ACL) in uscita. Per ulteriori informazioni, consulta Connecting from outside of Amazon EC2 --firewall timeout issue.
Un problema con il cluster
Problemi relativi al cluster stesso, quali i problemi di hardware, potrebbero causare il blocco della query. Quando la query si blocca a causa di problemi del cluster, il cluster è in stato di «errore hardware». Per ripristinare un cluster a nodo singolo, ripristina uno snapshot. Nei cluster multinodali, i nodi in errore vengono automaticamente sostituiti.
Informazioni correlate
- Argomenti
- Analisi
- Lingua
- Italiano

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa