Una tabla de DynamoDB llamada Orders utiliza OrderID como clave de partición (sin clave de clasificación) y contiene más de 100.000 elementos. Necesita recuperar eficientemente todos los pedidos cuyo atributo OrderSource sea igual a 'MobileApp'. ¿Cuál es el diseño más eficiente para mejorar la experiencia del usuario?
Elige una respuesta
Toca una opción para verificar tu respuesta.
Respuesta correcta: Crear un índice secundario global (GSI) con OrderSource como clave de partición, luego realizar una Query en el GSI utilizando MobileApp como clave..
Por qué esta es la respuesta
La opción correcta es crear un GSI con OrderSource como clave de partición y luego realizar una Query en el GSI. Un GSI permite consultar atributos que no forman parte de la clave principal de la tabla base. Al usar OrderSource como clave de partición en el GSI, se agrupan todos los pedidos con el mismo OrderSource, permitiendo una recuperación eficiente con una operación de Query. Realizar un Scan en la tabla base es ineficiente porque lee todos los elementos de la tabla y luego filtra, consumiendo muchas unidades de capacidad de lectura (RCUs) y siendo lento para tablas grandes. Un LSI no es adecuado aquí porque requiere que la clave de partición sea la misma que la de la tabla base (OrderID), y necesitamos consultar por OrderSource. Crear un GSI con OrderSource como clave de clasificación no es lo ideal para este caso de uso, ya que la consulta busca un valor exacto para OrderSource, lo que se logra mejor con OrderSource como clave de partición para agrupar los elementos.
Aprueba tu examen — sin la interminable búsqueda de respuestas
Obtén todas las preguntas y explicaciones verificadas para este examen en un solo lugar, y ahorra horas de preparación. Más de 1,000 certificaciones · Más de 20 idiomas · Empieza gratis.
Aprueba tu examen más rápido → No se requiere tarjeta