Documentgeoriënteerde DBMS MongoDB 5.0 beschikbaar

De release van het documentgeoriënteerde DBMS MongoDB 5.0 wordt gepresenteerd, dat een niche inneemt tussen snelle en schaalbare systemen die gegevens in sleutel/waarde-formaat verwerken, en relationele DBMS'en die functioneel zijn en gemakkelijk query's kunnen vormen. De MongoDB-code is geschreven in C++ en gedistribueerd onder de SSPL-licentie, die is gebaseerd op de AGPLv3-licentie, maar niet open is, omdat deze een discriminerende vereiste bevat om onder de SSPL-licentie niet alleen de applicatiecode zelf, maar ook de broncode te leveren code van alle componenten die betrokken zijn bij het aanbieden van de clouddienst.

MongoDB ondersteunt het opslaan van documenten in een JSON-achtig formaat, heeft een vrij flexibele taal voor het genereren van zoekopdrachten, kan indexen maken voor verschillende opgeslagen attributen, biedt efficiënt opslag van grote binaire objecten, ondersteunt het loggen van bewerkingen voor het wijzigen en toevoegen van gegevens aan de database, kan werkt volgens het paradigma Map/Reduce, ondersteunt replicatie en constructie van fouttolerante configuraties.

MongoDB heeft ingebouwde tools voor het leveren van sharding (het distribueren van een set gegevens over servers op basis van een specifieke sleutel), in combinatie met replicatie, waardoor u een horizontaal schaalbaar opslagcluster kunt bouwen waarin er geen enkel punt van storing is (het falen van welk knooppunt dan ook heeft geen invloed op de werking van de database), automatisch herstel na een storing en overdracht van belasting van een defect knooppunt. Het uitbreiden van een cluster of het omzetten van één server in een cluster gebeurt zonder de database te stoppen door simpelweg nieuwe machines toe te voegen.

Kenmerken van de nieuwe release:

  • Verzamelingen toegevoegd voor gegevens in de vorm van een tijdreeks (tijdreeksverzamelingen), geoptimaliseerd voor het opslaan van segmenten van parameterwaarden die met bepaalde intervallen zijn opgenomen (tijd en een reeks waarden die overeenkomen met deze tijd). De noodzaak om dergelijke gegevens op te slaan ontstaat in monitoringsystemen, financiële platforms en systemen voor het opvragen van sensorstatussen. Het werken met tijdreeksgegevens gebeurt op dezelfde manier als bij gewone documentverzamelingen, maar de indexen en opslagmethode daarvoor zijn geoptimaliseerd, rekening houdend met de tijdreferentie, wat het verbruik van schijfruimte aanzienlijk kan verminderen, vertragingen bij het uitvoeren van zoekopdrachten kan verminderen en realtime gegevens mogelijk kan maken. analyse.

    MongoDB behandelt dergelijke collecties als beschrijfbare, niet-gematerialiseerde weergaven die zijn gebouwd op interne collecties die, wanneer ze worden ingevoegd, automatisch tijdreeksgegevens groeperen in een geoptimaliseerd opslagformaat. In dit geval wordt elk op tijd gebaseerd record op verzoek behandeld als een afzonderlijk document. Gegevens worden automatisch geordend en geïndexeerd op tijd (het is niet nodig om expliciet tijdindexen te maken).

  • Ondersteuning toegevoegd voor vensteroperatoren (analytische functies) waarmee u acties kunt uitvoeren met een specifieke set documenten in de collectie. In tegenstelling tot aggregatiefuncties vouwen vensterfuncties de gegroepeerde set niet samen, maar aggregeren ze eerder op basis van de inhoud van een “venster” dat een of meer documenten uit de resultatenset bevat. Om een ​​subset van documenten te manipuleren, wordt een nieuwe fase $setWindowFields voorgesteld, waarmee je bijvoorbeeld de verschillen tussen twee documenten in een collectie kunt bepalen, verkoopcijfers kunt berekenen en informatie in complexe tijdreeksen kunt analyseren.
  • Ondersteuning toegevoegd voor API-versiebeheer, waarmee u een applicatie aan een specifieke API-status kunt binden en de risico's kunt elimineren die gepaard gaan met een mogelijke schending van achterwaartse compatibiliteit bij het migreren naar nieuwe DBMS-releases. API-versiebeheer scheidt de levenscyclus van applicaties van de DBMS-levenscyclus en stelt ontwikkelaars in staat wijzigingen aan te brengen in de applicatie wanneer er behoefte is aan nieuwe functies, en niet wanneer ze migreren naar een nieuwe versie van het DBMS.
  • Ondersteuning toegevoegd voor het Live Resharding-mechanisme, waarmee u de shard-sleutels die voor segmentatie worden gebruikt, direct kunt wijzigen zonder het DBMS te stoppen.
  • De mogelijkheden voor het versleutelen van velden aan de clientzijde zijn uitgebreid (Client-Side Field Level Encryption). Het is nu mogelijk om auditfilters opnieuw te configureren en x509-certificaten te rouleren zonder het DBMS te stoppen. Ondersteuning toegevoegd voor het configureren van cipher suite voor TLS 1.3.
  • Er wordt een nieuwe opdrachtregelshell voorgesteld, MongoDB Shell (mongosh), die wordt ontwikkeld als een afzonderlijk project, geschreven in JavaScript met behulp van het Node.js-platform en gedistribueerd onder de Apache 2.0-licentie. MongoDB Shell maakt het mogelijk om verbinding te maken met het DBMS, instellingen te wijzigen en queries te versturen. Ondersteunt slimme automatische aanvulling voor het invoeren van methoden, opdrachten en MQL-expressies, syntaxisaccentuering, contextuele hulp, het parseren van foutmeldingen en de mogelijkheid om de functionaliteit uit te breiden via add-ons. De oude "mongo" CLI-wrapper is verouderd en zal in een toekomstige release worden verwijderd.
    Documentgeoriënteerde DBMS MongoDB 5.0 beschikbaar
  • Er zijn nieuwe operators toegevoegd: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate en $rand.
  • Zorgt ervoor dat indexen worden gebruikt bij gebruik van de operatoren $eq, $lt, $lte, $gt en $gte binnen de expressie $expr.
  • De opdrachten aggregeren, find, findAndModify, update, delete en de methoden db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() en db.collection.remove() ondersteunen nu de “let ”-optie om een ​​lijst met variabelen te definiëren die opdrachten leesbaarder maken door variabelen te scheiden van de hoofdtekst van het verzoek.
  • De bewerkingen Vinden, tellen, onderscheiden, aggregeren, mapReduce, listCollections en listIndexen blokkeren niet langer als er parallel een bewerking wordt uitgevoerd die een exclusieve vergrendeling van een documentverzameling in beslag neemt.
  • Als onderdeel van een initiatief om politiek incorrecte termen te verwijderen, zijn de opdracht isMaster en de methode db.isMaster() hernoemd naar hello en db.hello().
  • Het releasenummeringsschema is gewijzigd en er is overgegaan op een voorspelbaar releaseschema. Eén keer per jaar zal er een aanzienlijke release zijn (5.0, 6.0, 7.0), elke drie maanden tussentijdse releases met nieuwe functies (5.1, 5.2, 5.3) en, indien nodig, corrigerende updates met bugfixes en kwetsbaarheden (5.1.1, 5.1.2 .5.1.3, 5.1). Tussentijdse releases zullen functionaliteit bouwen voor de volgende grote release, d.w.z. MongoDB 5.2, 5.3 en 6.0 zullen nieuwe functies bieden voor de release van MongoDB XNUMX.

Bron: opennet.ru

Voeg een reactie