Bonnes pratiques d'implémentation d'un système de base de données hybride - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques d'implémentation d'un système de base de données hybride

Dans certaines circonstances, la migration d'un ou plusieurs systèmes de gestion de base de données relationnelle (SGBDR) vers Amazon DynamoDB n'est pas avantageuse. Dans ce cas, il peut être préférable de créer un système hybride.

Si vous ne voulez pas tout migrer vers DynamoDB

Par exemple, certaines organisations investissent beaucoup dans le développement de code permettant de produire de nombreux rapports nécessaires à la comptabilité et aux opérations. Le temps nécessaire à la génération d'un rapport n'est pas un critère important pour elles. La flexibilité d'un système relationnel est bien adaptée à ce genre de tâche, et recréer ces rapports dans un contexte NoSQL peut s'avérer d'une difficulté prohibitive.

Certaines organisations gèrent également une variété de systèmes relationnels existants qu'elles ont acquis ou dont elles ont hérité au fil des ans. La migration des données depuis ces systèmes peut s'avérer trop risquée et trop onéreuse pour que l'effort soit justifié.

Toutefois, ces mêmes organisations peuvent désormais considérer que leurs opérations dépendent de sites Web à trafic élevé destinés au client, où des temps de réponse de l'ordre de la milliseconde sont essentiels. Les systèmes relationnels ne peuvent évoluer de manière à respecter cette exigence, à moins de dépenser des sommes considérables (et souvent inacceptables).

Dans ces situations, il est possible d'envisager la création d'un système hybride, dans lequel DynamoDB crée une vue matérialisée des données stockées dans un ou plusieurs systèmes relationnels, et gère des demandes à trafic élevé par rapport à cette vue. Ce type de système peut potentiellement réduire les coûts, en éliminant les serveurs, la maintenance et les licences SGBDR précédemment nécessaires à la gestion du trafic destiné au client.

Implémentation d'un système hybride

DynamoDB peut tirer parti de DynamoDB Streams AWS Lambda et s'intégrer parfaitement à un ou plusieurs systèmes de bases de données relationnelles existants :


        Diagramme montrant comment intégrer DynamoDB avec des systèmes SQL existants.

Un système qui intègre DynamoDB Streams et AWS Lambda peut offrir plusieurs avantages :

  • Il peut fonctionner en tant que cache persistant des vues matérialisées.

  • Il peut être configuré pour accueillir progressivement des données à mesure que celles-ci sont interrogées et modifiées dans le système SQL. Cela signifie que la vue entière n'a pas besoin d'être préremplie. Cela signifie que la capacité de débit provisionnée est plus susceptible d'être utilisée efficacement.

  • Il est extrêmement disponible et fiable, et ses coûts d'administration sont faibles.

Pour implémenter ce type d'intégration, trois sortes d'interopérabilité doivent essentiellement être fournies.


        Codage nécessaire à l'intégration de DynamoDB avec des systèmes SQL existants.
  1. Remplissage le cache DynamoDB de manière incrémentielle. Lorsqu'un élément est interrogé, recherchez-le d'abord dans DynamoDB. S'il n'y figure pas, recherchez-le dans le système SQL, puis chargez-le dans DynamoDB.

  2. Écrivez par l'intermédiaire d'un cache DynamoDB. Lorsqu'un client modifie une valeur dans DynamoDB, une fonction Lambda est déclenchée pour répercuter les nouvelles données dans le système SQL.

  3. Mettez à jour DynamoDB à partir du système SQL. Lorsque des processus internes tels que la gestion d'inventaire ou la tarification modifient une valeur dans le système SQL, une procédure stockée est déclenchée pour propager la modification à la vue DynamoDB matérialisée .

Ces opérations sont simples, et ne sont pas toutes nécessaires pour chaque scénario.

Une solution hybride peut également être utile lorsque vous souhaitez vous reposer principalement sur DynamoDB, mais aussi conserver un petit système relationnel pour les requêtes exceptionnelles, ou pour les opérations nécessitant un niveau de sécurité particulier ou ne présentant pas de caractère urgent.