Dela via


DocumentDB: Open-Source-motorn som driver Azure Cosmos DB för MongoDB vCore

Azure Cosmos DB for MongoDB vCore bygger på DocumentDB, en dokumentdatabasplattform med öppen källkod. Den här artikeln innehåller en översikt över DocumentDB, dess funktioner, arkitektur och hur du kan bidra till eller använda den här tekniken.

Vad är DocumentDB?

DocumentDB är en helt tillåtande plattform med öppen källkod för dokumentdatalager som bygger på PostgreSQL-motorn. Det fungerar som grunden för Azure Cosmos DB for MongoDB vCore, vilket ger en kraftfull och flexibel lösning för NoSQL-databasbehov.

DocumentDB är en verkligt Open-Source MongoDB-implementering

Till skillnad från andra MongoDB-motorer med restriktiv licensiering, till exempel SSPL, använder DocumentDB den tillåtande MIT-licensen. Det innebär att utvecklare har fullständig frihet att använda, ändra och distribuera programvaran utan några kommersiella licensavgifter eller användningsbegränsningar. Till skillnad från MongoDB:s offentliga licens på serversidan (SSPL), som kan begränsa vissa användningsområden, garanterar DocumentDB:s MIT-licens verklig frihet med öppen källkod.

DocumentDB är multimoln och leverantörsoberoende

DocumentDB tillhandahåller en portabel, driftskompatibel lösning för dokumentdatalager. Den bygger på PostgreSQL och gör det möjligt för utvecklare att distribuera sina program mellan olika molnleverantörer eller lokalt, vilket undviker leverantörslåsning. Den här flexibiliteten gör det möjligt för organisationer att välja den bästa infrastrukturen för sina behov utan att kompromissa med databasfunktionerna.

DocumentDB bygger på PostgreSQL, en Game-Changer för NoSQL-databaser

När skillnaden mellan NoSQL och relationsdatabaser blir mer suddig överbryggar DocumentDB det här gapet för att ge en överlägsen dokumentdatabasupplevelse för de flesta skalbara arbetsbelastningar. Den kombinerar styrkan hos båda sidor och erbjuder flexibilitet och skalbarhet som vanligtvis är associerad med NoSQL-databaser, samtidigt som du utnyttjar kraften och den omfattande funktionsuppsättningen i PostgreSQL – en av de mest antagna och respekterade databaserna med öppen källkod idag. Den här grunden ger robusthet, tillförlitlighet och åtkomst till PostgreSQL:s ekosystem med verktyg och tillägg. Utvecklare kan dra nytta av PostgreSQL:s kontinuerliga utveckling och omfattande communitystöd samtidigt som de får flexibiliteten i en dokumentdatabas.

Viktiga funktioner

DocumentDB erbjuder flera viktiga funktioner som gör det till ett robust val för dokumentdatabasåtgärder:

  • BSON-dokumentparsning och manipulering: Hantera effektivt BSON-dokument (Binary JSON) på alla kapslingsnivåer.
  • Avancerade indexeringsfunktioner: Stöd för enkla fält, multinyckelindex, sammansatta index, text och geospatiala index.
  • Vektorsökningsfrågor: Drivs av pg_vector PostgreSQL-tillägget som möjliggör olika AI- och maskininlärningsprogram.
  • Autentiseringsmekanism: Innehåller SCRAM-autentisering (Salted Challenge Response Authentication Mechanism).
  • Geospatiala frågor: Använda funktionerna i PostGIS-tillägget.
  • Fullständigt stöd för Decimal128: Drivs av Intel Floating Point Math Library.
  • Regex-stöd: Använda PCRE2-projektet

Arkitektur

DocumentDB består av två primära komponenter:

  1. pg_documentdb_core: Ett anpassat PostgreSQL-tillägg som optimerar BSON-stöd för datatyper i PostgreSQL.
  2. pg_documentdb_api: Dataplanet som implementerar CRUD-åtgärder, frågefunktioner och indexhantering.

Med den här arkitekturen kan du skapa en NoSQL-databasanvändarupplevelse från slutpunkt till slutpunkt ovanpå PostgreSQL-motorn.

Bidra till DocumentDB

Som ett projekt med öppen källkod välkomnar DocumentDB bidrag från communityn. Du kan bidra genom att:

  • Medverkande, förgrening och sändning av pull-begäranden på GitHub
  • Rapportera problem eller föreslå förbättringar
  • Delta i diskussioner om #documentdb kanal på Microsoft OSS Discord-servern

Komma igång med DocumentDB

Så här börjar du använda DocumentDB lokalt:

1. Installera Docker.

2. Klona DocumentDB-lagringsplatsen.

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

3. Skapa Docker-avbildningen. Gå till klonad lagringsplats.

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

4. Kör Docker-avbildningen som en container.

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

5. Skapa och distribuera binärfilerna.

cd code
make
sudo make install

6. Initiera DocumentDB-servern och hantera beroenden.

./scripts/start_oss_server.sh -t documentdb

7. Anslut till psql-gränssnittet.

psql -p 9712 -h localhost -d postgres

När du har följt de här stegen är du nu inställd på att använda DocumentDB lokalt.

Vanliga frågor och svar

Vad är DocumentDB och hur relaterar det till Azure Cosmos DB för MongoDB vCore?

DocumentDB är en helt tillåtande plattform med öppen källkod för dokumentdatalager som bygger på PostgreSQL-motorn. Det fungerar som grunden för Azure Cosmos DB for MongoDB vCore, vilket ger en kraftfull och flexibel lösning för NoSQL-databasbehov.

Hur skiljer sig DocumentDB:s licensiering från andra MongoDB-implementeringar?

DocumentDB använder den tillåtande MIT-licensen, som ger utvecklare fullständig frihet att använda, ändra och distribuera programvaran utan några kommersiella licensavgifter eller användningsbegränsningar. Detta står i kontrast till vissa MongoDB-leverantörers offentliga licens på serversidan (SSPL), som kan begränsa vissa användningsområden.

Kan DocumentDB användas mellan olika molnleverantörer?

Ja, DocumentDB är multimoln och leverantörsoberoende. Den bygger på PostgreSQL och gör det möjligt för utvecklare att distribuera sina program mellan olika molnleverantörer eller lokalt, undvika leverantörslåsning och ge flexibilitet när de väljer den bästa infrastrukturen för sina behov.

Vilka är de viktigaste funktionerna i DocumentDB?

DocumentDB erbjuder flera viktiga funktioner, inklusive BSON-dokumentparsing och manipulering, avancerade indexeringsfunktioner (enskilt fält, multinyckel, sammansatt, text och geospatial), vektorsökningsfrågor som drivs av pg_vector, autentiseringsmekanismer som SCRAM, geospatiala frågor med PostGIS, fullständigt stöd för Decimal128 och regex-stöd med HJÄLP av PCRE2.

Hur kan utvecklare bidra till DocumentDB?

Utvecklare kan bidra till DocumentDB genom att stjärnmarkera, forka och skicka pull-begäranden på GitHub, rapportera problem eller föreslå förbättringar, och delta i diskussioner på kanalen #documentdb på Microsoft OSS Discord-servern.