Microsoft DocumentDB
Microsoft DocumentDB[2] або Azure DocumentDB[3] — проект Microsoft, який може використовуватися як окрема СКБД NoSQL, як платформа для створення власних систем зберігання або як застосунок для зберігання даних у форматі BSON в СКБД PostgreSQL. На практиці DocumentDB застосовується в Microsoft як основа продукту Azure Cosmos DB for MongoDB, що надає інтерфейс, сумісний з документо-орієнтованою СКБД MongoDB. Код проекту написаний мовою Сі та поширюється під ліцензією MIT.[4] Рушій DocumentDB реалізований у формі надбудови над СКБД PostgreSQL. ОглядЯк і MongoDB для зберігання структурованих документів в DocumentDB задіяний JSON-подібний формат BSON (Binary JSON), що дозволяє створювати ієрархічні структури, в яких одні документи та масиви можуть вбудовуватися в інші документи та масиви. Ключовою відмінністю від JSON є використання серіалізації даних у бінарному представленні. Проект надає як NoSQL-операції для створення, читання, оновлення та видалення даних у форматі BSON, так і API для штатного PostgreSQL (DocumentDB може розглядатися як варіант PostgreSQL із підтримкою BSON). У DocumentDB можуть використовуватись можливості повнотекстового пошуку, операції над векторними та геопросторовими типами даних. Проект складається з двох компонентів:
Перший випуск DocumentDB надає підтримку операцій CRUD (створення, читання, оновлення, видалення), індекси для окремих полів BSON, індекси для повнотекстового пошуку (сумісні з RUM), векторні та геопросторові запити (сумісні з pg_vector та postgis), можливості для формування запитів та агрегування даних BSON. ВикористанняНа використання DocumentDB вже перейшов проект FerretDB, який розвиває реалізацію СКБД MongoDB на базі СУБД PostgreSQL. FerretDB дозволяє без внесення змін до коду програм замінити пропрієтарну документо-орієнтовану СКБД MongoDB на повністю відкритий програмний стек, заснований на PostgreSQL. Необхідність заміни MongoDB пояснюється переходом даної СКБД на ліцензію SSPL, яка заснована на ліцензії AGPLv3, але не є відкритою, оскільки містить дискримінуючу вимогу поставки під ліцензією SSPL не тільки коду самого застосунка, але і сирцевих текстів всіх компонентів, залучених у надання хмарного сервісу. Спочатку робота FerretDB зводилася до трансляції звернень до MongoDB до SQL-запитів до PostgreSQL, але починаючи з версії FerretDB 2.0, для реалізації підтримки формату BSON задіяно PosgreSQL-розширення DocumentDB. Перехід на використання DocumentDB дозволив більш ніж 20 разів підвищити продуктивність FerretDB для деяких видів навантаження. З інших нововведень FerretDB 2.0 відзначається покращення сумісності з MongoDB, можливість реплікації та підтримка векторного пошуку. Код FerretDB написаний мовою Go та поширюється під ліцензією Apache 2.0. ВиноскиПосилання |
Portal di Ensiklopedia Dunia