Microsoft оголосила про відкриття вихідного коду DocumentDB
Microsoft радий оголосити про офіційний випуск DocumentDB - платформи бази даних документів з відкритим вихідним кодом і движка, на якому базується база даних Azure Cosmos DB на базі vCore для MongoDB, створена на PostgreSQL.
Бази даних NoSQL історично надавали хмарні рішення без загального стандарту взаємодії. Це призвело до зростання попиту на сумісний, переносимий і повністю підтримуваний готовий до виробництва локальний екземпляр сховища даних документів. Ми також вважають, що було б добре мати стандарт для баз даних NoSQL, щоб забезпечити більшу гнучкість як при виборі, так і при перемиканні між базами даних NoSQL. Більше того, за останнє десятиліття стався вибух популярності PostgreSQL у спільноті розробників. Таким чином, щоб задовольнити потреби спільноти в базах даних NoSQL і забезпечити загальне прийняття PostgreSQL, Microsoft запустили DocumentDB - повністю дозвільну платформу з відкритим вихідним кодом для сховищ даних документів, побудовану на потужному движку PostgreSQL.
Видимість
Місія DocumentDB - надати спільноті розробників сховище даних NoSQL, реалізоване з використанням PostgreSQL з повною прозорістю архітектури та реалізації двигуна. Усі основні компоненти движка бази даних від операцій CRUD (створення, читання, оновлення, видалення) до індексації та функціональності векторного пошуку загальнодоступні. Більш того, PostgreSQL пережив стрімке зростання популярності завдяки своєму постійно розвивається набору функцій і багатій екосистемі розширень. Microsoft вирішили запустити DocumentDB — повністю відкриту платформу на базі PostgreSQL, на якій можна побудувати досвід роботи з базою даних документів, щоб задовольнити потреби спільноти в базах даних NoSQL.
Ліцензування
Щоб підтримати справжній дух відкритого вихідного коду, проект використовує найбільш дозвільну ліцензію MIT, де розробники не мають обмежень на включення проекту до своїх нових та існуючих рішень. Немає жодних комерційних ліцензійних зборів, жодних обмежень на використання або розповсюдження та жодних хитрощів. Хоча внесок у проект завжди вітається та заохочується, немає жодних вимог до користувачів вносити свої налаштування, вклади та покращення назад у проект. Ліцензія MIT гарантує повну свободу для створення відгалужень репозиторію, використання та розповсюдження без будь-яких зобов'язань.
Стандарт із відкритим вихідним кодом
DocumentDB — це перша реалізація більш амбітної місії проекту зі створення стандарту баз даних документів з відкритим вихідним кодом, багато в чому схожого на стандарт SQL ANSI (Американський національний інститут стандартів) для реляційних баз даних. Створення стандарту NoSQL підвищить сумісність та взаємодію двигунів NoSQL у майбутньому. Мотивація стандарту - мінімізувати відмінності в загальнодоступних API (інтерфейсах прикладного програмування) та основах двигуна між реалізаціями баз даних NoSQL. Загалом це сприятиме поліпшенню досвіду розробників при підключенні баз даних документів і, що важливіше, при переключенні з однієї бази даних на іншу.
Архітектура
Проект складається із двох основних компонентів, які працюють разом для підтримки документообігу:
- pg_documentdb_core — розширення користувача PostgreSQL, що оптимізує підтримку типу даних BSON (Binary JavaScript Object Notation) в Postgres.
- pg_documentdb_api — Площина даних, що реалізує операції CRUD, функціональність запитів та керування індексами.
Для авторів
Внизу стека знаходиться шар pg_documentdb_core - повністю саморобне розширення Postgres для оптимізації підтримки типу даних BSON Це розширення надає наступні можливості:
- Можливість аналізу та обробки документів BSON на рівні Postgres ядра бази даних на всіх рівнях вкладеності документа BSON.
- Можливість індексувати поля в документі BSON, включаючи індекси окремих полів, багатоключові індекси, складові індекси для оптимізації критеріїв фільтрації запитів щодо кількох полів, текстові індекси, а також геопросторові індекси, що використовують можливості розширення PostGIS.
- Можливість виконання векторних пошукових запитів із використанням розширення Postgres pg_vector. Поширені варіанти використання включають:
- Генеративні програми ІІ, чат-боти, агенти ІІ
- Приклади використання виявлення шахрайства та аномалій у фінансових послугах
- Пошук подібності для систем рекомендацій продуктів у додатках роздрібної торгівлі
- Обробка природної мови
- Фільтрування контенту
- Шаблони RAG (Retrieval-Augmented Generation) для контекстно-релевантних пошукових відповідей
- Цілком функціональний механізм аутентифікації, включаючи аутентифікацію SCRAM (Salted Challenge Response Authentication Mechanism).
Ці функції в нижній частині стека послужать основою для створення наскрізного користувальницького досвіду бази даних NoSQL.
Для користувачів
Користувачі, які шукають готову до використання базу даних NoSQL, можуть використовувати існуюче рішення в FerretDB, що працює на DocumentDB як движок підтримки. той час, як користувачі можуть взаємодіяти з DocumentDB через Postgres, FerretDB 2.0 надає інтерфейс з протоколом бази даних документів FerretDB також має аналогічну дозвільну ліцензію Apache і значну присутність як у спільнотах Postgres, так і в спільнотах NoSQL.
Взаємодія із творцями проекту
Microsoft хоче заохочувати пряму взаємодію між творцями проекту та спільнотою розробників програмного забезпечення з відкритим вихідним кодом, оскільки Microsoft приступає до місії зробити Postgres найгнучкішою платформою баз даних NoSQL і приєднатися до Microsoft у створенні першого стандарту реалізації для документних баз даних. Відвідайте Microsoft на GitHub для отримання найактуальнішої інформації про дорожню карту та бачення проекту. Приєднуйтесь до каналу Discord Microsoft, вносьте свій внесок у ширше бачення та ділитесь відгуками щодо обговорень дизайну.