Microsoft hat den Code der auf PostgreSQL basierenden Datenbank DocumentDB veröffentlicht.

Microsoft hat die Eröffnung des Codes des Projekts DocumentDB angekündigt, das als eigenständige NoSQL-Datenbank, als Plattform zur Entwicklung eigener Speichersysteme oder als Ergänzung zur Speicherung von Daten im BSON-Format in PostgreSQL verwendet werden kann. In der Praxis wird DocumentDB von Microsoft als Grundlage für das Produkt „Azure Cosmos DB for MongoDB“ genutzt, das eine mit der dokumentenorientierten Datenbank MongoDB kompatible Schnittstelle bietet. Der Code des Projekts ist in C geschrieben und wird unter der MIT-Lizenz veröffentlicht. Die DocumentDB-Engine wird als Erweiterung der PostgreSQL-Datenbank implementiert.

Wie MongoDB verwendet auch DocumentDB ein JSON-ähnliches Format namens BSON (Binary JSON) zur Speicherung strukturierter Dokumente. Dies ermöglicht die Erstellung hierarchischer Strukturen, in denen Dokumente und Arrays in andere Dokumente und Arrays eingebettet werden können. Der Hauptunterschied zu JSON besteht in der Verwendung der Serialisierung von Daten in eine binäre Darstellung. Das Projekt bietet sowohl NoSQL-Operationen für das Erstellen, Lesen, Aktualisieren und Löschen von Daten im BSON-Format an als auch eine API für das Standard-PostgreSQL (DocumentDB kann als PostgreSQL-Option mit Unterstützung für BSON betrachtet werden). In DocumentDB können die Funktionen der Volltextsuche sowie Operationen mit Vektor- und geospatialen Datentypen genutzt werden.

Das Projekt besteht aus zwei Komponenten:

  • pg_documentdb_core – ein Erweiterung für PostgreSQL, die den BSON-Typ und Operationen für die Arbeit mit BSON-Daten in PostgreSQL implementiert.
  • pg_documentdb – Eine öffentliche API von DocumentDB mit grundlegenden Operationen zur Arbeit mit Dokumenten im BSON-Format, zur Abfrageverarbeitung und zur Verwaltung von Indizes.

Die erste Version von DocumentDB unterstützt CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen), Indizes für einzelne BSON-Felder, Volltextsuche-Indizes (kompatibel mit RUM), vektorielle und geospatialen Abfragen (kompatibel mit pg_vector und PostGIS) sowie Möglichkeiten zur Abfrage- und Datenauswertung von BSON-Daten.

Das Projekt FerretDB hat bereits auf DocumentDB umgestellt und entwickelt eine Implementierung der MongoDB-Datenbank auf der Basis von PostgreSQL. FerretDB ermöglicht es, die proprietäre dokumentenorientierte Datenbank MongoDB ohne Änderungen am Anwendungscode durch einen vollständig offenen Software-Stack basierend auf PostgreSQL zu ersetzen. Die Notwendigkeit, MongoDB zu ersetzen, ergibt sich aus der Umstellung dieser Datenbank auf die SSPL-Lizenz, die auf der AGPLv3 basiert, jedoch nicht offen ist, da sie diskriminierende Anforderungen an die Bereitstellung nicht nur des Anwendungscodes, sondern auch des Quellcodes aller Komponenten enthält, die an der Bereitstellung des Cloud-Dienstes beteiligt sind.

Ursprünglich bestand die Funktionalität von FerretDB darin, Anfragen an MongoDB in SQL-Abfragen für PostgreSQL zu übersetzen. Mit der Version FerretDB 2.0, die sich aktuell im Release-Kandidaten-Status befindet, wird zur Unterstützung des BSON-Formats das PostgreSQL-Extension DocumentDB eingesetzt. Der Wechsel zur Nutzung von DocumentDB hat die Leistung von FerretDB für bestimmte Lasttypen um mehr als das 20-Fache gesteigert. Zu weiteren Neuerungen in FerretDB 2.0 gehören Verbesserungen in der Kompatibilität mit MongoDB, Replikationsmöglichkeiten und Unterstützung für Vektor-Suche. Der Code von FerretDB ist in der Programmiersprache Go geschrieben und wird unter der Apache 2.0-Lizenz verbreitet.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster