Uso de índices secundarios globales para crear una réplica eventualmente consistente en DynamoDB - Amazon DynamoDB

Uso de índices secundarios globales para crear una réplica eventualmente consistente en DynamoDB

Puede utilizar un índice secundario global para crear una réplica eventualmente consistente La creación de una réplica permite realizar las siguientes tareas:

  • Configure diferentes capacidades de lectura aprovisionada para diferentes lectores. Por ejemplo, supongamos que tenemos dos aplicaciones: una aplicación controla las consultas de alta prioridad y necesita el máximo nivel de rendimiento de lectura, mientras que la otra controla las consultas de baja prioridad que pueden tolerar la limitación controlada de la actividad de lectura.

    Si ambas aplicaciones leen desde la misma tabla, una carga de lectura pesada de la aplicación de baja prioridad podría consumir toda la capacidad de lectura disponible para la tabla. Esto limitaría la actividad de lectura de la aplicación de alta prioridad.

    En su lugar, puede crear una réplica a través de un índice secundario global cuya capacidad de lectura la puede establecer separada de la de la tabla en sí. A continuación, puede hacer que la aplicación de prioridad baja consulte la réplica en lugar de la tabla.

  • Elimine las lecturas de una tabla por completo. Por ejemplo, puede tener una aplicación que capture un alto volumen de actividad de clics de un sitio web y no quiere correr el riesgo de que las lecturas interfieran con ello. Puede aislar esta tabla e impedir las lecturas de otras aplicaciones (consulte Uso de condiciones de las políticas de IAM para control de acceso preciso), mientras que permite que otras aplicaciones lean una réplica creada usando un índice secundario global.

Para crear una réplica, configure un índice secundario global que tenga el mismo esquema de claves que la tabla principal y proyectar en él algunos (o todos) los atributos sin clave. En aplicaciones, puede dirigir parte (o la totalidad) de la actividad de lectura a este índice secundario global, en lugar de a la tabla principal. A continuación, puede ajustar la capacidad de lectura aprovisionada del índice secundario global para manejar esas lecturas sin cambiar la capacidad de lectura aprovisionada de la tabla principal.

Siempre se produce un pequeño retraso de propagación entre el momento en que se escribe en la tabla principal y el momento en que los datos escritos aparecen en el índice. En otras palabras, sus aplicaciones deben tener en cuenta que la réplica del índice secundario global solo es eventualmente consistente con la tabla principal.

Puede crear varias réplicas de índice secundario global para admitir diferentes patrones de lectura. Cuando cree las réplicas, proyecte sólo los atributos que cada patrón de lectura requiere realmente. Como resultado, una aplicación puede consumir menos capacidad de lectura aprovisionada para obtener solo los datos que necesita en lugar de tener que leer el elemento de la tabla principal. Esta optimización puede suponer un importante ahorro en coste a largo plazo.