Перейти до вмісту

Microsoft DocumentDB

Матеріал з Вікіпедії — вільної енциклопедії.
Microsoft DocumentDB
Тип
РозробникMicrosoft
Перший випускгрудень 2023; рік тому (2023-12)[1]
Операційна системакрос-платформовий
Доступні мовиEnglish
Ліцензіяліцензія MIT
Вебсайтgithub.com/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 можуть використовуватись можливості повнотекстового пошуку, операції над векторними та геопросторовими типами даних.

Проект складається з двох компонентів:

  • pg_documentdb_core — розширення до PostgreSQL з реалізацією типу BSON та операцій для роботи у PostgreSQL з даними BSON.
  • pg_documentdb — загальнодоступний API DocumentDB з базовими операціями для роботи з документами у форматі BSON, обробки запитів та керування індексами.

Перший випуск 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.

Виноски

[ред. | ред. код]

Посилання

[ред. | ред. код]