Даступная дакумента-арыентаваная СКБД MongoDB 5.0

Прадстаўлены выпуск дакумента-арыентаванай СКБД MongoDB 5.0, якая займае нішу паміж хуткімі і якія маштабуюцца сістэмамі, якія аперуюць дадзенымі ў фармаце ключ/значэнне, і рэляцыйнымі СКБД, функцыянальнымі і зручнымі ў фармаванні запытаў. Код MongoDB напісаны на мове C++ і распаўсюджваецца пад ліцэнзіяй SSPL, якая заснавана на ліцэнзіі AGPLv3, але не з'яўляецца адчыненай, бо ўтрымоўвае дыскрымінавальнае патрабаванне пастаўкі пад ліцэнзіяй SSPL не толькі кода самога прыкладанні, але і зыходных тэкстаў усіх кампанентаў, уцягнутых у падаванне хмарнага сэрвісу .

MongoDB падтрымлівае захоўванне дакументаў у JSON-падобным фармаце, мае досыць гнуткую мову для фармавання запытаў, можа ствараць індэксы для розных захоўваемых атрыбутаў, эфектыўна забяспечвае захоўванне вялікіх бінарных аб'ектаў, падтрымлівае часопісаванне аперацый па змене і даданню дадзеных у БД, можа працаваць у адпаведнасці з парадыгмай Map/Reduce, падтрымлівае рэплікацыю і пабудову адмоваўстойлівых канфігурацый.

У MongoDB маюцца ўбудаваныя сродкі па забеспячэнні сегментавання (размеркаванне набору дадзеных па серверах на аснове вызначанага ключа), у спалучэнні з рэплікацыяй якія дазваляюць пабудаваць гарызантальна які маштабуецца кластар захоўвання, у якім адсутнічае адзіная кропка адмовы (збой любога вузла не адбіваецца на працы БД), падтрымліваецца аўтаматычнае аднаўленне пасля збою і перанос нагрузкі з які выйшаў з ладу вузла. Пашырэнне кластара або пераўтварэнне аднаго сервера ў кластар вырабляецца без прыпынку працы БД простым даданнем новых машын.

