Saltar al contenido

¿Cómo soluciono el error ThrottlingException en Timestream para LiveAnalytics?

5 minutos de lectura
0

Quiero resolver el error ThrottlingException que se produce cuando escribo grandes cantidades de datos en las tablas de Amazon Timestream para LiveAnalytics.

Descripción breve

Aparece el error «ThrottlingException» cuando las siguientes solicitudes superan la cuota en un período de tiempo específico:

  • Consultas
  • Almacén de parámetros, una capacidad de AWS Systems Manager, llamadas a la API
  • Escrituras activas en almacenes magnéticos

Resolución

Demasiadas solicitudes de consulta

Cuando superas la cuota de frecuencia de solicitudes de consulta, recibes el siguiente mensaje de error: 

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

Nota: La cuota de velocidad de solicitudes es dinámica y depende del uso general de los recursos en el nivel de servicio.

Si tus consultas escanean más datos de los necesarios y provocan varias llamadas paginadas, usa los nombres de medidas o las claves de partición definidas por el cliente para filtrar los datos innecesarios. Por ejemplo, si las consultas escanean todos los datos de la tabla, agrega predicados de tiempo para que el motor de consultas elimine los escaneos de datos innecesarios. Se recomienda configurar las colecciones de claves de acceso que se usan con frecuencia, como claves de partición para la tabla, de modo que Timestream para LiveAnalytics pueda gestionar eficazmente las particiones internas.

Para optimizar el modelo de datos subyacente, consulta Modelado de datos. Para mejorar el rendimiento y reducir la latencia, consulta Consultas.

Demasiadas solicitudes de API del almacén de parámetros

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Cuando superes la cuota de solicitudes de la API del Almacén de parámetros para cada cuenta de AWS y región de AWS, recibirás uno de los siguientes mensajes de error:

  • «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».

Para reducir la frecuencia de las llamadas a la API del Almacén de parámetros, realiza las siguientes acciones:

  • Programa llamadas a la API a intervalos escalonados.
  • Utiliza API que puedan devolver varios valores en una sola llamada. Por ejemplo, GetParameters y GetParametersByPath pueden recuperar hasta 10 parámetros con una llamada a la API.
  • Implementa los reintentos con errores y el retroceso exponencial en tus llamadas a la API. Para evitar llamadas simultáneas a la API, incorpora la fluctuación en la lógica de reintentos. Para distribuir de manera más uniforme los picos de solicitudes a un ritmo constante y reducir los incidentes de limitación, añade intervalos aleatorios al retroceso.

Puedes modificar el código para incluir una pausa de 1 segundo entre llamadas. La AWS CLI incluye la configuración de reintentos que puedes modificar. Por ejemplo, puedes ajustar la configuración a 50 milisegundos antes del primer reintento, 100 milisegundos antes del segundo y 200 milisegundos antes del tercero.

Si usas AWS Lambda para realizar llamadas a la API al Almacén de parámetros, implementa el almacenamiento en caché de los parámetros.

Para implementar el procesamiento por lotes, divide grandes conjuntos de datos históricos en lotes más pequeños y fáciles de administrar. Procesa los datos en fragmentos de acuerdo con las cuotas de solicitud de escritura.

Demasiadas solicitudes de escritura activas del almacén mangético

Cuando superes la cuota de 250 solicitudes de escritura activas del almacén mangético, verás el siguiente mensaje de error: 

«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:**Cuando una partición recibe datos, es posible que permanezca en estado activo hasta 6 horas después del proceso de ingestión.

No puedes aumentar la cuota de 250.

Si la métrica ActiveMagneticStorePartitions supera los 250, realiza las siguientes acciones:

  • Reduce la cantidad de series de datos diferentes que tu aplicación escribe simultáneamente.
  • Reduce el tiempo durante el que las particiones magnéticas activas ingieren datos simultáneamente. Por ejemplo, si las particiones ingieren 24 horas de datos en una operación, divide los datos en intervalos de tiempo más pequeños.
  • Utiliza las escrituras por lotes para reducir el posible comportamiento de limitación.

Nota: Cuando hay una gran cantidad de datos, se recomienda crear trabajos de carga por lotes.

Si sigues recibiendo errores de limitación magnética y la cola de mensajes fallidos (DLQ) recibe muchos registros, ubica las tablas que están experimentando la limitación magnética. Usa el almacén de memoria para cargas de trabajo de ingestión de alto rendimiento. Para obtener más información, consulta Gestión de las limitaciones de WriteRecords.