Eine Dokumentdatenbank ist eine Art NoSQL-Datenbank, die zum Speichern und Abfragen von Daten als JSON-ähnlichen Dokumenten verwendet werden kann. JavaScript Object Notation (JSON) ist ein offenes Datenaustauschformat, das sowohl für Menschen als auch für Maschinen lesbar ist. Entwickler können JSON-Dokumente in ihrem Code verwenden und sie direkt in der Dokumentdatenbank speichern. Die flexible, halbstrukturierte und hierarchische Natur von Dokumenten und Dokumentdatenbanken ermöglicht es ihnen, sich mit den Anforderungen der Anwendungen weiterzuentwickeln.

JSON-Dokumentdatenbank
JSON-Dokumentdatenbankabfrage

Was sind die Vorteile von Dokumentdatenbanken

Dokumentdatenbanken ermöglichen eine flexible Indexierung, leistungsstarke Ad-hoc-Abfragen und Analysen zu Dokumentsammlungen. Lesen Sie unten mehr über die Vorteile.

Einfache Entwicklung

JSON-Dokumente sind Objekten zugeordnet — ein in den meisten Programmiersprachen gängiger Datentyp. Beim Erstellen von Anwendungen können Entwickler flexibel Dokumente direkt aus dem Code erstellen und aktualisieren. Dies bedeutet, dass sie weniger Zeit damit verbringen, Datenmodelle im Voraus zu erstellen. Daher ist die Anwendungsentwicklung schneller und effizienter.

Flexibles Schema

Eine dokumentenorientierte Datenbank ermöglicht es Ihnen, mehrere Dokumente mit unterschiedlichen Feldern innerhalb derselben Sammlung zu erstellen. Dies kann nützlich sein, wenn Sie unstrukturierte Daten wie E-Mails oder Beiträge in sozialen Netzwerken speichern. Einige Dokumentdatenbanken bieten jedoch eine Schemavalidierung an, sodass Sie der Struktur einige Einschränkungen auferlegen können.

Skalierbare Leistung

Dokumentdatenbanken bieten integrierte Verteilungsfunktionen. Sie können sie horizontal über mehrere Server skalieren, ohne dass die Leistung beeinträchtigt wird, was ebenfalls kosteneffizient ist. Außerdem bieten Dokumentdatenbanken Fehlertoleranz und Verfügbarkeit durch integrierte Replikation.

Was sind die Anwendungsfälle von Dokumentdatenbanken

Das Dokumentenmodell eignet sich gut für Anwendungsfälle wie Inhaltsmanagement, Kataloge, Sensormanagement und mehr. Für jeden Anwendungsfall ist jedes Dokument einzigartig und entwickelt sich im Laufe der Zeit weiter.

Content-Management

Eine Dokumentdatenbank ist eine ausgezeichnete Wahl für Anwendungen zur Verwaltung von Inhalten wie Blogs und Videoplattformen. In einer Dokumentdatenbank kann jede Entität, die die Anwendung verfolgt, als einzelnes Dokument gespeichert werden. Die Dokumentdatenbank ist eine intuitivere Möglichkeit für einen Entwickler, eine Anwendung zu aktualisieren, wenn sich die Anforderungen weiterentwickeln. Darüber hinaus müssen bei einer Änderung des Datenmodells nur die betroffenen Dokumente aktualisiert werden. Zum Durchführen der Änderungen ist weder ein Schema-Update erforderlich, noch muss ein Ausfall der Datenbank berücksichtigt werden.

Kataloge

Dokumentdatenbanken eignen sich zum effizienten und effektiven Speichern von Kataloginformationen. Beispielsweise besitzen verschiedene Produkte in einer E-Commerce-Anwendung in der Regel eine unterschiedliche Anzahl von Attributen. Die Verwaltung Tausender von Attributen in relationalen Datenbanken ist ineffizient und die Leseleistung wird beeinträchtigt. Mithilfe einer Dokumentdatenbank können die Attribute jedes Produkts in einem einzigen Dokument beschrieben werden, um die Verwaltung zu vereinfachen und die Lesegeschwindigkeit zu erhöhen. Die Änderung der Eigenschaften eines Produkts hat keine Auswirkungen auf andere Produkte.

Sensormanagement

Das Internet of Things (IoT) hat dazu geführt, dass Unternehmen regelmäßig Daten von intelligenten Geräten wie Sensoren und Zählern sammeln. Sensordaten kommen in der Regel als kontinuierlicher Strom variabler Werte an. Aufgrund von Latenzproblemen sind einige Datenobjekte möglicherweise unvollständig, dupliziert oder fehlen. Darüber hinaus müssen Sie eine große Datenmenge sammeln, bevor Sie sie für Analysen filtern oder zusammenfassen können.

Dokumentenspeicher sind in diesem Fall praktischer. Sie können die Sensordaten schnell so speichern, wie sie sind, ohne sie zu bereinigen oder sie an vorgegebene Schemata anzupassen. Sie können sie auch nach Bedarf skalieren und ganze Dokumente löschen, sobald die Analyse abgeschlossen ist.

Wie funktionieren Dokumentdatenbanken

Dokumentdatenbanken speichern Daten als Schlüssel-Werte-Paare im JSON-Format. Sie können JSON-Dokumente programmgesteuert in die Datenbanken lesen und schreiben.

Struktur von JSON-Dokumenten

JSON stellt Daten auf drei Arten dar:

Schlüsselwert

Schlüssel-Werte-Paare werden in geschweiften Klammern aufgezeichnet. Der Schlüssel ist eine Zeichenkette, der Wert kann ein beliebiger Datentyp wie Integer, Dezimal oder Boolean sein. Ein einfacher Schlüsselwert ist beispielsweise {“Jahr“: 2013}.

Reihe

Eine Reihe ist eine geordnete Sammlung von Werten, die in linken ([) und rechten (]) Klammern definiert sind. Die Elemente in der Reihe sind durch Kommas getrennt. Beispiel: {„Obst“: [„Apfel“, „Mango“]}.

Objekte

Ein Objekt ist eine Sammlung von Schlüsselwertpaaren. Im Wesentlichen ermöglichen JSON-Dokumente Entwicklern, Objekte einzubetten und verschachtelte Paare zu erstellen. Zum Beispiel {„Adresse“: {„Land“: „USA“, „Bundesstaat“: „Texas“}}.

Beispiel für JSON-Dokumente

Im folgenden Beispiel beschreibt ein JSON-ähnliches Dokument einen Filmdatensatz.

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

Sie können feststellen, dass das JSON-Dokument einfache Werte, Reihen und Objekte recht flexibel enthält. Sie können sogar eine Reihe mit JSON-Objekten darin haben. Mit dokumentorientierten Datenbanken können Sie daher eine Hierarchie eingebetteter JSON-Objekte auf unbegrenzter Ebene erstellen. Es liegt ganz bei Ihnen, welches Schema Sie Ihrem Dokumentspeicher geben wollen.

Operationen in der Dokumentdatenbank

Sie können ganze in der Datenbank gespeicherte Dokumente erstellen, lesen, aktualisieren und löschen. Dokumentdatenbanken bieten eine Abfragesprache oder API, mit der Entwickler die folgenden Operationen ausführen können:

Erstellen

Sie können Dokumente in der Datenbank erstellen. Jedes Dokument hat eine eindeutige Kennung, die als Schlüssel dient.

Lesen

Sie können die API oder die Abfragesprache verwenden, um Dokumentdaten zu lesen. Sie können Abfragen über Feldwerte oder Schlüssel ausführen. Sie können der Datenbank auch Indizes hinzufügen, um die Leseleistung zu erhöhen.

Aktualisieren

Sie können bestehende Dokumente flexibel aktualisieren. Sie können das gesamte Dokument neu schreiben oder einzelne Werte aktualisieren.

Was ist der Unterschied zwischen einer Dokumentdatenbank und einem Schlüssel-Wert-Speicher?

