ການປ່ອຍທີ່ຫມັ້ນຄົງຄັ້ງທໍາອິດຂອງ FerretDB, ການປະຕິບັດ MongoDB ໂດຍອີງໃສ່ PostgreSQL DBMS

Опубликован выпуск проекта FerretDB 1.0, позволяющего заменить документо-ориентированную СУБД MongoDB на PostgreSQL без внесения изменений в код приложений. FerretDB реализован как прокси-сервер, транслирующий обращения к MongoDB в SQL-запросы к PostgreSQL, что позволяет использовать PostgreSQL в качестве фактического хранилища. Версия 1.0 отмечена как первый стабильный выпуск, готовый для повсеместного использования. Код написан на языке Go и распространяется под лицензией Apache 2.0.

Основной целевой аудиторией FerretDB являются пользователи, которые не применяют в своих приложениях расширенные возможности MongoDB, но желают использовать полностью открытый программный стек. На текущем этапе развития FerretDB поддерживает подмножество возможностей MongoDB, наиболее часто применяемых в типовых приложениях. Необходимость внедрения FerretDB может возникнуть в связи с переходом MongoDB на несвободную лицензию SSPL, которая основана на лицензии AGPLv3, но не является открытой, так как содержит дискриминирующее требование поставки под лицензией SSPL не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

MongoDB ຄອບຄອງຊ່ອງຫວ່າງລະຫວ່າງລະບົບທີ່ໄວ ແລະສາມາດຂະຫຍາຍໄດ້ທີ່ເຮັດວຽກກ່ຽວກັບຂໍ້ມູນທີ່ສໍາຄັນ/ມູນຄ່າ ແລະ DBMSs ທີ່ກ່ຽວຂ້ອງທີ່ມີປະໂຫຍດ ແລະງ່າຍຕໍ່ການສອບຖາມ. MongoDB ສະຫນັບສະຫນູນການເກັບຮັກສາເອກະສານໃນຮູບແບບ JSON, ມີພາສາທີ່ມີຄວາມຍືດຫຍຸ່ນພໍສົມຄວນສໍາລັບການສ້າງແບບສອບຖາມ, ສາມາດສ້າງດັດສະນີສໍາລັບຄຸນລັກສະນະທີ່ເກັບຮັກສາໄວ້ຕ່າງໆ, ສະຫນອງການເກັບຮັກສາວັດຖຸສອງຂະຫນາດໃຫຍ່ຢ່າງມີປະສິດທິພາບ, ສະຫນັບສະຫນູນການບັນທຶກການດໍາເນີນງານເພື່ອປ່ຽນແປງແລະເພີ່ມຂໍ້ມູນໃສ່ຖານຂໍ້ມູນ, ສາມາດ ເຮັດ​ວຽກ​ໃຫ້​ສອດ​ຄ່ອງ​ກັບ paradigm ແຜນ​ທີ່ / ຫຼຸດ​ຜ່ອນ​, ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ຈໍາ​ລອງ​ແລະ​ການ​ກໍ່​ສ້າງ​ການ​ຕັ້ງ​ຄ່າ​ຄວາມ​ຜິດ​ພາດ​ທົນ​ທານ​ຕໍ່​.

ໃນບັນດາການປ່ຽນແປງໃນ FerretDB 1.0:

  • Реализованы команды createIndexes и dropIndexes для создания и удаления одного или нескольких индексов к коллекции.
  • Реализована команда getMore для вывода новой порции результата, полученного при выполнении команд, возвращающих курсор, таких как find и aggregate.
  • Добавлена поддержка агрегирующего оператора $sum для вычисления суммы значений группы.
  • Добавлена поддержка операторов $limit и $skip для ограничения числа и пропуска документов при агрегировании.
  • Добавлена поддержка оператора $count для подсчёта документов при агрегировании.
  • Добавлена поддержка оператора $unwind для разбора полей массива во входящих документах и формирования списка с отдельным документом для каждого элемента массива.
  • Добавлена частичная поддержка команд collStats, dbStats и dataSize для получения статистики о коллекции и БД, а также размере данных.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