Hujjatga yo'naltirilgan DBMS MongoDB 5.0 mavjud

Kalit/qiymat formatidagi ma'lumotlarni boshqaradigan tezkor va kengaytiriladigan tizimlar va funktsional va so'rovlarni shakllantirish oson bo'lgan relyatsion ma'lumotlar bazasi o'rtasida o'rinni egallagan hujjatga yo'naltirilgan MongoDB 5.0 ma'lumotlar bazasining chiqarilishi taqdim etiladi. MongoDB kodi C++ tilida yozilgan va AGPLv3 litsenziyasiga asoslangan SSPL litsenziyasi ostida tarqatiladi, lekin ochiq emas, chunki u SSPL litsenziyasi ostida nafaqat dastur kodini, balki manbani ham yetkazib berish uchun kamsituvchi talabni o'z ichiga oladi. bulut xizmatini taqdim etishda ishtirok etadigan barcha komponentlarning kodi.

MongoDB hujjatlarni JSON-ga o'xshash formatda saqlashni qo'llab-quvvatlaydi, so'rovlarni yaratish uchun juda moslashuvchan tilga ega, turli xil saqlangan atributlar uchun indekslarni yaratishi mumkin, katta ikkilik ob'ektlarning saqlanishini samarali ta'minlaydi, ma'lumotlar bazasiga ma'lumotlarni o'zgartirish va qo'shish operatsiyalarini ro'yxatga olishni qo'llab-quvvatlaydi. Xarita/Kamaytirish paradigmasiga muvofiq ishlash, xatoga chidamli konfiguratsiyalarni takrorlash va qurishni qo'llab-quvvatlaydi.

MongoDB-da replikatsiya bilan birgalikda shardingni ta'minlash (ma'lum bir kalit asosida ma'lumotlar to'plamini serverlar bo'ylab tarqatish) uchun o'rnatilgan vositalar mavjud bo'lib, ular gorizontal ravishda kengaytiriladigan saqlash klasterini yaratishga imkon beradi, unda bitta nosozlik (noto'g'rilik) mavjud. har qanday tugunning ma'lumotlar bazasining ishlashiga ta'sir qilmaydi), nosozlikdan keyin avtomatik tiklash va muvaffaqiyatsiz tugundan yukni uzatish. Klasterni kengaytirish yoki bitta serverni klasterga aylantirish oddiygina yangi mashinalarni qo'shish orqali ma'lumotlar bazasini to'xtatmasdan amalga oshiriladi.

