Aurora DSQL 和 PostgreSQL - Amazon Aurora DSQL

Aurora DSQL 和 PostgreSQL

Aurora DSQL 是与 PostgreSQL 兼容的分布式关系数据库,专为事务性工作负载而设计。Aurora DSQL 使用核心 PostgreSQL 组件,例如解析器、规划器、优化器和类型系统。

Aurora DSQL 的设计可确保所有受支持的 PostgreSQL 语法都提供兼容的行为并生成完全相同的查询结果。例如,Aurora DSQL 提供与 PostgreSQL 完全相同的类型转换、算术运算以及数值精度和小数位数。任何偏差都记录在案。

Aurora DSQL 还引入了高级功能,例如乐观并发控制和分布式架构管理。借助这些功能,您可以利用 PostgreSQL 的熟悉的工具,同时受益于现代、云原生、分布式应用程序所需的性能和可扩展性。

PostgreSQL 兼容性亮点

Aurora DSQL 目前基于 PostgreSQL 版本 16。主要兼容性包括以下各项:

线路协议

Aurora DSQL 使用标准 PostgreSQL v3 线路协议。这样就可以与标准 PostgreSQL 客户端、驱动程序和工具集成。例如,Aurora DSQL 与 psqlpgjdbcpsycopg 兼容。

SQL 兼容性

Aurora DSQL 支持事务性工作负载中常用的各种标准 PostgreSQL 表达式和函数。支持的 SQL 表达式与 PostgreSQL 生成完全相同的结果,包括以下各项:

  • 空值的处理

  • 排序顺序行为

  • 数值运算的小数位数和精度

  • 字符串操作的等效性

有关更多信息,请参阅 Aurora DSQL 中的 SQL 功能兼容性

事务管理

Aurora DSQL 保留了 PostgreSQL 的主要特征,例如 ACID 事务和等同于 PostgreSQL 可重复读取的隔离级别。有关更多信息,请参阅 Aurora DSQL 中的并发控制

主要架构差异

Aurora DSQL 的分布式、无共享设计导致与传统的 PostgreSQL 具有一些基本差异。这些差异是 Aurora DSQL 架构不可或缺的一部分,并提供了许多性能和可扩展性优势。主要差异包括以下各项:

乐观并发控制(OCC)

Aurora DSQL 使用乐观并发控制模型。这种无锁方法可防止事务相互阻塞,消除死锁,并支持高吞吐量的并行执行。这些功能使得 Aurora DSQL 对于需要大规模一致性能的应用程序特别有价值。有关更多示例,请参阅 Aurora DSQL 中的并发控制

异步 DDL 操作

Aurora DSQL 异步运行 DDL 操作,从而支持在架构更改期间不间断地读取和写入。其分布式架构可让 Aurora DSQL 执行以下操作:

  • 将 DDL 操作作为后台任务运行,从而最大限度地减少中断。

  • 将目录更改协调为强一致性分布式事务。这可以确保跨所有节点的原子可见性,即使在故障或并发操作期间也是如此。

  • 跨多个可用区以完全分布式、无中心节点的方式运行,且计算层和存储层已分离。

有关更多信息,请参阅 Aurora DSQL 中的 DDL 和分布式事务