DocumentDB:Open-Source 引擎为 Azure Cosmos DB for MongoDB vCore 提供支持

Azure Cosmos DB for MongoDB vCore 基于 DocumentDB(一个开源文档数据库平台)构建。 本文概述了 DocumentDB 及其功能、体系结构,以及如何参与或使用这项技术。

什么是 DocumentDB?

DocumentDB 是一个完全宽松的开源平台,适用于基于 PostgreSQL 引擎构建的文档数据存储。 它作为 Azure Cosmos DB for MongoDB vCore 的基础,为 NoSQL 数据库需求提供强大而灵活的解决方案。

DocumentDB 是真正 Open-Source MongoDB 实现

与其他具有限制性许可(如 SSPL)的 MongoDB 引擎不同,DocumentDB 使用宽松的 MIT 许可证。 这意味着开发人员完全自由使用、修改和分发软件,没有任何商业许可费或使用限制。 与 MongoDB 的服务器端公共许可证(SSPL)相比,DocumentDB 的 MIT 许可证可以保证真正的开源自由。

DocumentDB 是多云的,与供应商无关

DocumentDB 为文档数据存储提供可移植的可互作解决方案。 它基于 PostgreSQL 构建,可让开发人员跨各种云提供商或本地部署其应用程序,从而避免供应商锁定。 这种灵活性使组织能够根据需要选择最佳基础结构,而不会影响数据库功能。

DocumentDB 基于 PostgreSQL 而构建,后者彻底改变了 NoSQL 数据库

随着 NoSQL 和关系数据库之间的区别变得更加模糊,DocumentDB 弥合了这种差距,为大多数可缩放工作负荷提供卓越的文档数据库体验。 它结合了双方的优势,提供通常与 NoSQL 数据库关联的灵活性和可伸缩性,同时利用 PostgreSQL 的强大功能和广泛的功能集,这是目前采用和受人尊敬的开源数据库之一。 此基础提供对 PostgreSQL 工具和扩展生态系统的可靠性、可靠性和访问权限。 开发人员可以从 PostgreSQL 的持续演变和广泛的社区支持中受益,同时享受文档数据库的灵活性。

主要功能

DocumentDB 提供了多个关键功能,使它成为文档数据库作的可靠选择:

  • BSON 文档解析和处理: 在各个嵌套层级高效处理二进制 JSON (BSON) 文档。
  • 高级索引功能: 支持单字段、多键、复合、文本和地理空间索引。
  • 矢量搜索查询: 由 pg_vector PostgreSQL 扩展提供支持,支持各种 AI 和机器学习应用程序。
  • 身份验证机制:包括 SCRAM(Salted Challenge Response Authentication Mechanism,即加盐质询响应身份验证机制)身份验证。
  • 地理空间查询: 使用 PostGIS 扩展的功能。
  • 完整 Decimal128 支持: 由 Intel 浮点数学库提供支持。
  • 正则表达式支持:使用 PCRE2 项目

建筑

DocumentDB 由两个主要组件组成:

  1. pg_documentdb_core:在 PostgreSQL 中优化 BSON 数据类型支持的自定义 PostgreSQL 扩展。
  2. pg_documentdb_api:实现 CRUD 操作、查询功能和索引管理的数据操作层。

此体系结构允许在 PostgreSQL 引擎的基础上生成端到端 NoSQL 数据库用户体验。

参与 DocumentDB

作为开源项目,DocumentDB 欢迎来自社区的贡献。 你可以通过以下方式参与:

DocumentDB 入门

在本地开始使用 DocumentDB:

1. 安装 Docker。

2.克隆 DocumentDB 存储库。

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

3.创建 Docker 映像。 导航到克隆的存储库。

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

4.将 Docker 映像作为容器运行。

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

5. 生成和部署二进制文件。

cd code
make
sudo make install

6.初始化 DocumentDB 服务器并管理依赖项。

./scripts/start_oss_server.sh -t documentdb

7.连接到 psql shell。

psql -p 9712 -h localhost -d postgres

执行这些步骤后,您现在准备就绪,可以在本地使用 DocumentDB。

常见问题解答

什么是 DocumentDB,它与 Azure Cosmos DB for MongoDB vCore 有何关联?

DocumentDB 是一个完全宽松的开源平台,适用于基于 PostgreSQL 引擎构建的文档数据存储。 它作为 Azure Cosmos DB for MongoDB vCore 的基础,为 NoSQL 数据库需求提供强大而灵活的解决方案。

DocumentDB 的许可与其他 MongoDB 实现相比如何?

DocumentDB 使用宽松的 MIT 许可证,使开发人员能够完全自由地使用、修改和分发软件,而无需任何商业许可费或使用限制。 这与某些 MongoDB 提供程序的服务器端公共许可证(SSPL)形成鲜明对比,这可能会限制某些用途。

DocumentDB 是否可以跨不同的云提供商使用?

是的,DocumentDB 是多云的,与供应商无关。 它基于 PostgreSQL 构建,使开发人员能够跨各种云提供商或本地部署其应用程序,避免供应商锁定,并为他们的需求选择最佳基础结构提供灵活性。

DocumentDB 的主要功能是什么?

DocumentDB 提供多个关键功能,包括 BSON 文档分析和作、高级索引功能(单字段、多键、复合、文本和地理空间)、由pg_vector提供支持的矢量搜索查询、身份验证机制(包括 SCRAM、使用 PostGIS 的地理空间查询、完整的 Decimal128 支持以及使用 PCRE2 的正则表达式支持)。

开发人员如何参与 DocumentDB?

开发人员可通过以下方式参与 DocumentDB:对 GitHub 上的拉取请求执行标星、创建分支和提交操作;报告问题或提出改进建议;参与 Microsoft OSS Discord 服务器上的 #documentdb 频道的讨论。