O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog
Reduzir chamadas de API com pesquisa longa
Por padrão, as operações da API de dados retornam uma resposta imediata. Se a operação for com relação a uma instrução em andamento, você deverá pesquisar repetidamente até que a instrução atinja um estado de terminal. Com a pesquisa longa, defina WaitTimeSeconds como um valor entre 1 e 30. A API atrasará o retorno de uma resposta síncrona até que a instrução termine ou WaitTimeSeconds seja atingido, o que ocorrer primeiro.
A pesquisa longa é compatível com DescribeStatement, ExecuteStatement, BatchExecuteStatement, GetStatementResult e GetStatementResultV2.
Quando uma operação usa WaitTimeSeconds para enviar uma nova instrução ou aguardar uma existente:
-
Se a instrução for concluída dentro do tempo de espera, a resposta incluirá o status de terminal ou os dados do resultado, dependendo da operação.
-
Se a instrução ainda estiver em execução quando o tempo de espera expirar, a resposta retornará o status em andamento atual.
-
Se a instrução já estiver concluída antes da solicitação de pesquisa longa ser feita, a API retornará imediatamente com o status de terminal.
-
Se
WaitTimeSecondsfor omitido, o comportamento assíncrono padrão será preservado.
Casos de uso comuns
Veja a seguir exemplos de quando a pesquisa longa pode ser útil:
-
Enviar uma breve consulta e aguardar a conclusão: use
ExecuteStatementcomWaitTimeSeconds. Quando a consulta termina ou o tempo de espera expira, a resposta retorna a instruçãoStatus,RedshiftPideHasResultSet. Para obter os metadados completos da instrução, chameDescribeStatement. SeHasResultSetfortrue, chameGetStatementResultpara buscar os resultados. -
Pesquisa longa de status: use
ExecuteStatementpara enviar a consulta e, em seguida, chameDescribeStatementcomWaitTimeSeconds. Quando a consulta for concluída,DescribeStatementretornará os metadados completos da instrução, incluindo status, duração e detalhes do erro. -
Pesquisa longa de resultado: use
ExecuteStatementpara enviar a consulta e, em seguida, chameGetStatementResultcomWaitTimeSeconds. Quando a consulta é concluída, os dados do resultado são retornados diretamente. Se a consulta ainda estiver em execução quando o tempo de espera expirar, umaResourceNotFoundExceptionserá retornada indicando que ainda não há resultados disponíveis. -
Enviar várias consultas e aguardar a conclusão do lote inteiro: use
BatchExecuteStatementcomWaitTimeSeconds. A chamada permanece aberta até que todas as instruções secundárias sejam concluídas e retorna o ID principal do lote e o status geral. -
Enviar várias consultas e status de pesquisa longa para uma instrução secundária: use
DescribeStatementouGetStatementResultcom o ID da instrução secundária eWaitTimeSeconds. Retorna assim que a instrução secundária termina, sem esperar pelo resto do lote.