Wie behebe ich den ThrottlingException-Fehler in Timestream für LiveAnalytics?
Ich möchte den ThrottlingException-Fehler beheben, der auftritt, wenn ich große Datenmengen in Tabellen von Amazon Timestream für LiveAnalytics schreibe.
Kurzbeschreibung
Du erhältst den Fehler „ThrottlingException“, wenn die folgenden Anforderungen das Kontingent innerhalb eines bestimmten Zeitrahmens überschreiten:
- Abfragen
- API-Aufrufe and Parameter Store, eine Funktion von AWS Systems Manager
- Aktive Magnetspeicher-Schreibvorgänge
Lösung
Zu viele Abfrageanforderungen
Wenn du das Kontingent für die Abfrageanforderungen überschreitest, wird die folgende Fehlermeldung angezeigt:
„An error occurred (ThrottlingException) when calling the QueryOperation (reached max retries: 4): Request rate limit exceeded“.
Hinweis: Das Anforderungsratenkontingent ist dynamisch und hängt von der Gesamtressourcennutzung auf Service-Ebene ab.
Wenn deine Abfragen mehr Daten als nötig scannen und mehrere paginierte Aufrufe verursachen, verwende Messwertnamen oder benutzerdefinierte Partitionierungsschlüssel, um unnötige Daten herauszufiltern. Wenn Abfragen beispielsweise ganze Tabellendaten scannen, füge Zeitprädikate hinzu, damit die Abfrage-Engine unnötige Daten-Scans entfernt. Es hat sich bewährt, Schlüsselsammlungen, auf die häufig zugegriffen wird, als Partitionsschlüssel für die Tabelle zu konfigurieren, damit Timestream für LiveAnalytics die interne Partitionierung effizient verwalten kann.
Informationen zur Optimierung des zugrunde liegenden Datenmodells findest du unter Datenmodellierung. Informationen zur Verbesserung der Leistung und zur Verringerung der Latenz findest du unter Abfragen.
Zu viele Parameter-Store-API-Anforderungen
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Wenn du das Parameter-Store API-Anforderungskontingent für jedes AWS-Konto und jede AWS-Region überschreitest, erhältst du eine der folgenden Fehlermeldungen:
- „An error occurred (ThrottlingException) when calling the GetParameters operation (reached max retries: 4): Rate exceeded.“
- „An error occurred (ThrottlingException) when calling the GetParametersByPath operation (reached max retries: 4): Rate exceeded.“
- „An error occurred (ThrottlingException) when calling the DescribeParameters operation (reached max retries: 2): Rate exceeded.“
Gehe wie folgt vor, um die Häufigkeit von Parameter-Store-API-Aufrufen zu reduzieren:
- Plane API-Aufrufe in zeitlich gestaffelten Intervallen.
- Verwende APIs, die mehrere Werte in einem einzigen Aufruf zurückgeben können. Beispielsweise können GetParameters und GetParametersByPath bis zu 10 Parameter in einem API-Aufruf abrufen.
- Implementiere Wiederholungsversuche und exponentielle Backoffs in deinen API-Aufrufen. Um gleichzeitige API-Aufrufe zu verhindern, integriere Jitter in die Wiederholungslogik. Um Anforderungsspitzen mit einer konstanten Rate gleichmäßiger zu verteilen und Drosselungsvorfälle zu reduzieren, füge dem Backoff zufällige Intervalle hinzu.
Du kannst deinen Code so ändern, dass er zwischen den Aufrufen eine Pause von 1 Sekunde einbezieht. Die AWS CLI enthält Wiederholungseinstellungen, die du ändern kannst. Beispielsweise kannst du die Einstellung auf 50 Millisekunden vor dem ersten Wiederholungsversuch, 100 Millisekunden vor dem zweiten und 200 Millisekunden vor dem dritten anpassen.
Wenn du AWS Lambda verwendest, um API-Aufrufe an Parameter Store zu tätigen, implementiere das Parameter-Caching.
Um die Batch-Verarbeitung zu implementieren, teile große historische Datensätze in kleinere, überschaubare Batches auf. Verarbeite Daten in Blöcken gemäß den Kontingenten für Schreibanforderungen.
Zu viele aktive Magnetspeicher-Schreibanforderungen
Wenn du das Kontingent von 250 aktiven Magnetspeicher-Schreibanforderungen überschreitest, erhältst du die folgende Fehlermeldung:
„An error occurred (ThrottlingException) when calling the WriteRecords operation (reached max retries: 5): Your magnetic store writes to Timestream for LiveAnalytics are throttled for this database.“
Hinweis: Wenn eine Partition Daten empfängt, kann die Partition nach dem Aufnahmevorgang bis zu 6 Stunden lang in einem aktiven Zustand bleiben.
Du kannst das Kontingent von 250 nicht erhöhen.
Wenn die ActiveMagneticStorePartitions-Metrik 250 überschreitet, ergreife die folgenden Maßnahmen:
- Reduziere die Anzahl der verschiedenen Datenreihen, die deine Anwendung gleichzeitig schreibt.
- Reduziere die Zeitdauer, in der die aktiven magnetischen Partitionen gleichzeitig Daten aufnehmen. Wenn die Partitionen beispielsweise 24 Stunden an Daten in einem Vorgang aufnehmen, teile die Daten in kleinere Zeitblöcke auf.
- Verwende Batch-Schreibvorgänge, um das potenzielle Drosselungsverhalten zu reduzieren.
Hinweis: Bei einer großen Datenmenge empfiehlt es sich, Stapel-Ladeaufträge zu erstellen.
Wenn du immer noch Fehler bei der magnetischen Drosselung erhältst und die Warteschlange für unzustellbare Nachrichten (DLQ) viele Datensätze empfängt, suche nach den Tabellen, in denen die magnetische Drosselung auftritt. Verwende den Speicher für Erfassungs-Workloads mit hohem Durchsatz. Weitere Informationen findest du unter Umgang mit WriteRecords-Drosselungen.
- Themen
- Database
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten