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

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster