Нахустин нашри устувори FerretDB, татбиқи MongoDB дар асоси DBMS PostgreSQL

Нашри лоиҳаи FerretDB 1.0 нашр шуд, ки ба шумо имкон медиҳад DBMS MongoDB-и ба ҳуҷҷат нигаронидашударо бо PostgreSQL бидуни ворид кардани тағирот ба коди барнома иваз кунед. FerretDB ҳамчун сервери прокси амалӣ карда мешавад, ки зангҳоро ба MongoDB ба дархостҳои SQL ба PostgreSQL тарҷума мекунад, ки ба шумо имкон медиҳад PostgreSQL-ро ҳамчун нигаҳдории воқеӣ истифода баред. Версияи 1.0 ҳамчун аввалин нашри устувори омода барои истифодаи умумӣ қайд карда шудааст. Рамз дар Go навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад.

Шунавандагони асосии мақсадноки FerretDB корбароне мебошанд, ки дар замимаҳои худ хусусиятҳои пешрафтаи MongoDB-ро истифода намебаранд, аммо мехоҳанд стеки нармафзори комилан кушодаро истифода баранд. Дар марҳилаи кунунии рушд, FerretDB як зермаҷмӯи хусусиятҳои MongoDB-ро, ки маъмулан дар барномаҳои маъмулӣ истифода мешаванд, дастгирӣ мекунад. Зарурати татбиқи FerretDB метавонад дар робита ба гузариши MongoDB ба литсензияи SSPL-и ғайриозод, ки ба литсензияи AGPLv3 асос ёфтааст, аммо кушода нест, зеро он дорои талаботи табъиз барои таъмин кардани иҷозатномаи SSPL на танҳо худи рамзи барнома, балки инчунин рамзҳои сарчашмаи ҳамаи ҷузъҳои марбут ба пешниҳоди хидматҳои абрӣ.

MongoDB ҷойгоҳи байни системаҳои зуд ва миқёспазирро ишғол мекунад, ки дар маълумотҳои калидӣ/арзиш ва DBMS-ҳои релятсионӣ кор мекунанд, ки функсионалӣ ва осон барои пурсиш мебошанд. MongoDB нигоҳдории ҳуҷҷатҳоро дар формати JSON дастгирӣ мекунад, барои тавлиди дархостҳо забони хеле фасеҳ дорад, метавонад барои атрибутҳои гуногуни захирашуда индексҳо эҷод кунад, нигоҳдории объектҳои дуии калонро самаранок таъмин кунад, сабти амалиётҳоро барои тағир додан ва илова кардани маълумот ба пойгоҳи додаҳо дастгирӣ мекунад, метавонад мувофиқи парадигмаи Харита/Коҳиш кор кунед, нусхабардорӣ ва сохтани конфигуратсияҳои ба хатогиҳо тобоварро дастгирӣ мекунад.

Дар байни тағйирот дар FerretDB 1.0:

  • Фармонҳои createIndexes ва dropIndexes барои эҷод ва партофтани як ё якчанд индекс ба коллексия амалӣ карда шуданд.
  • Фармони getMore барои намоиш додани қисми нави натиҷае, ки аз иҷрои фармонҳое, ки курсорро бармегардонанд, ба монанди дарёфт ва ҷамъоварӣ ба даст оварда шудааст, амалӣ карда шудааст.
  • Дастгирии оператори ҷамъкунии $sum барои ҳисоб кардани маблағи арзишҳои гурӯҳ илова карда шуд.
  • Дастгирии операторҳои $limit ва $skip барои маҳдуд кардани шумора ва гузаштани ҳуҷҷатҳо ҳангоми ҷамъоварӣ илова карда шуд.
  • Дастгирии оператори $count барои ҳисобкунии ҳуҷҷатҳо ҳангоми ҷамъоварӣ илова карда шуд.
  • Дастгирии иловагии оператори $unwind барои таҳлили майдонҳои массив дар ҳуҷҷатҳои воридотӣ ва ташкили рӯйхат бо ҳуҷҷати алоҳида барои ҳар як элементи массив.
  • Дастгирии қисман барои фармонҳои collStats, dbStats ва dataSize барои ба даст овардани омори ҷамъоварӣ ва пойгоҳи додаҳо ва андозаи додаҳо илова карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