Partilhar via


DocumentDB: O motor Open-Source que alimenta o Azure DocumentDB

O Azure DocumentDB é construído sobre o DocumentDB, uma plataforma de bases de dados de documentos de código aberto. Este artigo apresenta uma visão geral do DocumentDB, das suas funcionalidades, arquitetura e de como pode contribuir ou utilizar esta tecnologia.

O que é o DocumentDB?

O DocumentDB é uma plataforma totalmente permissiva e de código aberto para armazenamentos de dados documentais, construída sobre o motor PostgreSQL. Serve de base para o Azure DocumentDB, fornecendo uma solução poderosa e flexível para as necessidades de bases de dados NoSQL.

O DocumentDB é uma implementação verdadeiramente Open-Source do MongoDB

Ao contrário de outros motores MongoDB com licenciamento restritivo, como o SSPL, o DocumentDB utiliza a licença permissiva MIT. Isto significa que os programadores têm total liberdade para usar, modificar e distribuir o software sem quaisquer taxas de licenciamento comercial ou restrições de uso. Ao contrário da Licença Pública do Lado do Servidor (SSPL) do MongoDB, que pode limitar certos usos, a licença MIT do DocumentDB garante verdadeira liberdade de código aberto.

O DocumentDB é multicloud e independente do fornecedor

O DocumentDB fornece uma solução portátil e interoperável para armazenamentos de dados de documentos. Construído sobre o PostgreSQL, permite aos programadores implementar as suas aplicações em vários fornecedores de cloud ou on-premises, evitando o lock-in dos fornecedores. Esta flexibilidade capacita as organizações a escolher a melhor infraestrutura para as suas necessidades sem comprometer as capacidades da base de dados.

O DocumentDB é construído sobre o PostgreSQL, um Game-Changer para bases de dados NoSQL

À medida que a distinção entre bases de dados NoSQL e relacionais se torna mais difusa, o DocumentDB colmata esta lacuna para proporcionar uma experiência superior de base de dados de documentos para a maioria das cargas de trabalho escaláveis. Combina as forças de ambos os lados, oferecendo a flexibilidade e escalabilidade tipicamente associadas às bases de dados NoSQL, aproveitando ao mesmo tempo o poder e o vasto conjunto de funcionalidades do PostgreSQL – uma das bases de dados open-source mais adotadas e respeitadas atualmente. Esta base proporciona robustez, fiabilidade e acesso ao ecossistema de ferramentas e extensões do PostgreSQL. Os programadores podem beneficiar da evolução contínua do PostgreSQL e do extenso apoio comunitário, ao mesmo tempo que desfrutam da flexibilidade de uma base de dados de documentos.

Principais características

O DocumentDB oferece várias funcionalidades chave que o tornam uma escolha robusta para operações de bases de dados de documentos:

  • Análise e manipulação de documentos BSON: Manuseie eficientemente documentos de Binary JSON (BSON) em todos os níveis de encadeamento.
  • Capacidades avançadas de indexação: Suporte para índices de campo único, multichave, compostos, texto e geoespaciais.
  • Consultas de pesquisa vetorial: Impulsionado pela extensão pg_vector PostgreSQL, permitindo várias aplicações de IA e aprendizagem automática.
  • Mecanismo de autenticação: Inclui autenticação SCRAM (Salted Challenge Response Authentication Mechanism).
  • Consultas geoespaciais: Utilizando as capacidades da extensão PostGIS.
  • Suporte total ao Decimal128: Alimentado pela Intel Floating Point Math Library.
  • Suporte Regex: Utilização do Projeto PCRE2

Architecture

O DocumentDB consiste em dois componentes principais:

  1. pg_documentdb_core: Uma extensão personalizada do PostgreSQL que otimiza o suporte a tipos de dados BSON no PostgreSQL.
  2. pg_documentdb_api: O plano de dados que implementa operações CRUD, funcionalidade de consultas e gestão de índices.

Esta arquitetura permite construir uma experiência de utilizador de base de dados NoSQL de ponta a ponta sobre o motor PostgreSQL.

Contribuição para o DocumentDB

Como projeto open-source, o DocumentDB acolhe contribuições da comunidade. Pode contribuir através de:

Começar com o DocumentDB

Para começar a usar o DocumentDB localmente:

1. Instalar o Docker.

2. Clonar o repositório DocumentDB.

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

3. Criar a imagem Docker. Navega até ao repositório clonado.

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

4. Executar a imagem Docker como um contentor.

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

5. Construir e implementar os binários.

cd code
make
sudo make install

6. Inicializar o servidor DocumentDB e gerir dependências.

./scripts/start_oss_server.sh -t documentdb

7. Liga-te ao terminal psql.

psql -p 9712 -h localhost -d postgres

Depois de seguir estes passos, está agora pronto para usar o DocumentDB localmente.

FAQs

O que é o DocumentDB e como se relaciona com o Azure DocumentDB?

O DocumentDB é uma plataforma totalmente permissiva e de código aberto para armazenamentos de dados documentais, construída sobre o motor PostgreSQL. Serve de base para o Azure DocumentDB, fornecendo uma solução poderosa e flexível para as necessidades de bases de dados NoSQL.

Como se compara a licença do DocumentDB com outras implementações do MongoDB?

O DocumentDB utiliza a licença permissiva MIT, que permite aos programadores total liberdade para usar, modificar e distribuir o software sem quaisquer taxas comerciais de licenciamento ou restrições de uso. Isto contrasta com a Licença Pública do Lado do Servidor (SSPL) de alguns fornecedores MongoDB, que pode limitar certos usos.

O DocumentDB pode ser usado entre diferentes fornecedores de cloud?

Sim, o DocumentDB é multicloud e independente do fornecedor. Baseado no PostgreSQL, permite aos programadores implementar as suas aplicações em vários fornecedores de cloud ou on-premises, evitando o bloqueio do fornecedor e oferecendo flexibilidade na escolha da melhor infraestrutura para as suas necessidades.

Quais são as principais funcionalidades do DocumentDB?

O DocumentDB oferece várias funcionalidades chave, incluindo análise e manipulação de documentos BSON, capacidades avançadas de indexação (campo único, multichave, composto, texto e geoespacial), consultas vetoriais alimentadas por pg_vector, mecanismos de autenticação incluindo SCRAM, consultas geoespaciais usando PostGIS, suporte completo a Decimal128 e suporte a regex usando PCRE2.

Como podem os programadores contribuir para o DocumentDB?

Os programadores podem contribuir para o DocumentDB ao marcar com estrela, fazer fork e submeter pull requests no GitHub, reportar problemas ou sugerir melhorias, e participar em debates no canal #documentdb no servidor Discord da Microsoft OSS.