Mobile-Menu

Ein neuer Meilenstein für NoSQL-Datenbanken? Microsoft stellt DocumentDB als Open Source zur Verfügung

Von Thomas Joos 4 min Lesedauer

Microsoft hat den Quellcode von DocumentDB, der Engine der vCore-basierten Azure Cosmos DB für MongoDB, als Open Source freigegeben. Die neue Dokumentendatenbank basiert auf PostgreSQL und ermöglicht CRUD-Operationen auf BSON-Daten. Neben den grundlegenden Datenbankfunktionen unterstützt sie auch komplexe Abfragen, darunter Volltextsuche, geospatiales Querying und Vektoreinbettungen.

Mit DocumentDB erhalten Unternehmen die volle Kontrolle über ihre Daten.(Bild:  Midjourney / KI-generiert)
Mit DocumentDB erhalten Unternehmen die volle Kontrolle über ihre Daten.
(Bild: Midjourney / KI-generiert)

Mit der Open-Source-Veröffentlichung von DocumentDB setzt Microsoft einen wichtigen Schritt in Richtung Transparenz und Interoperabilität. Die Nutzung von PostgreSQL als Basis erlaubt Entwicklern, ihre NoSQL-Workloads in einer vertrauten Umgebung zu betreiben.

Die Open-Source-Veröffentlichung erfolgt unter der MIT-Lizenz, was Entwicklern vollständige Freiheit in der Nutzung und Weitergabe gewährt – ohne kommerzielle Gebühren oder Einschränkungen. Microsoft verfolgt mit DocumentDB die Vision einer standardisierten NoSQL-Sprache, ähnlich dem ANSI-SQL-Standard für relationale Datenbanken, um Interoperabilität zwischen verschiedenen dokumentenorientierten Datenbanken zu fördern.

Die Einführung eines Standards für dokumentenorientierte Datenbanken soll zudem die Migration zwischen verschiedenen NoSQL-Datenbanken erleichtern. Durch die Offenlegung des Quellcodes erhalten Entwickler vollen Einblick in die Architektur und können eigene Erweiterungen oder Optimierungen vornehmen.

Die technische Architektur von DocumentDB

Die Grundlage von DocumentDB bildet eine PostgreSQL-Erweiterung zur Unterstützung des BSON-Datentyps. Ergänzt wird sie durch eine API-Schicht, die CRUD-Operationen, Abfragen und Indexverwaltung bereitstellt. Durch diese Architektur integriert sich DocumentDB nahtlos in bestehende PostgreSQL-Ökosysteme und unterstützt Erweiterungen wie PostGIS für geographische Datenverarbeitung sowie „pg_vector“ für KI-gestützte Suchanfragen. Das macht die Datenbank besonders flexibel für unterschiedliche Anwendungsszenarien.

Installation und Einrichtung für Administratoren und Entwickler

Installieren von DocumentDB als Docker-Container.(Bild:  Joos)
Installieren von DocumentDB als Docker-Container.
(Bild: Joos)

Administratoren und Entwickler können DocumentDB unkompliziert über Docker installieren und in Betrieb nehmen. Zunächst muss Docker installiert sein. Anschließend kann das Repository geklont werden:

git clone https://github.com/microsoft/documentdb.git

Nach dem Wechsel in das entsprechende Verzeichnis wird das Docker-Image erstellt:

docker build . -f .devcontainer/Dockerfile -t documentdb

Der nächste Schritt ist das Starten des Containers:

docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash

Nach dem Start des Containers müssen die Binaries kompiliert und installiert werden:

cd codemakesudo make install

Der DocumentDB-Server kann anschließend initialisiert werden:

./scripts/start_oss_server.sh -t documentdb

Um eine Verbindung zur Datenbank herzustellen, wird die psql-Shell genutzt:

psql -p 9712 -h localhost -d postgres

Sobald DocumentDB läuft, stehen Entwicklern alle gewohnten Funktionen einer dokumentenorientierten Datenbank zur Verfügung. Neue Sammlungen können erstellt, Dokumente eingefügt, bearbeitet und gelöscht werden. Abfragen lassen sich flexibel gestalten, wobei auch komplexe Suchmuster unterstützt werden. Durch die enge Integration mit PostgreSQL profitieren Nutzer von der ausgereiften Infrastruktur und den fortgeschrittenen Features der relationalen Datenbank.

Erste Schritte mit DocumentDB

Nach der erfolgreichen Einrichtung können Entwickler mit der Datenbank arbeiten. Neue Sammlungen lassen sich zum Beispiel mit folgenden Anweisungen erstellen:

SELECT documentdb_api.create_collection('documentdb','patient');

Dokumente lassen sich über einfache SQL-Befehle einfügen:

SELECT documentdb_api.insert_one('documentdb','patient', '{ "patient_id": "P001", "name": "Alice Smith", "age": 30, "phone_number": "555-0123", "registration_year": "2023","conditions": ["Diabetes", "Hypertension"]}');

