Dostupan je dokumentno orijentisan DBMS MongoDB 5.0

Predstavljeno je izdanje dokumentno orijentisanog DBMS MongoDB 5.0, koji zauzima nišu između brzih i skalabilnih sistema koji operišu podacima u formatu ključ/vrijednost i relacionih DBMS-a koji su funkcionalni i laki za formiranje upita. MongoDB kod je napisan na C++ i distribuira se pod SSPL licencom, koja je zasnovana na AGPLv3 licenci, ali nije otvorena, jer sadrži diskriminatorni zahtjev da se pod SSPL licencom isporuči ne samo kod aplikacije, već i izvorni kod šifra svih komponenti uključenih u pružanje usluge u oblaku.

MongoDB podržava pohranjivanje dokumenata u JSON formatu, ima prilično fleksibilan jezik za generiranje upita, može kreirati indekse za različite pohranjene atribute, efikasno obezbjeđuje skladištenje velikih binarnih objekata, podržava evidentiranje operacija za promjenu i dodavanje podataka u bazu podataka, može radi u skladu sa paradigmom Map/Reduce, podržava replikaciju i izgradnju konfiguracija otpornih na greške.

MongoDB ima ugrađene alate za pružanje dijeljenja (distribucija skupa podataka preko servera na osnovu specifičnog ključa), u kombinaciji s replikacijom, omogućavajući vam da izgradite horizontalno skalabilni klaster za pohranu u kojem ne postoji jedna tačka kvara (kvar bilo kojeg čvora ne utječe na rad baze podataka), automatski oporavak nakon kvara i prijenos opterećenja sa neuspjelog čvora. Proširivanje klastera ili pretvaranje jednog servera u klaster se vrši bez zaustavljanja baze podataka jednostavnim dodavanjem novih mašina.

Karakteristike novog izdanja:

  • Dodane kolekcije za podatke u obliku vremenske serije (kolekcije vremenskih serija), optimizirane za pohranjivanje isječaka vrijednosti parametara snimljenih u određenim intervalima (vrijeme i skup vrijednosti koji odgovaraju ovom vremenu). Potreba za skladištenjem takvih podataka javlja se u sistemima za praćenje, finansijskim platformama i sistemima za ispitivanje stanja senzora. Rad s podacima o vremenskim serijama odvija se kao i sa običnim zbirkama dokumenata, ali su indeksi i način skladištenja za njih optimizirani uzimajući u obzir vremensku referencu, što može značajno smanjiti potrošnju prostora na disku, smanjiti kašnjenja u izvršavanju upita i omogućiti podatke u stvarnom vremenu. analiza.

    MongoDB tretira takve kolekcije kao upisljive, nematerijalizovane poglede izgrađene na internim zbirkama koje, kada se umetnu, automatski grupišu podatke vremenske serije u optimizovani format skladištenja. U ovom slučaju, svaki zapis zasnovan na vremenu se tretira kao poseban dokument kada se to zatraži. Podaci se automatski poređaju i indeksiraju prema vremenu (nema potrebe za eksplicitnim kreiranjem vremenskih indeksa).

  • Dodata podrška za operatore prozora (analitičke funkcije) koji vam omogućavaju da izvršite radnje sa određenim skupom dokumenata u kolekciji. Za razliku od agregatnih funkcija, funkcije prozora ne sažimaju grupirani skup, već se agregiraju na osnovu sadržaja „prozora“ koji uključuje jedan ili više dokumenata iz skupa rezultata. Za manipuliranje podskupom dokumenata, predložena je nova faza $setWindowFields, pomoću koje možete, na primjer, odrediti razlike između dva dokumenta u kolekciji, izračunati rangiranje prodaje i analizirati informacije u složenim vremenskim serijama.
  • Dodata podrška za verzioniranje API-ja, koja vam omogućava da povežete aplikaciju sa određenim API stanjem i eliminišete rizike povezane s mogućim kršenjem kompatibilnosti unatrag prilikom migracije na nova izdanja DBMS-a. Upravljanje verzijama API-ja odvaja životni ciklus aplikacije od životnog ciklusa DBMS-a i omogućava programerima da izvrše promjene u aplikaciji kada postoji potreba za korištenjem novih mogućnosti, a ne kada se migriraju na novu verziju DBMS-a.
  • Dodata podrška za Live Resharding mehanizam, koji vam omogućava da u hodu promijenite ključeve koji se koriste za segmentaciju bez zaustavljanja DBMS-a.
  • Proširene su mogućnosti šifriranja polja na strani klijenta (Client-Side Field Level Encryption). Sada je moguće rekonfigurirati filtre revizije i rotirati x509 certifikate bez zaustavljanja DBMS-a. Dodata podrška za konfigurisanje paketa šifri za TLS 1.3.
  • Predložena je nova ljuska komandne linije, MongoDB Shell (mongosh), koja se razvija kao poseban projekat, napisana u JavaScript-u koristeći Node.js platformu i distribuirana pod licencom Apache 2.0. MongoDB Shell omogućava povezivanje na DBMS, promjenu postavki i slanje upita. Podržava pametno automatsko dovršavanje za unos metoda, naredbi i MQL izraza, isticanje sintakse, kontekstualnu pomoć, raščlanjivanje poruka o greškama i mogućnost proširenja funkcionalnosti putem dodataka. Stari "mongo" CLI omot je zastario i bit će uklonjen u budućem izdanju.
    Dostupan je dokumentno orijentisan DBMS MongoDB 5.0
  • Dodati su novi operatori: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate i $rand.
  • Osigurava da se koriste indeksi kada se koriste operatori $eq, $lt, $lte, $gt i $gte unutar izraza $expr.
  • Komande agregata, find, findAndModify, update, delete i db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() i db.collection.remove() sada podržavaju „neka ” opcija za definiranje liste varijabli koje čine naredbe čitljivijim odvajanjem varijabli od tijela zahtjeva.
  • Operacije pronalaženja, brojanja, razlikovanja, agregiranja, mapReduce, listCollections i listIndexes više ne blokiraju ako se paralelno izvodi operacija koja preuzima ekskluzivno zaključavanje zbirke dokumenata.
  • Kao dio inicijative za uklanjanje politički nekorektnih termina, naredba isMaster i metoda db.isMaster() preimenovane su u hello i db.hello().
  • Šema numeriranja izdanja je promijenjena i napravljen je prijelaz na predvidljiv raspored izdanja. Jednom godišnje bit će značajno izdanje (5.0, 6.0, 7.0), svaka tri mjeseca srednja izdanja s novim funkcijama (5.1, 5.2, 5.3) i, po potrebi, ispravke grešaka i ranjivosti (5.1.1, 5.1.2 .5.1.3 , 5.1). Privremena izdanja će izgraditi funkcionalnost za sljedeće veliko izdanje, tj. MongoDB 5.2, 5.3 i 6.0 će pružiti nove karakteristike za izdanje MongoDB XNUMX.

izvor: opennet.ru

Dodajte komentar