Por que minha consulta do Amazon Redshift sem servidor foi cancelada ou interrompida?

4 minuto de leitura
0

Quero saber por que o Amazon Redshift sem servidor cancelou ou interrompeu minha consulta e recebo uma mensagem de erro.

Breve descrição

Seguem os motivos pelos quais uma consulta é cancelada ou interrompida no Amazon Redshift:

  • Você atingiu a cota de consultas.
  • Você atingiu a cota de uso do grupo de trabalho para unidades de processamento do Redshift (RPUs).
  • Sua consulta excedeu o valor de statement_timeout.
  • Outro usuário interrompeu ou cancelou a consulta.
  • Há problemas com a conexão de rede.

Resolução

Verifique a cota de consultas do grupo de trabalho do Amazon Redshift sem servidor

Quando você atinge a cota de consulta do grupo de trabalho, a consulta retorna a seguinte mensagem de erro:

“ERROR: Query (6800381) cancelled on user's request.”

Para confirmar que o Amazon Redshift cancelou a consulta porque você atingiu a cota, execute a seguinte instrução SQL no editor de consultas do Amazon Redshift:

SELECT query_id, query_text, error_message from SYS_QUERY_HISTORY WHERE error_message ILIKE '%cancelled on user%';

Para resolver esse problema, aumente a cota de consultas do grupo de trabalho.

Verificar a cota de uso do grupo de trabalho do Amazon Redshift sem servidor para RPUs

Quando você atinge a cota de uso do grupo de trabalho para RPUs, a consulta retorna a seguinte mensagem de erro:

“Error: Query reached usage limit.”

Para confirmar que o Amazon Redshift cancelou a consulta porque você atingiu a cota de uso, execute a seguinte instrução SQL no editor de consultas do Amazon Redshift:

SELECT query_id, query_text, usage_limit, error_message FROM SYS_QUERY_HISTORY WHERE error_message ILIKE '%reached usage limit%';

Para resolver esse problema, aumente a cota de uso do grupo de trabalho.

Verificar se a consulta excedeu o valor de statement_timeout

Quando uma consulta excede o valor de statement_timeout, o Amazon Redshift cancela as consultas que você envia durante a sessão. A consulta retorna a seguinte mensagem de erro:

“ERROR: Query (150) cancelled on user's request.”

Para verificar o tempo limite da instrução do seu cluster, execute a seguinte instrução SQL no editor de consultas do Amazon Redshift:

SHOW statement_timeout;

A instrução mostra o tempo limite da instrução a nível de cluster em milissegundos. Para alterar a saída, modifique os parâmetros na configuração do gerenciamento do workload.

Para confirmar que o Amazon Redshift cancelou a consulta devido ao tempo limite da instrução, execute a seguinte instrução SQL no Editor de consultas do Amazon Redshift:

SELECT * FROM SYS_QUERY_HISTORY WHERE query_text ILIKE '%set%statement_timeout%to%';

Se o Amazon Redshift cancelou sua consulta, execute o seguinte comando para aumentar o valor de statement_timeout:

SET statement_timeout = (value)

Observação: substitua (value) por um valor maior do que o valor anterior de statement_timeout.

Verificar se outro usuário interrompeu ou cancelou a consulta

Para verificar se outro usuário interrompeu ou cancelou uma consulta, execute o comando a seguir e revise a coluna error_message:

SELECT * FROM sys_query_history WHERE session_id = process_id;

Observação: substitua process_id pelo ID do processo.

Para visualizar as consultas interrompidas, execute a seguinte instrução SQL no editor de consultas do Amazon Redshift:

SELECT * FROM sys_query_history WHERE error_message ILIKE '%terminate%';

Para visualizar as consultas canceladas, execute a seguinte instrução SQL no editor de consultas do Amazon Redshift:

SELECT * FROM sys_query_history WHERE error_message ILIKE '%canceled by user%';

Se a consulta aparecer na saída, um usuário interrompeu ou cancelou a consulta.

Observação: os usuários podem interromper somente a própria sessão. O superusuário pode interromper todas as sessões.

Problemas de rede

Problemas de rede também podem cancelar consultas.

Para verificar se há um problema com a conexão de rede, execute o seguinte comando para verificar a visualização de monitoramento de SYS_CONNECTION_LOG:

SELECT * FROM SYS_CONNECTION_LOG WHERE session_id = process_id;

Observação: substitua process_id pelo ID do processo.

Informações relacionadas

Por que minha consulta foi cancelada no Amazon Redshift?

AWS OFICIAL
AWS OFICIALAtualizada há 4 meses