Definition

Polyglot Persistence – Polyglotte Persistenz

Polyglotte Persistenz ist ein Begriff aus dem Bereich des Enterprise Storage, der die Auswahl verschiedener Datenspeicher/Datenspeichertechnologien zur Unterstützung der verschiedenen Datentypen und ihrer Speicheranforderungen beschreibt. Polyglotte Persistenz ist im Wesentlichen die Idee, dass eine Anwendung mehr als eine Kerndatenbank/Speichertechnologie verwenden kann.

Polyglotte Persistenz legt nahe, dass Datenbankingenieure/Architekten zuerst herausfinden, wie sie Daten verändern wollen und dann die Datenbanktechnologie wählen, die ihren Bedürfnissen am besten entspricht. Dieser Ansatz wird verwendet, um Probleme mit der Speichereffizienz zu lösen, Operationen zu vereinfachen und die Fragmentierung zu beseitigen.

Die polyglotte Persistenz verwendet die gleichen Ideen wie die polyglotte Programmierung, d.h. die Praxis, Anwendungen mit einem Sprachmix zu schreiben, um die Tatsache, dass verschiedene Sprachen zur Lösung verschiedener Probleme geeignet sind, voll auszunutzen.

Ein Polyglott ist definiert als jemand, der in mehreren Sprachen sprechen und schreiben kann. Im Bereich der Datenspeicherung bedeutet der Begriff Persistenz, dass Daten nach Beendigung des Prozesses, mit dem sie erstellt wurden, weiter bestehen. Mit anderen Worten, die Daten werden in einem nichtflüchtigen (non-volatile) Speicher abgelegt.

Ein Unternehmen sollte mehrere Fragen stellen, bevor es sich für die Einführung der mehrsprachigen Persistenz entscheidet. Einige dieser spezifischen Fragen sind unter anderem:

  • Wie wird das Unternehmen für die Arbeit mit dem neuen System geschult?
  • Gibt es einen Experten, der bei der Einführung des Systems helfen kann?
  • Kann dieser Experte die übrigen Mitarbeiter betreuen?
  • Wer kann im Falle eines Problems Unterstützung und Reparaturen anbieten?

Sobald für jede dieser Fragen zufriedenstellende Antworten gefunden wurden, kann eine polyglotte Persistenz implementiert werden, um einem Unternehmen zu helfen, den Schritt weg von relationalen Datenbanken und hin zu einer Mischung an Datenquellen zu vollziehen.

Wie man polyglotte Persistenz einsetzt

Leider kann die polyglotte Persistenz nicht heruntergeladen werden; sie muss auf die spezifische Datenarchitektur eines Unternehmens abgestimmt werden. Sie hat jedoch die Flexibilität, mit SQL, NoSQL oder hybriden Datenbanksystemen genutzt zu werden.

Bei der Entscheidung für den Umstieg auf ein polyglottes Persistenzspeichersystem sollten verschiedene Faktoren berücksichtigt sein. Kommt beispielsweise Big Data zum Einsatz für die Wahl eines Unternehmens oder Produkts, müssen Änderungen am System vorgenommen werden, um diese Praxis zu unterstützen. Die ideale Umgebung ist eine, in der nur eine Persistenztechnologie vorhanden ist; diese ist jedoch nicht für die Lösung von Big-Data-Problemen geeignet. Eine weitere Datenbank wird zusammen mit anderen unterstützenden Technologien eingeführt werden müssen, um die neue Implementierung zu unterstützen. Ob es notwendig ist, die ACID-Compliance gegenüber der BASE-Compliance zu unterstützen - grundlegende Verfügbarkeit, Soft-State und eventuelle Konsistenz - sollte ebenfalls in Betracht gezogen werden.

Der wichtigste Faktor, den es zu verstehen gilt, ist der Datenfluss innerhalb der Organisation. Ein einfacher Weg, dies zu erreichen, ist die Festlegung eines Eigentümers (Owner) für jeden Datenbestand im System. Die Einführung dieses Details auf der Ebene der gesamten Systemarchitektur ermöglicht es den Entwicklern, zu sehen, welcher Eigentümer in der Lage ist, die entsprechenden Daten zu ändern und wie diese Daten im System verteilt werden, wodurch die Arbeit an den einzelnen Daten besser möglich wird.

Sobald der Datenfluss erkannt und definiert ist, muss die Entscheidung getroffen werden, die Daten in einer Tabelle oder einem Dokumentenmodell zu platzieren. Diese Entscheidung hängt sowohl von den Präferenzen des Programmierers als auch von den Besonderheiten des aktuellen Problems ab. Die Entscheidung zwischen einem Tabellen- oder Dokumentenmodell ist jedoch umkehrbar und hat eine lokale, nicht eine globale Auswirkung.

Es gibt verschiedene Lösungen, um die polyglotte Persistenz zu automatisieren, wie z.B. CloudBoost.io. CloudBoost.io bietet eine einfache Anwendungsprogramm-Schnittstelle (API), die zum Speichern und Abfragen der Daten verwendet werden kann. Es nutzt auch künstliche Intelligenz (KI), um die Daten automatisch in den entsprechenden Bereichen der Datenbank zu speichern.

Verwendete Storage-Arten

Polyglotte Persistenz verwendet Datenspeichertypen wie z.B:

Polyglotte Persistenz: Stärken und Schwächen

Zu den Stärken der polyglotten Persistenz gehören:

  • Vereinfacht die Bedienung
  • Eliminiert die Fragmentierung
  • Schafft eine schnellere Reaktionszeit
  • Verbessert die Effizienz
  • Sehr gut skalierbar
  • Erlaubt Datenbankingenieuren/Architekten zu entscheiden, wo die Daten gespeichert werden

Zu den Schwächen der polyglotten Persistenz gehören:

  • Muss von Grund auf auf die spezifische Datenarchitektur eines Unternehmens zugeschnitten werden - es gibt keine „out of the box“-Lösungen.
  • Datenbank-Ingenieure/Architekten müssen wählen, wo die Daten gespeichert werden sollen
  • Datenbankinteraktionen werden komplizierter
  • Neue Datenspeicher bedeuten erhöhte Komplexität und erhöhten Schulungsbedarf
  • Wartung und Reparaturen dauern länger
  • Datenbankintegration erhöht die Betriebs- und Entwicklungskosten

Beispiel für polyglotte Persistenz

Ein E-Commerce-Shop ist ein gutes Beispiel dafür, wo ein Unternehmen polyglotte Persistenz anwenden könnte. Ein Online-Store verwendet viele Arten von Daten allein für den Einkaufswagen - wie z.B. Transaktions-, Sitzungs- und Bestandsdaten, abgeschlossene Bestellungen und Kundenprofile.

In der Vergangenheit haben Unternehmen möglicherweise eine einzige Datenbank-Engine verwendet, um die für eine E-Commerce-Anwendung erforderlichen Daten zu verarbeiten. Dies würde eine umfangreiche Datenkonvertierung erfordern, um die verschiedenen Datentypen für eine einzige, relationale Datenbank zu formatieren.

Polyglotte Persistenz legt nahe, die Warenkorbdaten (und die damit verbundenen E-Commerce-Daten) in Datenbanken zu unterteilen, die für jeden Datentyp am besten geeignet sind.

Diese Definition wurde zuletzt im Januar 2020 aktualisiert

Erfahren Sie mehr über Storage-Hardware