ArangoDB: Erfolg mit einer Mehrwertdatenbank erzielen

Die Behandlung verschiedener Datenbankstrukturen birgt oft erhebliche Komplexität in die Systemarchitektur, insbesondere wenn mehrere Datenbankinstanzen erforderlich sind. Diese Fragmentierung kann die Betriebsabläufe komplizieren, die Kosten erhöhen und die Effizienz verringern. Multimodell-Datenbanken wie ArangoDB bieten eine einheitliche Lösung, um diesen Herausforderungen zu begegnen. Sie vereinfachen die Architektur und optimieren das Datenmanagement, indem sie mehrere Datenmodelle – Schlüssel-Wert, Dokument und Graph – innerhalb einer einzigen Datenbankinstanz unterstützen.

Im Gegensatz zu relationalen Datenbanken NoSQL-Datenbanken halten sich nicht an einen universellen Standard wie SQL. Stattdessen werden sie nach ihrer Speicherstruktur kategorisiert. Zu den beliebten Typen gehören:

  • Schlüssel-Wert: Ähnlich wie eine Java Map oder ein Python-Wörterbuch ruft diese Struktur ganze Werte als BLOBs mithilfe eines Schlüssels ab.
  • Weitkolonne: Ähnlich wie Schlüssel-Wert, aber Werte werden in Spalten aufgeteilt und bieten eine genauere Datenabfrage.
  • Dokument: Strukturiert wie JSON oder XML, bietet dieser Typ eine größere Abfrageflexibilität.
  • Graph: Ermöglicht die Modellierung und Abfrage komplexer Beziehungen, indem Entitäten und ihre Verbindungen dargestellt werden.

Eine multimodell-Datenbank kombiniert diese Fähigkeiten in einem einzigen System. Zum Beispiel unterstützt ArangoDB Schlüssel-Wert, Dokument und Graph-Modelle und eliminiert so die Notwendigkeit für separate Datenbanken.

Dieser Artikel zeigt, wie man ArangoDB verwendet, um Schlüssel-Wert- und Dokumentmodelle in Java-Anwendungen mithilfe von Jakarta NoSQL zu erkunden.

Einrichten von ArangoDB

Um mit ArangoDB zu beginnen, bietet Docker eine einfache Möglichkeit, Drittanbieterdienste zu verwalten. Mit dem folgenden Befehl können Sie eine ArangoDB-Instanz ganz einfach einrichten:

Shell

 

Erforschen von Schlüssel-Wert-Daten

Schlüssel-Wert-Datenbanken sind ideal für einfache Datenmodelle. Lassen Sie uns eine Beispielanwendung erstellen, um Flughafendaten mithilfe der Schlüssel-Wert-Funktionen von ArangoDB zu verwalten. Die Airport-Entität wird zwei Felder umfassen: code (ID) und name.

Java

 

Nachdem die Entität definiert ist, können Sie KeyValueTemplate verwenden, um mit der Datenbank zu interagieren. In diesem Tutorial werden wir mehr von den Jakarta NoSQL-Funktionen über die Annotationen hinaus erkunden, indem wir Eclipse JNoSQL verwenden; Sie können das Repository erstellen, sobald Eclipse JNoSQL Jakarta Data implementiert und unterstützt.

Java

 

Dieses Programm generiert einen zufälligen Flughafeneintrag, fügt ihn in die Datenbank ein und ruft ihn ab. Wenn Sie lokal arbeiten, können Sie die Werte in der Datenbank überprüfen, indem Sie Ihren Browser mit der URL verwenden: 

http://localhost:8529/_db/airport/_admin/aardvark/index.html#collections

Arbeiten mit Dokumentendaten

Jakarta NoSQL bietet umfangreiche Funktionen für die Arbeit mit Dokumentendatenbanken, einschließlich Unterstützung für Vererbung und hierarchische Datenmodellierung. Während NoSQL-Datenbanken im Allgemeinen diese Funktionen nicht von Natur aus unterstützen, überbrückt Jakarta NoSQL diese Lücke mit seiner API. Lassen Sie uns Jakarta NoSQL mit ArangoDB verwenden, um Daten von Cloud-Anbietern zu verwalten, einschließlich zweier Spezialisierungen: Amazon Web Services (AWS) und Azure.

Jakarta NoSQL verwendet die Annotationen @DiscriminatorColumn, @DiscriminatorValue und @Inheritance, um die Vererbung in Dokumentendatenbanken zu verwalten. 

  • Die Annotation @DiscriminatorColumn legt das Feld fest, das zur Identifizierung eines Entitätstyps im Datenbankdokument verwendet wird. 
  • Die Annotation @DiscriminatorValue definiert den spezifischen Wert für jede Unterklasse, um sicherzustellen, dass sie korrekt identifiziert werden.
  • Die Annotation @Inheritance gibt an, dass die Klassenhierarchie in die Datenbank abgebildet wird.

Zuerst definieren wir die Basisklasse für Cloud-Anbieter:

Java

 

Dann führen wir die spezialisierten Cloud-Anbieterklassen ein. Diese Beispiele zeigen, wie Jakarta NoSQL Annotationen wie @DiscriminatorValue nutzt, um zwischen verschiedenen Dokumententypen zu unterscheiden. Jede Spezialisierung – AWS und Azure – erbt von der Basisklasse CloudProvider und definiert gleichzeitig Attribute, die für jeden Anbieter einzigartig sind. Darüber hinaus werden Factory-Methoden (of) bereitgestellt, um Beispieldaten für Demonstrationszwecke zu generieren.

AWSCloudProvider

Java

 

AzureCloudProvider

Java

 

Schließlich schauen wir uns an, wie man das DocumentTemplate verwendet, um mit der Datenbank zu interagieren. Dieser Code demonstriert die Erstellung von Instanzen der AWS- und Azure-Anbieter, das Einfügen in die Datenbank und das Abrufen. Die Implementierung nutzt die API von Jakarta NoSQL zur Handhabung der Datenspeicherung und stellt sicher, dass Vererbung und Diskriminatorlogik nahtlos während der Speicherung und des Abrufs angewendet werden.

Java

 

Fazit

Die Multimodellfähigkeiten von ArangoDB machen es zu einer vielseitigen Wahl für moderne Anwendungen. Die Kombination von Schlüssel-Wert- und Dokumentmodellen in einer einzigen Datenbank vereinfacht Ihre Datenarchitektur und bewahrt dabei die Flexibilität. Mit Jakarta NoSQL wird die Integration von ArangoDB in Java-Anwendungen nahtlos, indem vertraute Annotations- und Programmierparadigmen genutzt werden.

Für den vollständigen Code besuchen Sie das GitHub-Repository.

Source:
https://dzone.com/articles/arangodb-success-through-multivalue-database