Bewährte Methoden für die Implementierung hybrider Datenbanksysteme - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewährte Methoden für die Implementierung hybrider Datenbanksysteme

In einigen Fällen kann die Migration von einem oder mehreren relationalen Datenbankmanagementsystemen (RDBMS) zu Amazon DynamoDB nicht von Vorteil sein. In diesen Fällen könnte es besser sein, ein hybrides System zu erstellen.

Wenn Sie nicht alles zu DynamoDB migrieren möchten

Beispielsweise haben einige Organisationen viel in den Code investiert, der zahlreiche Berichte generiert, die für die Buchhaltung und den Betrieb benötigt werden. Die Zeit, die für die Generierung eines Berichts benötigt wird, ist für sie nicht wichtig. Die Flexibilität eines relationalen Systems ist für diese Art von Aufgabe gut geeignet und die erneute Erstellung all dieser Berichte in einem NoSQL-Kontext kann äußerst schwierig sein.

Einige Organisationen besitzen darüber hinaus verschiedene ältere relationale Systeme, die sie über Jahrzehnte erworben oder übernommen haben. Die Migration der Daten aus diesen Systemen ist möglicherweise zu risikobehaftet und kostspielig, um den Aufwand zu rechtfertigen.

Dieselben Organisationen stellen jetzt möglicherweise jedoch fest, dass ihr Betrieb von kundenorientierten Websites mit hohen Zugriffszahlen abhängig ist, für die Reaktionen innerhalb weniger Millisekunden wichtig sind. Relationale Systeme können nicht an diese Anforderung angepasst werden, ohne dass enorme (und häufig nicht vertretbare) Kosten entstehen.

In diesen Situationen kann es von Vorteil sein, ein hybrides System zu erstellen, in dem DynamoDB eine materialisierte Ansicht der Daten erstellt, die in einem oder mehreren relationalen Systemen gespeichert sind und Anfragen mit hohen Zugriffszahlen anhand dieser Ansicht verarbeitet. Diese Art von System kann die Kosten potenziell reduzieren, indem Kosten für Serverhardware, Wartung und RDBMS-Lizenzen beseitigt werden, die zuvor für die Verarbeitung des kundenorientierten Datenverkehrs benötigt wurden.

So kann ein hybrides System implementiert werden

DynamoDB kann DynamoDB Streams nutzen und AWS Lambda sich nahtlos in ein oder mehrere bestehende relationale Datenbanksysteme integrieren:

Diagramm, dass zeigt wie man DynamoDB mit vorhandenen SQL-Systemen integriert.

Ein System, das DynamoDB Streams integriert und mehrere AWS Lambda Vorteile bieten kann:

  • Es kann als ein persistenter Cache materialisierter Ansichten ausgeführt werden.

  • Es kann so eingerichtet werden, dass es nach und nach mit Daten aufgefüllt wird, wenn nach diesen Daten abgefragt wird und wenn Daten im SQL-System geändert werden. Dies bedeutet, dass die gesamte Ansicht nicht vorab ausgefüllt werden muss. Dies bedeutet wiederum, dass die bereitgestellte Durchsatzkapazität eher effizient genutzt wird.

  • Die Verwaltungskosten sind niedrig und es ist hoch verfügbar und zuverlässig.

Um diese Art von Integration implementieren zu können, müssen im Wesentlichen drei Arten von Interoperationen bereitgestellt werden.

Codierung, die für die Integration von DynamoDB mit vorhandenen SQL-Systemen benötigt wird.
  1. Inkrementelles Füllen des DynamoDB-Caches. Wenn ein Element abgefragt wird, suchen Sie es zuerst in DynamoDB. Wenn es dort nicht vorhanden ist, suchen Sie es im SQL-System und laden es in DynamoDB.

  2. Schreiben über einen DynamoDB-Cache. Wenn ein Kunde einen Wert in DynamoDB ändert, wird eine Lambda-Funktion ausgelöst, um die neuen Daten zurück zum SQL-System zu schreiben.

  3. Aktualisieren von DynamoDB aus dem SQL-System. Wenn durch interne Prozesse wie Bestandsverwaltung oder Preisfestlegung Werte im SQL-System geändert werden, wird ein Speicherverfahren ausgelöst, um die Änderung an die materialisierte DynamoDB-Ansicht weiterzugeben.

Diese Vorgänge sind transparent und nicht alle werden für jedes Szenario benötigt.

Eine hybride Lösung kann auch nützlich sein, wenn Sie primär DynamoDB verwenden möchten, aber für einmalige Abfragen oder nicht zeitkritische Vorgänge mit besonderen Sicherheitsanforderungen auch ein kleines relationales System einsetzen möchten.