Salta al contenuto

Come posso risolvere l'errore ThrottlingException in Timestream per LiveAnalytics?

4 minuti di lettura
0

Desidero risolvere l'errore ThrottlingException che si verifica quando scrivo grandi quantità di dati nelle tabelle di Amazon Timestream per LiveAnalytics.

Breve descrizione

Ricevi l'errore "ThrottlingException" quando le seguenti richieste superano la quota entro un determinato intervallo di tempo:

  • Query
  • Archivio dei parametri, una funzionalità di AWS Systems Manager, chiamate API
  • Scritture attive dell'archivio magnetico

Risoluzione

Troppe query

Quando superi la quota di query, ricevi il seguente messaggio di errore:

"An error occurred (ThrottlingException) when calling the QueryOperation (reached max retries: 4): Request rate limit exceeded".

Nota: la quota di richieste è dinamica e dipende dall'utilizzo complessivo delle risorse a livello di servizio.

Se le query scansionano più dati del necessario e causano più chiamate paginate, utilizza i nomi delle misure o le chiavi di partizionamento definite dal cliente per filtrare i dati non necessari. Ad esempio, se le query analizzano i dati dell'intera tabella, aggiungi i predicati temporali in modo che il motore di query rimuova le scansioni dei dati non necessarie. È consigliabile configurare le raccolte di chiavi a utilizzate di frequente come chiavi di partizione della tabella in modo che Timestream per LiveAnalytics possa gestire in modo efficiente il partizionamento interno.

Per ottimizzare il modello di dati sottostante, consulta Modellazione dei dati. Per migliorare le prestazioni e ridurre la latenza, consulta Query.

Troppe richieste API ad Archivio dei parametri

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Quando superi la quota di richiesta API ad Archivio dei parametri per ogni account AWS e regione AWS, ricevi uno dei seguenti messaggi di errore:

  • "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."

Per ridurre la frequenza delle chiamate API ad Archivio dei parametri, intraprendi le seguenti azioni:

  • Pianifica le chiamate API a intervalli scaglionati.
  • Utilizza API in grado di restituire più valori in una singola chiamata. Ad esempio, GetParameters e GetParametersByPath possono recuperare fino a 10 parametri in una chiamata API.
  • Implementa backoff esponenziale e ripetizione in caso di errore per le chiamate API. Per evitare chiamate API concorrenti, incorpora il jitter nella logica di ripetizione. Per distribuire in modo più uniforme i picchi di richiesta a una frequenza costante e ridurre gli errori di limitazione, aggiungi intervalli casuali al backoff.

Puoi modificare il codice per includere una pausa di 1 secondo tra le chiamate. AWS CLI include impostazioni di ripetizione che puoi modificare. Ad esempio, puoi regolare l'impostazione su 50 millisecondi prima del primo tentativo, 100 millisecondi prima del secondo e 200 millisecondi prima del terzo.

Se utilizzi AWS Lambda per effettuare chiamate API ad Archivio dei parametri, implementa il caching dei parametri.

Per implementare l'elaborazione in blocco, suddividi i set di dati storici di grandi dimensioni in blocchi più piccoli e gestibili. Elabora i dati in blocchi in base alle quote di richieste di scrittura.

Troppe richieste di scrittura attive per l'archivio magnetico

Quando superi la quota di 250 richieste di scrittura attive per l'archivio magnetico, ricevi il seguente messaggio di errore:

"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."

Nota: quando una partizione riceve dati, può rimanere in uno stato attivo fino a 6 ore dopo il processo di importazione.

Non puoi aumentare la quota di 250.

Se la metrica ActiveMagneticStorePartitions supera 250, intraprendi le seguenti azioni:

  • Riduci il numero di diverse serie di dati che l'applicazione scrive contemporaneamente.
  • Riduci il tempo in cui le partizioni magnetiche attive importano contemporaneamente i dati. Ad esempio, se le partizioni importano 24 ore di dati in un'unica operazione, suddividili in blocchi temporali più piccoli.
  • Utilizza le scritture in blocco per ridurre il potenziale comportamento di limitazione.

Nota: quando è presente una grande quantità di dati, è consigliabile creare processi di caricamento in blocchi.

Se continui a ricevere errori di limitazione relativo al supporto magnetico e la coda DLQ riceve molti record, individua le tabelle in cui si verifica la limitazione. Utilizza l'archivio di memoria per carichi di lavoro con importazione ad alto throughput. Per ulteriori informazioni, consulta Gestione delle limitazioni delle operazioni WriteRecords.