Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del
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à.
Riduci le chiamate API con un polling lungo
Per impostazione predefinita, le operazioni Data API restituiscono una risposta immediata. Se l'operazione riguarda un'istruzione in corso, è necessario eseguire il polling ripetutamente finché l'istruzione non raggiunge lo stato terminale. In caso di polling lungo, impostate WaitTimeSeconds un valore compreso tra 1 e 30. L'API ritarderà la restituzione di una risposta sincrona fino al termine o al raggiungimento dell'istruzione, a seconda dell'evento che WaitTimeSeconds si verifica per primo.
Il polling lungo è supportato su DescribeStatement, ExecuteStatement, BatchExecuteStatement e. GetStatementResult GetStatementResultV2
Quando un'operazione prevede WaitTimeSeconds l'invio di una nuova dichiarazione o l'attesa di una esistente:
-
Se l'istruzione viene completata entro il tempo di attesa, la risposta include i dati sullo stato del terminale o sui risultati, a seconda dell'operazione.
-
Se l'istruzione è ancora in esecuzione allo scadere del tempo di attesa, la risposta restituisce lo stato corrente in corso.
-
Se l'istruzione è già stata completata prima della richiesta long poll, l'API ritorna immediatamente con lo stato del terminale.
-
Se
WaitTimeSecondsviene omesso, viene mantenuto il comportamento asincrono predefinito.
Casi di utilizzo comune
Di seguito sono riportati alcuni esempi in cui un polling lungo può essere utile:
-
Invia una breve richiesta e attendi il completamento: usa
ExecuteStatementconWaitTimeSeconds. Quando la query termina o scade il tempo di attesa, la risposta restituisce l'istruzioneStatus,RedshiftPid, eHasResultSet. Per ottenere i metadati completi dell'estratto conto, chiama.DescribeStatementIn casoHasResultSettrueaffermativo, chiamaGetStatementResultper recuperare i risultati. -
Sondaggio lungo per verificare lo stato: utilizzalo
ExecuteStatementper inviare la richiesta, quindi chiamaDescribeStatementcon.WaitTimeSecondsAl termine della query,DescribeStatementrestituisce i metadati completi dell'istruzione, inclusi stato, durata e dettagli sull'errore. -
Sondaggio lungo per il risultato: utilizzalo
ExecuteStatementper inviare la query, quindi chiama con.GetStatementResultWaitTimeSecondsAl termine della query, i dati dei risultati vengono restituiti direttamente. Se la query è ancora in esecuzione allo scadere del tempo di attesa,ResourceNotFoundExceptionviene restituito un messaggio che indica che non sono ancora disponibili risultati. -
Invia più domande e attendi il completamento dell'intero batch: usa
BatchExecuteStatementcon.WaitTimeSecondsLa chiamata rimane aperta fino al completamento di tutte le sottodichiarazioni e restituisce l'ID principale del batch e lo stato generale. -
Invia più domande e invia un lungo sondaggio per una sottodichiarazione: utilizza
DescribeStatementoGetStatementResultcon l'ID della sottodichiarazione e.WaitTimeSecondsViene restituito non appena la sottodichiarazione termina, senza attendere il resto del batch.