Uso de índices secundarios globales para consultas de agregación materializadas - Amazon DynamoDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de índices secundarios globales para consultas de agregación materializadas

Mantener métricas clave y agregaciones casi en tiempo real sobre datos que cambian rápidamente es algo que las empresas cada vez valoran más, ya que les permite tomar decisiones rápidas. Por ejemplo, una biblioteca de música quiere mostrar las canciones más descargadas casi en tiempo real.

Pensemos en el diseño de la tabla de una biblioteca de música:


      Ejemplo del diseño de tabla de una biblioteca de música.

La tabla de este ejemplo almacena canciones con lasongIDComo clave de partición. Puede habilitar Amazon DynamoDB Streams en esta tabla y asociar una función Lambda a las secuencias para que cada vez que se descargue una canción se agregue una entrada a la tabla con Partition-Key=SongIDySort-Key=DownloadID. A medida que se realizan estas actualizaciones, se desencadena una función Lambda en DynamoDB Streams. La función Lambda puede agregar y agrupar las descargas porsongIDActualice el elemento de nivel superior, Partition-Key=songID, ySort-Key=Month. Tenga en cuenta que, si una ejecución lambda falla justo después de escribir el nuevo valor agregado, esta ejecución podría volver a intentarse y el valor podría agregarse varias veces, lo que dejaría un valor aproximado.

Para leer las actualizaciones casi en tiempo real con una latencia en milisegundos de un solo dígito, utilice el índice secundario global con condiciones de consultaMonth=2018-01, ScanIndexForward=False,Limit=1.

Otra importante optimización que se utiliza aquí es que el índice secundario global es un índice disperso y solo está disponible en los elementos que deben consultarse para recuperar los datos en tiempo real. El índice secundario global puede proporcionar flujos de trabajo adicionales que necesiten información sobre las 10 canciones más populares o cualquier canción descargada ese mes.