Dokumentorientiertes DBMS MongoDB 5.0 verfügbar

Es wird die Veröffentlichung des dokumentenorientierten DBMS MongoDB 5.0 vorgestellt, das eine Nische zwischen schnellen und skalierbaren Systemen, die Daten im Schlüssel/Wert-Format verarbeiten, und relationalen DBMS, die funktional und einfach zu formulieren sind, besetzt. Der MongoDB-Code ist in C++ geschrieben und wird unter der SSPL-Lizenz vertrieben, die auf der AGPLv3-Lizenz basiert, aber nicht offen ist, da sie eine diskriminierende Anforderung enthält, nicht nur den Anwendungscode selbst, sondern auch die Quelle unter der SSPL-Lizenz bereitzustellen Code aller an der Bereitstellung des Cloud-Dienstes beteiligten Komponenten.

MongoDB unterstützt das Speichern von Dokumenten in einem JSON-ähnlichen Format, verfügt über eine ziemlich flexible Sprache zum Generieren von Abfragen, kann Indizes für verschiedene gespeicherte Attribute erstellen, ermöglicht die effiziente Speicherung großer Binärobjekte, unterstützt die Protokollierung von Vorgängen zum Ändern und Hinzufügen von Daten zur Datenbank arbeitet nach dem Paradigma Map/Reduce, unterstützt die Replikation und den Aufbau fehlertoleranter Konfigurationen.

MongoDB verfügt über integrierte Tools zum Bereitstellen von Sharding (Verteilen eines Datensatzes auf Servern basierend auf einem bestimmten Schlüssel) in Kombination mit Replikation, sodass Sie einen horizontal skalierbaren Speichercluster aufbauen können, in dem es keinen Single Point of Failure (den Ausfall) gibt eines Knotens hat keinen Einfluss auf den Betrieb der Datenbank), automatische Wiederherstellung nach einem Ausfall und Lastübertragung von einem ausgefallenen Knoten. Die Erweiterung eines Clusters oder die Umwandlung eines Servers in einen Cluster erfolgt ohne Anhalten der Datenbank durch einfaches Hinzufügen neuer Maschinen.

Features der neuen Version:

  • Sammlungen für Daten in Form einer Zeitreihe (Zeitreihensammlungen) hinzugefügt, optimiert für die Speicherung von Abschnitten von Parameterwerten, die in bestimmten Intervallen aufgezeichnet wurden (Zeit und eine dieser Zeit entsprechende Wertegruppe). Die Notwendigkeit, solche Daten zu speichern, entsteht in Überwachungssystemen, Finanzplattformen und Systemen zur Abfrage von Sensorzuständen. Die Arbeit mit Zeitreihendaten erfolgt wie bei gewöhnlichen Dokumentensammlungen, jedoch werden die Indizes und die Speichermethode dafür unter Berücksichtigung des Zeitbezugs optimiert, was den Speicherplatzverbrauch erheblich reduzieren, Verzögerungen bei der Ausführung von Abfragen reduzieren und Echtzeitdaten ermöglichen kann Analyse.

    MongoDB behandelt solche Sammlungen als beschreibbare, nicht materialisierte Ansichten, die auf internen Sammlungen basieren und beim Einfügen Zeitreihendaten automatisch in einem optimierten Speicherformat gruppieren. In diesem Fall wird jeder zeitbasierte Datensatz auf Anfrage als separates Dokument behandelt. Die Daten werden automatisch nach Zeit geordnet und indiziert (keine explizite Erstellung von Zeitindizes erforderlich).

  • Unterstützung für Fensteroperatoren (Analysefunktionen) hinzugefügt, mit denen Sie Aktionen mit einem bestimmten Satz von Dokumenten in der Sammlung ausführen können. Im Gegensatz zu Aggregatfunktionen reduzieren Fensterfunktionen die gruppierte Menge nicht, sondern aggregieren sie basierend auf dem Inhalt eines „Fensters“, das ein oder mehrere Dokumente aus der Ergebnismenge enthält. Um eine Teilmenge von Dokumenten zu manipulieren, wird eine neue $setWindowFields-Stufe vorgeschlagen, mit der Sie beispielsweise die Unterschiede zwischen zwei Dokumenten in einer Sammlung ermitteln, Verkaufsrankings berechnen und Informationen in komplexen Zeitreihen analysieren können.
  • Unterstützung für API-Versionierung hinzugefügt, die es Ihnen ermöglicht, eine Anwendung an einen bestimmten API-Status zu binden und die Risiken zu beseitigen, die mit einer möglichen Verletzung der Abwärtskompatibilität bei der Migration auf neue DBMS-Versionen verbunden sind. Die API-Versionierung trennt den Anwendungslebenszyklus vom DBMS-Lebenszyklus und ermöglicht es Entwicklern, Änderungen an der Anwendung vorzunehmen, wenn neue Funktionen verwendet werden müssen, und nicht bei der Migration auf eine neue Version des DBMS.
  • Unterstützung für den Live-Resharding-Mechanismus hinzugefügt, der es Ihnen ermöglicht, die für die Segmentierung verwendeten Shard-Schlüssel im laufenden Betrieb zu ändern, ohne das DBMS anzuhalten.
  • Die Möglichkeiten zur Verschlüsselung von Feldern auf Client-Seite wurden erweitert (Client-Side Field Level Encryption). Es ist jetzt möglich, Prüffilter neu zu konfigurieren und x509-Zertifikate zu rotieren, ohne das DBMS anzuhalten. Unterstützung für die Konfiguration der Cipher Suite für TLS 1.3 hinzugefügt.
  • Es wird eine neue Befehlszeilen-Shell, MongoDB Shell (mongosh), vorgeschlagen, die als separates Projekt entwickelt, in JavaScript unter Verwendung der Node.js-Plattform geschrieben und unter der Apache 2.0-Lizenz vertrieben wird. MongoDB Shell ermöglicht es, eine Verbindung zum DBMS herzustellen, Einstellungen zu ändern und Abfragen zu senden. Unterstützt intelligente Autovervollständigung für die Eingabe von Methoden, Befehlen und MQL-Ausdrücken, Syntaxhervorhebung, kontextbezogene Hilfe, Parsen von Fehlermeldungen und die Möglichkeit, die Funktionalität durch Add-ons zu erweitern. Der alte CLI-Wrapper „mongo“ ist veraltet und wird in einer zukünftigen Version entfernt.
    Dokumentorientiertes DBMS MongoDB 5.0 verfügbar
  • Neue Operatoren wurden hinzugefügt: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate und $rand.
  • Stellt sicher, dass Indizes verwendet werden, wenn die Operatoren $eq, $lt, $lte, $gt und $gte im Ausdruck $expr verwendet werden.
  • Die Befehle „aggregat“, „find“, „findAndModify“, „update“, „delete“ und die Methoden „db.collection.aggregate()“, „db.collection.findAndModify()“, „db.collection.update()“ und „db.collection.remove()“ unterstützen jetzt die Funktion „let ” Option zum Definieren einer Liste von Variablen, die Befehle besser lesbar machen, indem Variablen vom Anforderungstext getrennt werden.
  • Die Vorgänge „Find“, „Count“, „Distinct“, „Aggregation“, „MapReduce“, „ListCollections“ und „ListIndexes“ blockieren nicht mehr, wenn ein Vorgang, der eine exklusive Sperre für eine Dokumentsammlung annimmt, parallel ausgeführt wird.
  • Im Rahmen einer Initiative zur Entfernung politisch inkorrekter Begriffe wurden der Befehl isMaster und die Methode db.isMaster() in hello und db.hello() umbenannt.
  • Das Veröffentlichungsnummerierungsschema wurde geändert und es wurde auf einen vorhersehbaren Veröffentlichungsplan umgestellt. Einmal im Jahr wird es ein bedeutendes Release geben (5.0, 6.0, 7.0), alle drei Monate Zwischen-Releases mit neuen Funktionen (5.1, 5.2, 5.3) und bei Bedarf korrigierende Updates mit Fehlerbehebungen und Schwachstellen (5.1.1, 5.1.2). .5.1.3 , 5.1). Zwischenversionen werden die Funktionalität für die nächste Hauptversion aufbauen, d. h. MongoDB 5.2, 5.3 und 6.0 werden neue Funktionen für die Veröffentlichung von MongoDB XNUMX bereitstellen.

Source: opennet.ru

Kommentar hinzufügen