Utilisation d'index secondaires globaux pour créer un réplica éventuellement cohérent - Amazon DynamoDB

Utilisation d'index secondaires globaux pour créer un réplica éventuellement cohérent

Vous pouvez utiliser un index secondaire global pour créer un réplica éventuellement cohérent d'une table. La création d'un réplica peut vous permettre d'effectuer les opérations suivantes :

  • Définir une capacité de lecture approvisionnée différente pour différents lecteurs. Supposons par exemple que vous ayez deux applications : une application gère les requêtes hautement prioritaires et a besoin des niveaux de performances de lecture les plus élevés, tandis que l'autre gère les requêtes faiblement prioritaire qui peuvent tolérer une limitation de l'activité de lecture.

    Si ces deux applications lisent à partir de la même table, une lourde charge de lecture de l'application faiblement prioritaire pourrait consommer toute la capacité de lecture disponible pour la table. Cela limiterait l'activité de lecture de l'application hautement prioritaire.

    Au lieu de cela, vous pouvez créer un réplica via un index secondaire global pour lequel vous pouvez définir une capacité de lecture distincte de celle de la table elle-même. Vous pouvez alors demander à votre application faiblement prioritaire d'interroger le réplica au lieu de la table.

  • Éliminez entièrement les lectures d'une table. Par exemple, vous pouvez avoir une application qui capture un volume élevé d'activité de flux de clics d'un site web, et vous ne voulez pas risquer que des lectures interférent avec cela. Vous pouvez isoler cette table et empêcher les lectures par d'autres applications (voirUtilisation de conditions de politique IAM pour un contrôle d'accès précis ), tout en laissant d'autres applications lire un réplica créé à l'aide d'un index secondaire global.

Pour créer un réplica, configurez un index secondaire global ayant le même schéma de clé que la table parent, avec tout ou partie des attributs autres que de clé projetés dans cet index. Dans les applications, vous pouvez diriger une partie ou la totalité de l'activité de lecture vers cet index secondaire global plutôt que vers la table parent. Vous pouvez ensuite ajuster la capacité de lecture approvisionnée de l'index secondaire global pour gérer ces lectures sans modifier la capacité de lecture approvisionnée de la table parent.

Il y a toujours un court délai de propagation entre une écriture dans la table parent et le moment où les données écrites apparaissent dans l'index. En d'autres termes, vos applications doivent tenir compte du fait que le réplica d'index secondaire global n'est qu'éventuellement cohérent avec la table parent.

Vous pouvez créer plusieurs réplicas d'index secondaire global pour prendre en charge différents modèles de lecture. Lorsque vous créez les réplicas, projettez uniquement les attributs dont chaque modèle de lecture a réellement besoin. Une application peut alors consommer moins de capacité de lecture approvisionnée pour obtenir uniquement les données dont elle a besoin au lieu d'avoir à lire l'élément à partir de la table parent. Cette optimisation peut entraîner des économies de coûts considérables au fil du temps.