Асаблівасці новага выпуску:

  • Дададзеныя калекцыі для дадзеных у форме часавага шэрагу (time series collections), аптымізаваныя для захоўвання зрэзаў значэнняў параметраў, якія запісваюцца праз пэўныя прамежкі часу (час і набор адпаведных гэтаму часу значэнняў). Неабходнасць у захоўванні падобных дадзеных узнікае ў сістэмах маніторынгу, фінансавых платформах, сістэмах апытання станаў датчыкаў. Праца з дадзенымі часавага шэрагу ажыццяўляецца як са звычайнымі калекцыямі дакументаў, але індэксы і метад захоўвання для іх аптымізаваны з улікам прывязкі да часу, што дазваляе значна скараціць спажыванне месца на дыску, паменшыць затрымкі пры выкананні запытаў і рэалізаваць магчымасць аналізу дадзеных у рэжыме рэальнага часу.

    MongoDB разглядае падобныя калекцыі як даступныя на запіс нематэрыялізаваныя ўяўленні, створаныя на базе ўнутраных калекцый і пры ўстаўцы аўтаматычна групуюць дадзеныя часавага шэрагу ў аптымізаваны фармат захоўвання. Пры гэтым кожны прывязаны да часу запіс пры запыце трактуецца як асобны дакумент. Дадзеныя аўтаматычна парадкуюцца і індэксуюцца па часе (няма неабходнасці ў відавочным стварэнні індэксаў па часе).

  • Дададзена падтрымка аконных аператараў (аналітычных функцый), якія дазваляюць выканаць дзеянні з вызначаным наборам дакументаў у калекцыі. У адрозненне ад агрэгатных функцый, аконныя функцыі не згортваюць згрупаваны набор, а вырабляюць агрэгавання на аснове змесціва «акна», які ўключае адзін ці больш дакументаў з выніковага набору. Для маніпуляцыі з падмноствам дакументаў прапанавана новая стадыя $setWindowFields, пры дапамозе якой можна, напрыклад, вызначыць адрозненні паміж двума дакументамі ў калекцыі, разлічыць рэйтынг продажаў і прааналізаваць інфармацыю ў складаных часавых шэрагах.
  • Дададзена падтрымка версіявання API, якая дазваляе прывязаць дадатак да вызначанага стану API і выключыць рызыкі, звязаныя з магчымым парушэннем зваротнай сумяшчальнасці пры пераходзе на новыя выпускі СКБД. Версіянаванне API адлучае жыццёвы цыкл прыкладання ад жыццёвага цыклу СКБД і дазваляе распрацоўнікам уносіць змены ў дадатак тады, калі ўзнікла запатрабаванне задзейнічаць новыя магчымасці, а не калі выконваецца пераход на новую версію СКБД.
  • Дададзена падтрымка механізму Live Resharding, які дазваляе на лёце мяняць выкарыстоўваныя для сегментавання ключы (shard key) без прыпынку СКБД.
  • Пашыраны магчымасці шыфравання палёў на баку кліента (Client-Side Field Level Encryption). З'явілася магчымасць пераналадкі фільтраў аўдыту і ратацыі сертыфікатаў x509 без прыпынку працы СКБД. Дададзена падтрымка налады набору шыфраў для TLS 1.3.
  • Прапанавана новая абалонка каманднага радка MongoDB Shell (mongosh), якая развіваецца як асобны праект, напісана на JavaScript з выкарыстаннем платформы Node.js і распаўсюджваецца пад ліцэнзіяй Apache 2.0. MongoDB Shell дае магчымасць падлучацца да СКБД, змяняць наладкі і адпраўляць запыты. Падтрымліваецца разумнае аўтадапаўненне ўводу метадаў, каманд і выразаў MQL, падсвятленне сінтаксісу, кантэкстная падказка, разбор паведамленняў аб памылках і магчымасць пашырэння функцыянальнасці праз дапаўненні. Старая CLI-абалонка "mongo" абвешчаная састарэлай і будзе выдаленая ў будучыні выпуску.
    Даступная дакумента-арыентаваная СКБД MongoDB 5.0
  • Дададзены новыя аператары: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate і $rand.
  • Забяспечана задзейнічанне індэксаў пры выкарыстанні аператараў $eq, $lt, $lte, $gt і $gte усярэдзіне выразаў $expr.
  • У камандах aggregate, find, findAndModify, update, delete і метадах db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() і db.collection.remove() рэалізавана падтрымка опцыі "let" для вызначэння спісу зменных, якія робяць каманды больш чытэльныя дзякуючы аддзяленню зменных ад тэксту запыту.
  • Аперацыі find, count, distinct, aggregate, mapReduce, listCollections і listIndexes зараз не блакуюцца, калі паралельна выконваецца аперацыя, якая выстаўляе эксклюзіўную блакіроўку на калекцыю дакументаў.
  • У рамках ініцыятывы па збавенні ад непаліткарэктных тэрмінаў каманда isMaster і метад db.isMaster() перайменаваны ў hello і db.hello().
  • Зменена схеме нумарацыі выпускаў і ажыццёўлены пераход на прадказальны графік фарміравання рэлізаў. Штогод будзе фарміравацца значны рэліз (5.0, 6.0, 7.0), раз на тры месяцы прамежкавыя выпускі з новымі магчымасцямі (5.1, 5.2, 5.3) і па меры неабходнасці карэкціруючыя абнаўленні з выпраўленнем памылак і ўразлівасцей (5.1.1, 5.1.2) , 5.1.3). У прамежкавых выпусках будзе фармавацца функцыянальнасць для наступнага значнага рэлізу, г.зн. у MongoDB 5.1, 5.2 і 5.3 будзе сфарміраваны новыя магчымасці для выпуску MongoDB 6.0.

Крыніца: opennet.ru

Дадаць каментар