Eine Schlüsselwertdatenbank ist eine NoSQL-Datenbank, die eine einfache Schlüssel-Wert-Methode zum Speichern von Daten verwendet. Es speichert Daten als eine Sammlung von Schlüsselwertpaaren, wobei ein Schlüssel als eindeutiger Bezeichner dient. Sowohl Schlüssel als auch Werte können alles sein, von einfachen bis hin zu komplexen zusammengesetzten Objekten.

Eine dokumentorientierte Datenbank ist ein spezieller Typ eines Schlüssel-Werte-Speichers, bei dem die Schlüssel nur Zeichenfolgen sein können. Darüber hinaus ist das Dokument mit Standards wie JSON oder verwandten Sprachen wie XML codiert. Sie können auch PDFs, Bilddateien oder Textdokumente direkt als Werte speichern.

Bei der Abfrage Ihres Dokumentspeichers können Sie den Wert oder einen Teil eines Wertes lesen, insbesondere wenn der Wert ein anderes JSON-Objekt ist. Zum Beispiel können Sie {"book": {"id": 1,"price": $10}} haben, dann wird book.price abgefragt, und die Datenbank gibt den Wert 10 zurück. Schlüsselwertdatenbank geben immer den gesamten Wert mit ID- und Preisinformationen zurück.

Wie kann AWS Ihre Anforderungen an Dokumentdatenbanken unterstützen?

Amazon DocumentDB (mit MongoDB-Kompatibilität) ist ein vollständig verwalteter nativer JSON-Dokumentdatenbankdienst, der Dokument- und MongoDB-Workloads unterstützt. Entwickler können denselben MongoDB-Anwendungscode, -Treiber und -Tools für die Ausführung, Verwaltung und Skalierung von Workloads auf Amazon DocumentDB verwenden. Sie können von einer verbesserten Leistung, Skalierbarkeit und Verfügbarkeit profitieren, ohne sich um die Verwaltung der zugrunde liegenden Infrastruktur kümmern zu müssen. Amazon DocumentDB ermöglicht:

  • Das Skalieren mit Amazon DocumentDB Elastic Clusters auf Millionen von Lese- und Schreibanforderungen pro Sekunde, ohne dass die Leistung beeinträchtigt wird und die zugrunde liegende Infrastruktur nicht verwaltet werden muss.
  • Die entkoppelte Speicherung und Berechnung, so dass Sie die Leseleistung mit bis zu 15 Lesereplikaten steigern können, die sich denselben zugrunde liegenden Speicher teilen, ohne dass die Schreibvorgänge an den Replikatknoten durchgeführt werden müssen.
  • Die Automatisierung von undifferenzierten manuellen Datenbankverwaltungsaufgaben ohne Lizenzgebühren, einschließlich Hardwarebereitstellung, Patching, Einrichtung und vieles mehr.
  • Das Erreichen einer Hochverfügbarkeit von 99,99 % mit Amazon DocumentDB Global Clusters für global verteilte Anwendungen, die eine schnelle lokale Leseleistung unterstützen. 
  • Das Erzielen einer Verfügbarkeit von 99,99 % mit automatischer Replikation, kontinuierlicher Sicherung und strenger Netzwerkisolierung.
  • Äußerst zuverlässig und langlebig mit fehlertolerantem und selbstheilendem Speicher, Point-in-Time-Recovery, kontinuierlichen Backups und vielem mehr. Amazon DocumentDB macht Ihre Daten über drei AZs innerhalb einer Region hinweg haltbar, indem neue Schreibvorgänge auf sechs Arten repliziert werden, während Sie nur für eine Kopie bezahlen.
  • Hohe Sicherheit durch standardmäßige Verschlüsselung im Ruhezustand, Netzwerkisolierung und fortschrittliches Auditing bei gleichzeitiger Möglichkeit der Steuerung von Berechtigungen auf Ressourcenebene mit fein abgestuftem Zugriff.
  • Umfassende Compliance-Abdeckung, einschließlich SOC (1, 2 und 3), PCI DSS, HIPAA-fähig und mehr.

Starten Sie mit Dokumentdatenbanken auf AWS, indem Sie noch heute eines kostenloses Konto erstellen!

Daten-Modellierung mit Amazon DocumentDB
Einführung in Amazon DocumentDB Elastic Clusters