es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener el conteo total para un período de tiempo dado en DynamoDB?

Antecedentes: Tenemos una API que diferentes usuarios de API están llamando desde diferentes empresas. Estamos registrando cada solicitud en DataDog. Desde DD, estoy obteniendo esos registros cada minuto, obteniendo los datos requeridos, es decir, apiUserKey, nombre de la empresa, fecha de acceso, versión de la API, etc. Estoy registrando cada una de estas solicitudes en una tabla DynamoDB llamada EpgApiStatistics como se muestra en la imagen.

Puedo paginar a través de la lista, pero también necesito mantener el recuento total para cada usuario de API y también el recuento total para cada canal (empresa). Para este propósito, he creado dos tablas separadas donde tengo la apiUserkey como clave de partición y el channelId como clave de partición y luego incremento el recuento total.

Mi pregunta es cómo puedo calcular el recuento total para un período de tiempo o rango de tiempo determinado. Digamos que queremos ver el total de llamadas de API realizadas por un usuario del 10 al 17 de noviembre o del mes, etc.

He leído sobre el GSI (índice secundario global), pero estoy confundido acerca de cómo puedo usarlos en mi configuración actual. Gracias por su tiempo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar el Índice Secundario Global (GSI) para calcular el recuento total para un período de tiempo o rango de tiempo dado. GSI te permite crear un índice en cualquier atributo de la tabla, que se puede utilizar para consultar la tabla.

    En tu caso, puedes crear un GSI en el atributo “dateAccessed” de la tabla “EpgApiStatistics”. Esto te permitirá consultar la tabla para un período de tiempo o rango de tiempo dado. Luego puedes utilizar los atributos “apiUserKey” y “companyName” para calcular el recuento total para cada usuario de API y empresa respectivamente.

    Por ejemplo, puedes utilizar la siguiente consulta para obtener el recuento total para un período de tiempo dado:

    SELECT COUNT(*)
    FROM EpgApiStatistics
    WHERE dateAccessed BETWEEN <fecha_inicio> AND <fecha_fin>
    

    Luego puedes utilizar los atributos “apiUserKey” y “companyName” para calcular el recuento total para cada usuario de API y empresa respectivamente.

    Por ejemplo, puedes utilizar la siguiente consulta para obtener el recuento total para un usuario de API determinado:

    SELECT COUNT(*)
    FROM EpgApiStatistics 
    WHERE dateAccessed BETWEEN <fecha_inicio> AND <fecha_fin>
    AND apiUserKey = <clave_usuario_api>
    

    Del mismo modo, puedes utilizar la siguiente consulta para obtener el recuento total para una empresa determinada:

    SELECT COUNT(*)
    FROM EpgApiStatistics
    WHERE dateAccessed BETWEEN <fecha_inicio> AND <fecha_fin>
    AND companyName = <nombre_empresa>

Comments are closed.