

 Amazon Redshift unterstützt die Verwendung von Python-UDFs nach dem 30. Juni 2026 nicht mehr. Wir werden damit beginnen, es schrittweise durchzusetzen. Weitere Informationen zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie im [ Blogbeitrag](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/), der am 30. Juni 2025 veröffentlicht wurde. 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Reduzieren Sie API-Aufrufe durch lange Abfragen
<a name="data-api-calling-considerations-long-polling"></a>

Standardmäßig geben Daten-API-Operationen eine sofortige Antwort zurück. Wenn der Vorgang gegen eine in Bearbeitung befindliche Anweisung erfolgt, müssen Sie wiederholt Abfragen durchführen, bis die Anweisung einen Endzustand erreicht. Stellen `WaitTimeSeconds` Sie bei langen Abfragen einen Wert zwischen 1 und 30 ein. Die API verzögert die Rückgabe einer synchronen Antwort, bis die Anweisung abgeschlossen `WaitTimeSeconds` ist oder erreicht ist, je nachdem, was früher eintritt.

Lange Abfragen werden auf [ DescribeStatement](data-api-calling-cli-describe-statement.md), [ ExecuteStatement ](pass-sql-statements.md#data-api-calling-cli-execute-statement) [ BatchExecuteStatement](pass-sql-statements.md#data-api-calling-cli-batch-execute-statement), [ GetStatementResult ](data-api-calling-cli-get-statement-result.md) und unterstützt. [ GetStatementResultV2 ](data-api-calling-cli-get-statement-result.md)

Wenn ein Vorgang verwendet wird`WaitTimeSeconds`, um eine neue Anweisung einzureichen oder auf eine bestehende zu warten:
+ Wenn die Anweisung ** innerhalb der Wartezeit ** abgeschlossen wird, enthält die Antwort je nach Vorgang den Terminalstatus oder die Ergebnisdaten.
+ Wenn die Anweisung nach Ablauf der Wartezeit ** noch ausgeführt ** wird, gibt die Antwort den aktuellen Status „In Bearbeitung“ zurück.
+ Wenn die Anweisung ** bereits abgeschlossen ist, ** bevor die Long-Poll-Anfrage gestellt wird, kehrt die API sofort mit dem Terminalstatus zurück.
+ Wenn `WaitTimeSeconds` es ** weggelassen wird**, wird das standardmäßige asynchrone Verhalten beibehalten.

## Häufige Anwendungsfälle
<a name="data-api-long-polling-which-api"></a>

Im Folgenden finden Sie Beispiele dafür, wann lange Abfragen sinnvoll sein können:
+ **Senden Sie eine kurze Anfrage und warten Sie, bis sie abgeschlossen ist ** — Verwenden Sie `ExecuteStatement` mit`WaitTimeSeconds`. Wenn die Abfrage abgeschlossen ist oder die Wartezeit abgelaufen ist, gibt die Antwort die Anweisung `Status` und zurück`HasResultSet`. `RedshiftPid` Rufen Sie an, um die vollständigen Metadaten der Anweisung abzurufen`DescribeStatement`. Falls ja `HasResultSet``true`, rufen Sie `GetStatementResult` auf, um Ergebnisse abzurufen.
+ **Lange Statusabfrage ** — Wird verwendet`ExecuteStatement`, um die Anfrage zu senden, und rufen Sie dann `DescribeStatement` mit `WaitTimeSeconds` an. Wenn die Abfrage abgeschlossen ist, werden die vollständigen Metadaten der Anweisung einschließlich Status, Dauer und Fehlerdetails `DescribeStatement` zurückgegeben.
+ **Lange Abfrage zum Ergebnis ** — Wird verwendet`ExecuteStatement`, um die Abfrage zu senden, und rufen Sie dann `GetStatementResult` mit an`WaitTimeSeconds`. Wenn die Abfrage abgeschlossen ist, werden die Ergebnisdaten direkt zurückgegeben. Wenn die Abfrage nach Ablauf der Wartezeit noch läuft, `ResourceNotFoundException` wird a zurückgegeben, was darauf hinweist, dass noch keine Ergebnisse verfügbar sind.
+ **Senden Sie mehrere Abfragen und warten Sie, bis der gesamte Batch abgeschlossen ist ** — Verwenden Sie `BatchExecuteStatement` mit`WaitTimeSeconds`. Der Aufruf bleibt geöffnet, bis alle Unteranweisungen abgeschlossen sind, und gibt die übergeordnete Batch-ID und den Gesamtstatus zurück.
+ **Senden Sie mehrere Abfragen und einen langen Abfragestatus für eine Unteranweisung ** — Verwenden Sie `DescribeStatement` oder `GetStatementResult` mit der Unteranweisungs-ID und. `WaitTimeSeconds` Kehrt zurück, sobald die Unteranweisung abgeschlossen ist, ohne auf den Rest des Batches zu warten.