Dokumentorientert DBMS MongoDB 5.0 tilgjengelig

Utgivelsen av det dokumentorienterte DBMS MongoDB 5.0 presenteres, som opptar en nisje mellom raske og skalerbare systemer som opererer data i nøkkel/verdi-format, og relasjonelle DBMS-er som er funksjonelle og enkle å lage spørringer. MongoDB-koden er skrevet i C++ og distribuert under SSPL-lisensen, som er basert på AGPLv3-lisensen, men er ikke åpen, da den inneholder et diskriminerende krav om å levere under SSPL-lisensen ikke bare selve applikasjonskoden, men også kilden. kode for alle komponenter som er involvert i leveringen av skytjenesten.

MongoDB støtter lagring av dokumenter i et JSON-lignende format, har et ganske fleksibelt språk for å generere spørringer, kan lage indekser for ulike lagrede attributter, gir effektivt lagring av store binære objekter, støtter logging av operasjoner for å endre og legge til data til databasen, kan arbeid i samsvar med paradigmet Map/Reduce, støtter replikering og bygging av feiltolerante konfigurasjoner.

MongoDB har innebygde sharding-verktøy (distribuerer et datasett på tvers av servere basert på en spesifikk nøkkel), i kombinasjon med replikering, slik at du kan bygge en horisontalt skalerbar lagringsklynge som ikke har et enkelt feilpunkt (feil i noen node gjør ikke påvirke driften av databasen), automatisk failover og lastoverføring fra en mislykket node. Å utvide en klynge eller konvertere en server til en klynge gjøres uten å stoppe databasen ved å legge til nye maskiner.

Funksjoner i den nye utgivelsen:

  • Lagt til samlinger for data i form av en tidsserie (tidsseriesamlinger), optimalisert for lagring av deler av parameterverdier registrert med bestemte intervaller (tid og et sett med verdier som tilsvarer denne tiden). Behovet for å lagre slike data oppstår i overvåkingssystemer, økonomiske plattformer og systemer for polling av sensortilstander. Arbeid med tidsseriedata utføres som med vanlige dokumentsamlinger, men indeksene og lagringsmetoden for dem er optimert under hensyntagen til tidsreferansen, noe som kan redusere diskplassforbruket betydelig, redusere forsinkelser i utførelse av spørringer og muliggjøre sanntidsdata analyse.

    MongoDB behandler slike samlinger som skrivbare, ikke-materialiserte visninger bygget på interne samlinger som, når de settes inn, automatisk grupperer tidsseriedata i et optimalisert lagringsformat. I dette tilfellet behandles hver tidsbasert post som et separat dokument når det blir bedt om det. Data blir automatisk sortert og indeksert etter tid (det er ikke nødvendig å eksplisitt opprette tidsindekser).

  • Lagt til støtte for vindusoperatører (analytiske funksjoner) som lar deg utføre handlinger med et spesifikt sett med dokumenter i samlingen. I motsetning til aggregerte funksjoner, skjuler ikke vindusfunksjoner det grupperte settet, men samler snarere basert på innholdet i et "vindu" som inkluderer ett eller flere dokumenter fra resultatsettet. For å manipulere et undersett av dokumenter, foreslås et nytt $setWindowFields-trinn, hvor du for eksempel kan bestemme forskjellene mellom to dokumenter i en samling, beregne salgsrangeringer og analysere informasjon i komplekse tidsserier.
  • Lagt til støtte for API-versjon, som lar deg binde en applikasjon til en spesifikk API-tilstand og eliminere risikoen forbundet med et mulig brudd på bakoverkompatibilitet ved migrering til nye DBMS-utgivelser. API-versjonsstyring skiller applikasjonens livssyklus fra DBMS-livssyklusen og lar utviklere gjøre endringer i applikasjonen når det er behov for å bruke nye funksjoner, og ikke når de migrerer til en ny versjon av DBMS.
  • Lagt til støtte for Live Resharding-mekanismen, som lar deg endre shard-nøklene som brukes til segmentering i farten uten å stoppe DBMS.
  • Mulighetene for å kryptere felt på klientsiden er utvidet (Client-Side Field Level Encryption). Det er nå mulig å rekonfigurere revisjonsfiltre og rotere x509-sertifikater uten å stoppe DBMS. Lagt til støtte for å konfigurere chiffersuite for TLS 1.3.
  • Et nytt kommandolinjeskall, MongoDB Shell (mongosh), er foreslått, som utvikles som et eget prosjekt, skrevet i JavaScript ved bruk av Node.js-plattformen og distribuert under Apache 2.0-lisensen. MongoDB Shell gjør det mulig å koble til DBMS, endre innstillinger og sende spørringer. Støtter smart autofullføring for å legge inn metoder, kommandoer og MQL-uttrykk, syntaksutheving, kontekstuell hjelp, parsing av feilmeldinger og muligheten til å utvide funksjonaliteten gjennom tillegg. Den gamle "mongo" CLI-innpakningen er utdatert og vil bli fjernet i en fremtidig utgivelse.
    Dokumentorientert DBMS MongoDB 5.0 tilgjengelig
  • Nye operatorer er lagt til: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate og $rand.
  • Sikrer at indekser brukes når du bruker $eq-, $lt-, $lte-, $gt- og $gte-operatorene i $expr-uttrykket.
  • Aggreger, find, findAndModify, update, delete-kommandoer og db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() og db.collection.remove()-metodene støtter nå "la alternativet for å definere en liste over variabler som gjør kommandoer mer lesbare ved å skille variabler fra forespørselsteksten.
  • Finn, tell, distinkt, samle, mapReduce, listCollections og listIndex-operasjoner blokkerer ikke lenger hvis en operasjon som tar en eksklusiv lås på en dokumentsamling kjører parallelt.
  • Som en del av et initiativ for å fjerne politisk ukorrekte termer, har isMaster-kommandoen og db.isMaster()-metoden fått nytt navn til hello og db.hello().
  • Utgivelsesnummerordningen er endret og det er gjort overgang til en forutsigbar utgivelsesplan. En gang i året vil det komme en betydelig utgivelse (5.0, 6.0, 7.0), hver tredje måned mellomutgivelser med nye funksjoner (5.1, 5.2, 5.3) og, om nødvendig, korrigerende oppdateringer med feilrettinger og sårbarheter (5.1.1, 5.1.2) .5.1.3, 5.1). Midlertidige utgivelser vil bygge funksjonalitet for neste store utgivelse, dvs. MongoDB 5.2, 5.3 og 6.0 vil gi nye funksjoner for utgivelsen av MongoDB XNUMX.

Kilde: opennet.ru

Legg til en kommentar