Yangi nashrning xususiyatlari:

  • Vaqt seriyalari (vaqt seriyalari to'plamlari) ko'rinishidagi ma'lumotlar to'plamlari qo'shildi, ular ma'lum oraliqlarda qayd etilgan parametr qiymatlari bo'laklarini saqlash uchun optimallashtirilgan (vaqt va shu vaqtga to'g'ri keladigan qiymatlar to'plami). Bunday ma'lumotlarni saqlash zarurati monitoring tizimlarida, moliyaviy platformalarda va so'rov sensori holatlari tizimlarida paydo bo'ladi. Vaqt seriyalari ma'lumotlari bilan ishlash oddiy hujjatlar to'plamida bo'lgani kabi amalga oshiriladi, ammo ular uchun indekslar va saqlash usuli vaqt ma'lumotnomasini hisobga olgan holda optimallashtirilgan, bu diskdagi bo'sh joy sarfini sezilarli darajada kamaytirishi, so'rovlarni bajarishdagi kechikishlarni kamaytirishi va real vaqtda ma'lumotlarni taqdim etish imkonini beradi. tahlil.

    MongoDB bunday to'plamlarga ichki to'plamlar asosida qurilgan yoziladigan, materiallashtirilmagan ko'rinishlar sifatida qaraydi, ular kiritilganda vaqt seriyalari ma'lumotlarini optimallashtirilgan saqlash formatiga avtomatik ravishda guruhlaydi. Bunday holda, har bir vaqtga asoslangan yozuv so'ralganda alohida hujjat sifatida ko'rib chiqiladi. Ma'lumotlar avtomatik ravishda tartibga solinadi va vaqt bo'yicha indekslanadi (vaqt indekslarini aniq yaratish shart emas).

  • To'plamdagi ma'lum hujjatlar to'plami bilan harakatlarni amalga oshirishga imkon beruvchi oyna operatorlari uchun qo'shimcha qo'llab-quvvatlash (tahliliy funktsiyalar). Yig'ma funktsiyalardan farqli o'laroq, oyna funktsiyalari guruhlangan to'plamni siqmaydi, balki natijalar to'plamidan bir yoki bir nechta hujjatlarni o'z ichiga olgan "oyna" mazmuni asosida yig'iladi. Hujjatlar to'plamini manipulyatsiya qilish uchun yangi $setWindowFields bosqichi taklif etiladi, uning yordamida siz, masalan, to'plamdagi ikkita hujjat o'rtasidagi farqni aniqlashingiz, sotuvlar reytingini hisoblashingiz va murakkab vaqt seriyalaridagi ma'lumotlarni tahlil qilishingiz mumkin.
  • Ilovani ma'lum bir API holatiga bog'lash va yangi DBMS relizlariga o'tishda orqaga qarab muvofiqlikning mumkin bo'lgan buzilishi bilan bog'liq xavflarni bartaraf etish imkonini beruvchi API versiyasini qo'llab-quvvatlash qo'shildi. API versiyasi ilovaning hayot aylanishini DBMS hayot aylanishidan ajratib turadi va ishlab chiquvchilarga ma'lumotlar bazasining yangi versiyasiga o'tishda emas, balki yangi xususiyatlardan foydalanish zarurati tug'ilganda ilovaga o'zgartirishlar kiritish imkonini beradi.
  • DBMSni to'xtatmasdan, segmentlash uchun ishlatiladigan parcha kalitlarini tezda o'zgartirish imkonini beruvchi Live Resharding mexanizmi uchun qo'shimcha qo'llab-quvvatlash.
  • Mijoz tomonidagi maydonlarni shifrlash imkoniyatlari kengaytirildi (Client-Side Field Level Encryption). Endi ma'lumotlar bazasini to'xtatmasdan audit filtrlarini qayta sozlash va x509 sertifikatlarini aylantirish mumkin. TLS 1.3 uchun shifrlar to'plamini sozlash uchun qo'shilgan yordam.
  • Node.js platformasidan foydalangan holda JavaScript-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladigan alohida loyiha sifatida ishlab chiqilayotgan MongoDB Shell (mongosh) yangi buyruq qatori qobig'i taklif qilinmoqda. MongoDB Shell ma'lumotlar bazasiga ulanish, sozlamalarni o'zgartirish va so'rovlarni yuborish imkonini beradi. Usullar, buyruqlar va MQL ifodalarini kiritish, sintaksisni ta'kidlash, kontekst bo'yicha yordam, xato xabarlarini tahlil qilish va qo'shimchalar orqali funksionallikni kengaytirish uchun aqlli avtoto'ldirishni qo'llab-quvvatlaydi. Eski "mongo" CLI o'rami eskirgan va kelajakdagi versiyada olib tashlanadi.
    Hujjatga yo'naltirilgan DBMS MongoDB 5.0 mavjud
  • Yangi operatorlar qo'shildi: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate va $rand.
  • $expr ifodasida $eq, $lt, $lte, $gt va $gte operatorlaridan foydalanilganda indekslardan foydalanishni ta'minlaydi.
  • Agregatlash, topish, findAndModify, yangilash, o‘chirish buyruqlari va db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() va db.collection.remove() endi “let”ni qo‘llab-quvvatlaydi. ” opsiyasi oʻzgaruvchilarni soʻrov tanasidan ajratish orqali buyruqlarni oʻqilishi mumkin boʻlgan oʻzgaruvchilar roʻyxatini aniqlash.
  • Hujjatlar to'plamida eksklyuziv qulfni oladigan operatsiya parallel ravishda ishlayotgan bo'lsa, topish, sanash, farqlash, jamlash, mapReduce, listCollections va listIndexes operatsiyalari endi bloklanmaydi.
  • Siyosiy jihatdan noto'g'ri atamalarni olib tashlash tashabbusi doirasida isMaster buyrug'i va db.isMaster() usuli hello va db.hello() deb o'zgartirildi.
  • Chiqarish raqamlash sxemasi o'zgartirildi va bashorat qilinadigan relizlar jadvaliga o'tish amalga oshirildi. Yiliga bir marta muhim nashr (5.0, 6.0, 7.0), har uch oyda yangi funksiyalarga ega oraliq nashrlar (5.1, 5.2, 5.3) va kerak boʻlganda xatoliklar va zaifliklar (5.1.1, 5.1.2) tuzatuvchi yangilanishlar chiqariladi. .5.1.3 , 5.1). Vaqtinchalik nashrlar keyingi yirik nashr uchun funksionallikni yaratadi, ya'ni. MongoDB 5.2, 5.3 va 6.0 MongoDB XNUMX versiyasini chiqarish uchun yangi xususiyatlarni taqdim etadi.

Manba: opennet.ru

a Izoh qo'shish