Sdílet prostřednictvím


DocumentDB: Open-Source Engine, který pohání Azure DocumentDB

Azure DocumentDB je založená na open source platformě databáze dokumentů DocumentDB. Tento článek obsahuje přehled DocumentDB, jeho funkcí, architektury a způsobu, jakým můžete přispívat k této technologii nebo ji používat.

Co je DocumentDB?

DocumentDB je plně přístupná opensourcová platforma pro úložiště dokumentů založená na modulu PostgreSQL. Slouží jako základ pro Azure DocumentDB a poskytuje výkonné a flexibilní řešení pro potřeby databáze NoSQL.

DocumentDB je skutečně Open-Source implementace MongoDB

Na rozdíl od jiných modulů MongoDB s omezujícími licencemi, jako je SSPL, DocumentDB používá permisivní licenci MIT. To znamená, že vývojáři mají úplnou svobodu používat, upravovat a distribuovat software bez jakýchkoli poplatků za komerční licencování nebo omezení používání. Na rozdíl od veřejné licence Na straně serveru MongoDB (SSPL), která může omezit určitá použití, zaručuje licence DocumentDB MIT skutečnou opensourcovou svobodu.

DocumentDB je multicloudová a nezávislá na dodavateli

DocumentDB poskytuje přenosné a interoperabilní řešení pro úložiště dat dokumentů. Založený na PostgreSQL umožňuje vývojářům nasazovat své aplikace napříč různými poskytovateli cloudu nebo místním prostředím a vyhnout se tak uzamčení dodavatele. Tato flexibilita organizacím umožňuje zvolit si nejlepší infrastrukturu pro své potřeby, aniž by to ovlivnilo možnosti databáze.

DocumentDB je založená na PostgreSQL, Game-Changer pro databáze NoSQL.

Vzhledem k tomu, že rozdíl mezi NoSQL a relačními databázemi je rozmazanější, DocumentDB tuto mezeru přemostí, aby poskytoval vynikající prostředí pro databáze dokumentů pro většinu škálovatelných úloh. Kombinuje silné stránky obou stran a nabízí flexibilitu a škálovatelnost, která je obvykle spojená s databázemi NoSQL, a současně využívá výkon a rozsáhlou sadu funkcí PostgreSQL – jednu z nejschválenějších a respektovaných opensourcových databází dnes. Tento základ poskytuje odolnost, spolehlivost a přístup k ekosystému nástrojů a rozšíření PostgreSQL. Vývojáři můžou těžit z průběžného vývoje PostgreSQL a rozsáhlé podpory komunity a zároveň využívat flexibilitu databáze dokumentů.

Klíčové funkce

DocumentDB nabízí několik klíčových funkcí, díky kterým je robustní volbou pro operace s dokumentovou databází:

  • Analýza a manipulace s dokumentem BSON: Efektivní zpracování dokumentů Binary JSON (BSON) na všech úrovních vnoření
  • Pokročilé možnosti indexování: Podpora jednoho pole, více klíčů, složených, textových a geoprostorových indexů
  • Vektorové vyhledávací dotazy: Využívá se rozšíření pg_vector PostgreSQL, které umožňuje různé aplikace umělé inteligence a strojového učení.
  • Mechanismus ověřování: Zahrnuje ověřování SCRAM (Salted Challenge Response Authentication Mechanism).
  • Geoprostorové dotazy: Použití funkcí rozšíření PostGIS
  • Plná podpora Decimal128: Používá Intel Floating Point Math Library.
  • Podpora regulárních výrazů: Využití projektu PCRE2

Architecture

DocumentDB se skládá ze dvou primárních komponent:

  1. pg_documentdb_core: Vlastní rozšíření PostgreSQL, které optimalizuje podporu datových typů BSON v PostgreSQL.
  2. pg_documentdb_api: Rovina dat implementuje operace CRUD, funkce dotazů a správu indexů.

Tato architektura umožňuje vytvořit kompletní uživatelské prostředí databáze NoSQL nad modulem PostgreSQL.

Přispívání do DocumentDB

Jako opensourcový projekt documentDB vítá příspěvky od komunity. Přispívat můžete:

  • Hvězdičkování, forkování a zasílání žádostí o přijetí změn na GitHubu
  • Hlášení problémů nebo návrhy vylepšení
  • Účast v diskuzích na kanálu #documentdb na serveru Diskord Microsoft OSS

Začínáme s DocumentDB

Pokud chcete začít používat DocumentDB místně:

1. Nainstalujte Docker.

2. Naklonujte úložiště DocumentDB.

git clone https://github.com/documentdb/documentdb.git

3. Vytvořte image Dockeru. Přejděte do klonovaného úložiště.

docker build . -f .devcontainer/Dockerfile -t documentdb 

4. Spusťte image Dockeru jako kontejner.

docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash 

5. Sestavte a nasaďte binární soubory.

cd code
make
sudo make install

6. Inicializace serveru DocumentDB a správa závislostí.

./scripts/start_oss_server.sh -t documentdb

7. Připojte se k prostředí psql.

psql -p 9712 -h localhost -d postgres

Po provedení těchto kroků jste nyní připraveni používat DocumentDB lokálně.

FAQs

Co je DocumentDB a jak souvisí s Azure DocumentDB?

DocumentDB je plně přístupná opensourcová platforma pro úložiště dokumentů založená na modulu PostgreSQL. Slouží jako základ pro Azure DocumentDB a poskytuje výkonné a flexibilní řešení pro potřeby databáze NoSQL.

Jak se licencování DocumentDB porovnává s jinými implementacemi MongoDB?

DocumentDB používá licenci MIT, která vývojářům umožňuje úplnou svobodu používat, upravovat a distribuovat software bez jakýchkoli poplatků za komerční licencování nebo omezení využití. To je v kontrastu s Server Side Public License (SSPL) některých poskytovatelů MongoDB, která může omezit určitá použití.

Je možné DocumentDB používat napříč různými poskytovateli cloudu?

Ano, DocumentDB je vícecloudová a nezávislá na dodavateli. Založený na PostgreSQL umožňuje vývojářům nasazovat své aplikace napříč různými poskytovateli cloudu nebo místně, vyhnout se uzamčení dodavatele a zajistit flexibilitu při výběru nejlepší infrastruktury pro své potřeby.

Jaké jsou klíčové funkce DocumentDB?

DocumentDB nabízí několik klíčových funkcí, včetně analýzy a manipulace s dokumenty BSON, pokročilých funkcí indexování (jednoduché pole, víceklíčové, složené, textové a geoprostorové), vektorové vyhledávací dotazy využívající pg_vector, mechanismy ověřování včetně SCRAM, geoprostorových dotazů s využitím PostGIS, úplná podpora Decimal128 a podpora regulárních výrazů pomocí PCRE2.

Jak můžou vývojáři přispívat do DocumentDB?

Vývojáři mohou přispět do DocumentDB tím, že označí hvězdičkou, forkí a podávají pull requesty na GitHubu, hlásí problémy nebo navrhují vylepšení a účastní se diskusí na kanálu #documentdb na serveru Microsoft OSS Discord.