微软发布基于PostgreSQL的开源文档数据库平台DocumentDB

server/2025/2/7 19:17:32/

  我们很高兴地宣布正式发布DocumentDB——一个开源文档数据库平台,以及基于 vCore、基于 PostgreSQL 构建的 Azure Cosmos DB for MongoDB 的引擎。

  过去,NoSQL 数据库提供云专用解决方案,而没有通用的互操作性标准。这导致对可互操作、可移植且完全支持生产就绪的文档数据存储本地实例的需求不断增长。我们还认为,如果能有一个 NoSQL 数据库标准,以便在选择和切换 NoSQL 数据库时提供更大的灵活性,那就太好了。此外,过去十年,PostgreSQL 在开发者社区中的受欢迎程度呈爆炸式增长。因此,为了满足社区对 NoSQL 数据库的需求和 PostgreSQL 的普遍采用,我们推出了 DocumentDB — 一个完全允许的开源文档数据存储平台,它基于强大的 PostgreSQL 引擎构建。

  使命

  DocumentDB 的使命是为开发者社区提供一个使用 PostgreSQL 实现的 NoSQL 数据存储,并完全了解引擎的架构和实现。数据库引擎的所有核心组件(从 CRUD(创建、读取、更新、删除)操作到索引和向量搜索功能)都是公开的。此外,PostgreSQL 凭借其不断发展的功能集和丰富的扩展生态系统,人气迅速飙升。我们决定推出 DocumentDB——一个由 PostgreSQL 提供支持的完全开源平台,可以在其上构建端到端的文档数据库体验,以满足社区对 NoSQL 数据库的需求。

  许可

  为了秉承真正的开源精神,该项目采用了最宽松的 MIT 许可证,开发人员可以不受限制地将项目纳入他们自己的新解决方案和现有解决方案中。没有商业许可费、没有使用或分发限制,也没有花招。虽然我们始终欢迎和鼓励对项目做出贡献,但并不要求用户将他们的定制、贡献和增强功能提交给项目。MIT 许可证保证完全自由地分叉存储库、使用和分发,没有任何义务。

  开源标准

  DocumentDB 是该项目更宏伟使命的首次实现,该使命旨在为开源文档数据库创建标准,就像 ANSI(美国国家标准协会)的关系数据库 SQL 标准一样。NoSQL 标准的创建将在未来提高 NoSQL 引擎的兼容性和互操作性。该标准背后的动机是尽量减少 NoSQL 数据库实现之间面向公众的 API(应用程序编程接口)和引擎基础的差异。总的来说,这将有助于改善开发人员在加入文档数据库时的体验,更重要的是,在从一个数据库切换到另一个数据库时。

  架构

  该项目由两个主要组件组成,它们共同支持文档操作:

  pg_documentdb_core — 一个自定义的 PostgreSQL 扩展,针对 Postgres 中的 BSON(二进制 JavaScript 对象表示法)数据类型支持进行了优化。

  pg_documentdb_api — 实现 CRUD 操作、查询功能和索引管理的数据平面。

  对于贡献者

  堆栈底部是pg_documentdb_core层 - 一个完全自主开发和定制的 Postgres 扩展,用于优化对 BSON 数据类型的支持。此扩展提供以下功能:

      能够在数据库引擎的 Postgres 层中解析和操作 BSON 文档,以及 BSON 文档内嵌套的各个级别。

      能够索引 BSON 文档中的字段 - 包括单字段索引、多键索引、复合索引(以优化多个字段上的查询过滤条件)、文本索引以及利用 PostGIS 扩展功能的地理空间索引。

      能够执行由 pg_vector Postgres 扩展提供支持的向量搜索查询。

      功能齐全的身份验证机制,包括 SCRAM(加盐挑战响应身份验证机制)身份验证。

  这些位于堆栈底部的功能将作为构建端到端 NoSQL 数据库用户体验的基础。可在此堆栈顶部构建协议转换层,以将所选的入站 NoSQL 数据库协议转换为底层 Postgres 协议。

  对于用户

  寻找现成 NoSQL 数据库的用户可以利用 FerretDB 中的现有解决方案 — 由 DocumentDB 作为支持引擎。FerretDB 是一个流行的开源文档数据存储,其最新版本 ( FerretDB 2.0 ) 由 DocumentDB 支撑。虽然用户可以通过 Postgres 与 DocumentDB 交互,但 FerretDB 2.0 提供了一个具有文档数据库协议的接口。FerretDB 还拥有同样宽松的 Apache 许可证,并且在 Postgres 和 NoSQL 社区中都占有重要地位。

  相关阅读:PostgreSQL管理员认证

  为深入贯彻党的二十大和全国新型工业化推进大会精神,落实《关于加强和改进工业和信息化人才队伍建设的实施意见》等文件精神,由工业和信息化部人才交流中心主办、北京神脑资讯技术有限公司承办的PostgreSQL数据库管理人才研修与评测班将于2024年12月、2025年2月、3月举办。

  工业和信息化部人才交流中心创立于1985年,是中央机构编制委员会办公室批准成立、国家事业单位登记管理局登记、工业和信息化部直属的事业单位。

  课程价值

  审核通过后,由工业和信息化部人才交流中心颁发证书

  PostgreSQL管理员认证红头文件(独家)

  考取PG认证证书,体现个人技术能力,获得更高职业发展机会

  凭此证书,投标信创项目的“加分”项

  凭此证书,评职称的“加分”项

  证书查询地址:

  工业和信息化部人才交流中心官网->证书查询

  https://www.miitec.org.cn/home/certificate

  测试大纲查看网址:

  https://pj.miitec.cn/ability/evaluate/ExamOutline

  教学方案查看网址:

  https://pj.miitec.cn/ability/improve/plan/144

  唯一报名机构: 北京神脑资讯技术有限公司(CUUG) 


