Google推出适用于分布式关联数据库服务PostgreSQL接口

Google发布了可用于分布式关联数据库服务Cloud Spanner的PostgreSQL接口预览,这项新功能将能够使更多的应用,从PostgreSQL转移到Spanner,PostgreSQL接口让用户可以使用既有的工具和技能,在具全球规模、强一致性且99.999%可用性的Spanner数据库服务,构建应用程序。

PostgreSQL是一个成熟的开源数据库,受多个供应商支持,生态系统庞大且不断增长,而Spanner的PostgreSQL接口,则是凭借开发者对PostgreSQL的熟悉性,以及数据库本身的可移植性,提供获取Spanner可扩展性和运营优势的方法。

针对Spanner PostgreSQL接口所创建的架构(Schema)以及查询(Query),能够被简单地移植到另一个PostgreSQL环境,提供用户十足的弹性,Google提到,这对于像是受监管的金融服务特别重要,因为他们被要求展示应用程序的可移植性,以确保业务的连续性。

Google解释,PostgreSQL接口核心是将PostgreSQL查询,编译成为Spanner现有的分布式查询和存储原语,同时还支持PostgreSQL有线协议,而配置和监控数据库,则使用Spanner和Google云计算现有的工具,官方提到,整体操作资料的感觉,就像是使用PostgreSQL一样,该接口实例了涉及数据库操作的每个部分,以确保提供一致的体验。

在最底层,PostgreSQL接口实例了PostgreSQL资料类型和DDL语法的核心子集,可让用户使用标准的PostgreSQL SQL来定义架构,因此用户针对Spanner的PostgreSQL接口所撰写的架构,也都可以用于其他兼容于PostgreSQL的数据库。不过,部分Spanner功能并没有与PostgreSQL相对应,像是表格交错(Table Interleaving)等,官方尽量遵循现有的PostgreSQL语法,来减少这些差异。

在架构层之上,PostgreSQL接口实例现有PostgreSQL的SQL方言中重要的部分,包括最常见的DQL和DML语法,以及许多PostgreSQL函数和运算符,另外,PostgreSQL接口针对应用程序和生态系统统工具,提供方便的连接功能,Google还更新Java、JDBC、Go和Python的Spanner本机客户端,来支持PostgreSQL查询方言。

Google提供了开源桥接器,以侧车模式运行,安装在靠近客户端的位置,通过支持开放的PostgreSQL有线协议,连接到Spanner执行实例,供开发人员使用psql命令行工具操作Spanner数据库。

PostgreSQL接口的出现,让Spanner更加开放且提高可访问性,借由支持PostgreSQL的核心子集,能够支持当今生产环境中的各种关键任务应用程序,但官方提到,这个接口不追求与PostgreSQL的100%兼容性,他们只注重熟悉性和可移植性,在不降低部署灵活性的情况下,能够大规模访问Spanner,当用户需要更高的PostgreSQL兼容性,则可以使用Cloud SQL for PostgreSQL。