Condividi tramite


DocumentDB: motore di Open-Source che alimenta Azure DocumentDB

Azure DocumentDB è basato su DocumentDB, una piattaforma di database di documenti open source. Questo articolo offre una panoramica di DocumentDB, delle relative funzionalità, dell'architettura e del modo in cui è possibile contribuire o usare questa tecnologia.

Che cos'è DocumentDB?

DocumentDB è una piattaforma open source completamente permissiva per gli archivi dati dei documenti basati sul motore PostgreSQL. Funge da base per Azure DocumentDB, offrendo una soluzione potente e flessibile per le esigenze del database NoSQL.

DocumentDB è un'implementazione di MongoDB Open-Source

A differenza di altri motori MongoDB con licenze restrittive, ad esempio SSPL, DocumentDB usa la licenza MIT permissiva. Ciò significa che gli sviluppatori hanno la massima libertà di usare, modificare e distribuire il software senza costi di licenza commerciali o restrizioni di utilizzo. A differenza della licenza SSPL (Server Side Public License) di MongoDB, che può limitare determinati usi, la licenza MIT di DocumentDB garantisce una vera libertà open source.

DocumentDB è multicloud e indipendente dai fornitori

DocumentDB offre una soluzione portabile e interoperativa per gli archivi dati dei documenti. Basato su PostgreSQL, consente agli sviluppatori di distribuire le applicazioni in diversi provider di servizi cloud o in locale, evitando il blocco del fornitore. Questa flessibilità consente alle organizzazioni di scegliere l'infrastruttura migliore per le proprie esigenze senza compromettere le funzionalità del database.

DocumentDB è basato su PostgreSQL, un Game-Changer per database NoSQL

Poiché la distinzione tra database NoSQL e relazionali diventa più sfocata, DocumentDB consente di colmare questo divario per offrire un'esperienza di database documenti superiore per i carichi di lavoro più scalabili. Combina i punti di forza di entrambi i lati, offrendo la flessibilità e la scalabilità generalmente associati ai database NoSQL, sfruttando al contempo la potenza e l'ampio set di funzionalità di PostgreSQL, uno dei database open source più adottati e rispettati oggi. Questa base offre affidabilità, affidabilità e accesso all'ecosistema di strumenti ed estensioni di PostgreSQL. Gli sviluppatori possono trarre vantaggio dall'evoluzione continua di PostgreSQL e dal supporto completo della community, sfruttando al contempo la flessibilità di un database di documenti.

Funzionalità principali

DocumentDB offre diverse funzionalità chiave che lo rendono una scelta affidabile per le operazioni del database di documenti:

  • Analisi e manipolazione di documenti BSON: Gestire in modo efficiente i documenti JSON binari (BSON) a tutti i livelli di annidamento.
  • Funzionalità avanzate di indicizzazione: Supporto per singoli campi, multi-chiave, composti, testo e indici geospaziali.Support for single field, multi-key, compound, text, and geospatial indexes.
  • Query di ricerca vettoriali: Basate sull'estensione pg_vector PostgreSQL, abilitando varie applicazioni di intelligenza artificiale e apprendimento automatico.
  • Meccanismo di autenticazione: Include l'autenticazione SCRAM (Salted Challenge Response Authentication Mechanism).
  • Query geospaziali: utilizzando le funzionalità dell'estensione PostGIS.
  • Supporto completo di Decimal128: Basato su Intel Floating Point Math Library.
  • Supporto regex: Utilizzo del progetto PCRE2

Architecture

DocumentDB è costituito da due componenti principali:

  1. pg_documentdb_core: un'estensione PostgreSQL personalizzata che ottimizza il supporto del tipo di dati BSON in PostgreSQL.
  2. pg_documentdb_api: il piano dati che implementa operazioni CRUD, funzionalità di query e gestione degli indici.

Questa architettura consente di creare un'esperienza utente del database NoSQL end-to-end oltre al motore PostgreSQL.

Contributi a DocumentDB

Come progetto open source, DocumentDB accoglie i contributi dalla community. È possibile contribuire con:

  • Assegnazione di stelle e fork e invio di richieste pull in GitHub
  • Segnalazione di problemi o suggerimento di miglioramenti
  • Partecipazione alle discussioni sul canale #documentdb sul server Microsoft OSS Discord

Introduzione a DocumentDB

Per iniziare a usare DocumentDB in locale:

1. Installare Docker.

2. Clonare il repository DocumentDB.

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

3. Creare l'immagine Docker. Passare al repository clonato.

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

4. Eseguire l'immagine Docker come contenitore.

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

5. Compilare e distribuire i file binari.

cd code
make
sudo make install

6. Inizializzare il server DocumentDB e gestire le dipendenze.

./scripts/start_oss_server.sh -t documentdb

7. Connettersi alla shell psql.

psql -p 9712 -h localhost -d postgres

Dopo aver seguito questi passaggi, è ora tutto impostato per l'uso di DocumentDB in locale.

FAQs

Che cos'è DocumentDB e come si riferisce ad Azure DocumentDB?

DocumentDB è una piattaforma open source completamente permissiva per gli archivi dati dei documenti basati sul motore PostgreSQL. Funge da base per Azure DocumentDB, offrendo una soluzione potente e flessibile per le esigenze del database NoSQL.

In che modo le licenze di DocumentDB vengono confrontate con altre implementazioni di MongoDB?

DocumentDB usa la licenza MIT permissiva, che consente agli sviluppatori di usare, modificare e distribuire il software senza costi di licenza commerciali o restrizioni di utilizzo. Questo contrasta con alcuni fornitori di MongoDB con Server Side Public License (SSPL), che possono limitare determinati usi.

DocumentDB può essere usato in diversi provider di servizi cloud?

Sì, DocumentDB è indipendente dal fornitore e multicloud. Basato su PostgreSQL, consente agli sviluppatori di distribuire le applicazioni in diversi provider di servizi cloud o in locale, evitando il blocco dei fornitori e offrendo flessibilità nella scelta dell'infrastruttura migliore per le proprie esigenze.

Quali sono le funzionalità principali di DocumentDB?

DocumentDB offre diverse funzionalità chiave, tra cui l'analisi e la manipolazione dei documenti BSON, funzionalità avanzate di indicizzazione (singolo campo, multichiado, composto, testo e geospaziale), query di ricerca vettoriali basate su pg_vector, meccanismi di autenticazione tra cui SCRAM, query geospaziali tramite PostGIS, supporto decimale completo128 e supporto regex con PCRE2.

In che modo gli sviluppatori possono contribuire a DocumentDB?

Gli sviluppatori possono contribuire a DocumentDB aggiungendo una stella, facendo fork e inviando pull request su GitHub, segnalando problemi e suggerendo miglioramenti, e partecipando alle discussioni sul canale #documentdb sul server Discord di Microsoft OSS.