http://www.ppmy.cn/server/165744.html

相关文章

UE5 蓝图学习计划 - Day 13:确定游戏类型与核心功能

在前面的学习中,我们掌握了 角色控制、交互系统、UI 设计、存储与加载 等核心技能。今天,我们将正式开始 综合项目实战,构建一个完整的游戏。本篇文章将介绍项目的 类型、核心玩法、功能模块,并完成项目的 基础环境搭建&#xff0…

Eureka

### **一、Eureka 的核心概念** Eureka 是 Netflix 开源的服务发现组件,用于实现微服务架构中的**服务注册与发现**。它包含以下角色: 1. **Eureka Server(服务端)**:注册中心,负责接收服务实例的注册信息,并维护服务列表。 2. **Eureka Client(客户端)**:服务提供者…

QT:对象树

1.概念 Qt 中的对象树是一种以树形结构组织 Qt 对象的方式。当创建一个QObject(Qt 中大多数类的基类)或其派生类的对象时,可以为其指定一个父对象(parent)。这个对象就会被添加到其父对象的子对象列表中,形…

UE5 蓝图学习计划 - Day 12:存储与加载

在游戏开发中,存储(Save)与加载(Load) 系统至关重要,玩家需要能够保存游戏进度、角色状态、道具数据等信息,并在下次启动游戏时恢复它们。UE5 提供了 SaveGame 蓝图类,帮助开发者快速…

ubuntu直接运行arm环境qemu-arm-static

qemu-arm-static 嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题,想预先交叉编译并安装一些应用程序,但是交叉编译的环境配置以及依赖包的安装十分繁琐,并且容易出错。想直接在目标板上进行编译和安装&#x…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_str 函数

ngx_sprintf_str 函数 ngx_sprintf_str 声明在 ngx_string.c 的开头 static u_char *ngx_sprintf_str(u_char *buf, u_char *last, u_char *src,size_t len, ngx_uint_t hexadecimal); ngx_sprintf_str 实现在ngx_string.c中 static u_char * ngx_sprintf_str(u_char *buf,…

IDEA中Resolving Maven dependencies卡着不动解决方案

一、修改settings.xml Maven配置阿里云仓库主要通过修改Maven的settings.xml文件来实现‌。以下是具体步骤: ‌1、找到settings.xml文件‌: 通常位于Maven安装目录下的conf文件夹中,或者在用户目录下的.m2文件夹中(如果用户自定义了settings.xml的位置)。 2、‌编辑se…

关于大模型 AGI 应知应会_生在AI发展的时代

在 AI 时代,大模型和通用人工智能(AGI)正在深刻改变我们的生活和工作方式。以下是一些关于大模型和 AGI 的关键知识点,帮助我们更好地理解这一技术浪潮。 一、大模型的核心概念与特点 (一)什么是大模型 …