Ebenso können Dokumente abgerufen werden:

SELECT * FROM documentdb_api.collection('documentdb','patient');

Für gezielte Suchanfragen können Filter gesetzt werden:

SELECT cursorPage FROM documentdb_api.find_cursor_first_page('documentdb', '{ "find" : "patient", "filter" : {"patient_id":"P005"}}');

Auch komplexe Abfragen wie Bereichssuchen sind möglich:

SELECT cursorPage FROM documentdb_api.find_cursor_first_page('documentdb', '{ "find" : "patient", "filter" : { "$and": [{ "age": { "$gte": 10 } },{ "age": { "$lte": 35 } }] }}');

Updates von Dokumenten lassen sich ebenfalls direkt umsetzen:

SELECT documentdb_api.update('documentdb', '{"update":"patient", "updates":[{"q":{"patient_id":"P004"},"u":{"$set":{"age":14}}}]}');

Löschen eines spezifischen Dokuments aus der Sammlung:

SELECT documentdb_api.delete('documentdb', '{"delete": "patient", "deletes": [{"q": {"patient_id": "P002"}, "limit": 1}]}');

Ein offener Standard für NoSQL-Datenbanken

Microsoft verfolgt mit DocumentDB das Ziel, einen offenen Standard für dokumentenorientierte Datenbanken zu etablieren. Ähnlich dem ANSI-SQL-Standard für relationale Systeme könnten eine einheitliche API und Engine-Fundamentals die Interoperabilität und Portabilität von NoSQL-Datenbanken in Zukunft erheblich verbessern. Die Idee ist es, Entwicklern einen einfachen Wechsel zwischen verschiedenen NoSQL-Technologien zu ermöglichen, ohne tiefgreifende Anpassungen vornehmen zu müssen.

Erweiterte Funktionen und Integrationen

Neben den grundlegenden CRUD-Operationen bietet DocumentDB noch weitere Funktionen. Durch die Unterstützung für die PostgreSQL-Erweiterung „pg_vector“ lassen sich vektorbasierte Suchabfragen durchführen, was vor allem für Anwendungen im Bereich der künstlichen Intelligenz von Bedeutung ist. Unternehmen, die auf Geodaten angewiesen sind, profitieren von der PostGIS-Integration, die eine effiziente Verarbeitung und Abfrage geospatialer Daten ermöglicht. Diese Erweiterungen machen DocumentDB attraktiv für moderne datengetriebene Anwendungen, die sowohl relationale als auch dokumentenorientierte Datenmodelle erfordern.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Ein zentraler Vorteil von DocumentDB ist die enge Integration mit FerretDB, das eine MongoDB-kompatible Schnittstelle bereitstellt und DocumentDB als Backend nutzt. Für Authentifizierungsmechanismen setzt Microsoft auf SCRAM-Authentifizierung, um Benutzerkonten sicher zu verwalten. Erweiterte Indexierungsoptionen erlauben die Erstellung von Einzel-, Multi-Key-, Compound-, Text- und Geospatial-Indizes, die für komplexe Abfragen optimiert sind. Neben klassischen Abfragen unterstützt DocumentDB auch Aggregationsfunktionen über „aggregate_cursor_first_page“, wodurch sich beispielsweise Patienten nach Registrierungsjahr gruppieren lassen. Join-Operationen über mehrere Collections sind ebenfalls möglich. Automatisierte Verwaltungsaufgaben wie TTL-Indexierung werden über „pg_cron“ gesteuert, wodurch Dokumente nach einer bestimmten Zeit automatisch gelöscht werden können.

Zukunftsperspektiven und Bedeutung für Unternehmen

Mit der Open-Source-Veröffentlichung stärkt Microsoft die Position von PostgreSQL als vielseitige Datenbankplattform. Entwickler profitieren von einer flexiblen, skalierbaren Lösung für dokumentenorientierte Datenhaltung, und Unternehmen erhalten volle Kontrolle über ihre Daten. Die Möglichkeit zur On-Premises-Nutzung bietet eine Alternative zur reinen Cloud-Abhängigkeit. Durch die Unterstützung eines wachsenden Open-Source-Ökosystems könnte DocumentDB zu einer attraktiven Alternative zu proprietären NoSQL-Lösungen werden.

Aktuelles eBook

Storage-Software als Effizienzbooster

eBook Storage-Software als Effizienzbooster
eBook „Storage-Software als Effizienzbooster“
(Bild: Storage-Insider)

Mit der geeigneten Storage-Software kann sich ein Unternehmen einen Effizienzbooster ins Haus holen oder in der Cloud abonnieren. Dieser Booster steigert nicht nur die Performance der geschäftskritischen Anwendungen, sondern optimiert auch die Kosten der bereits installierten Speichersysteme.

Die Themen im Überblick:

  • Herausforderungen eines modernen Speichersystems
  • Methoden und Technologien effizienter Speichersysteme
  • Effizienter Speicher mit Pure Storage, AWS, Cohesity und Dell

(ID:50362003)