По информации OpenNET и Phoronix, на практике DocumentDB применяется в Microsoft в качестве основы продукта Azure Cosmos DB for MongoDB, предоставляющего интерфейс, совместимый с документо‑ориентированной СУБД MongoDB.
Исходный код проекта DocumentDB написан на языке C и опубликован на GitHub под лицензией MIT. Движок проекта DocumentDB реализован в форме надстройки над СУБД PostgreSQL.
Как и в MongoDB для хранения структурированных документов в DocumentDB задействован JSON‑подобный формат BSON (Binary JSON), позволяющий создавать иерархические структуры, в которых одни документы и массивы могут встраиваться в другие документы и массивы. Ключевым отличием от JSON является использование сериализации данных в бинарное представление. Проект предоставляет как NoSQL‑операции для создания, чтения, обновления и удаления данных в формате BSON, так и API для штатного PostgreSQL (DocumentDB может рассматриваться как вариант PostgreSQL с поддержкой BSON). В DocumentDB могут использоваться возможности полнотекстового поиска, операции над векторными и геопространственными типами данных.
Проект DocumentDB состоит из двух компонентов:
pg_documentdb_core — расширение к PostgreSQL с реализацией типа BSON и операций для работы в PostgreSQL с данными BSON.
pg_documentdb — общедоступный API DocumentDB с базовыми операциями для работы с документами в формате BSON, обработки запросов и управления индексами.
Первый выпуск DocumentDB предоставляет поддержку операций CRUD (создание, чтение, обновление, удаление), индексы для отдельных полей BSON, индексы для полнотекстового поиска (совместимы с RUM), векторные и геопространственные запросы (совместимые с pg_vector и postgis), возможности для формирования запросов и агрегирования данных BSON.
Обсудить