PostgreSQL 页面

借助 Spanner 的 PostgreSQL 页面,您可以利用 Spanner 的全代管式、可伸缩和高可用性 使用熟悉的 PostgreSQL 工具和语法构建基础架构。本页面可帮助您了解 PostgreSQL 接口的功能和限制。

PostgreSQL 接口的优势

  • 可移植性:借助 PostgreSQL 页面, Spanner 功能的广度,您可以使用架构、查询和 与开源 PostgreSQL 兼容的客户端。这个 简化了将基于 Spanner 构建的应用迁移到另一个 PostgreSQL 环境。这种可移植性可提供部署灵活性,并支持灾难恢复场景,例如应力退出。
  • 熟悉:如果您已经在使用 PostgreSQL,则可以使用许多相同的 PostgreSQL 语句和工具快速上手使用 Spanner。在整个数据库产品组合中使用 PostgreSQL 意味着,特定产品与一组通用最佳实践之间的差异会减少。
  • 强大的 Spanner:因为它是基于 Spanner 的现有基础, PostgreSQL 页面提供 Spanner 的现有可用性、一致性和性价比 并且无需牺牲任何可用功能 相辅相成。

Spanner 不支持的 PostgreSQL 功能

请务必了解,PostgreSQL 页面通过与 PostgreSQL 兼容的架构、类型、查询和客户端提供 Spanner 的功能。它不支持 PostgreSQL 的所有功能。迁移现有的 迁移到 Spanner,甚至 因此可能需要重新调整 PostgreSQL 功能不受支持或行为差异,例如 查询优化或主键设计。不过,一旦完成迁移 工作负载可以充分利用 Spanner 的可靠性和独特优势 多模型功能。

以下列表提供了有关支持和不支持的详细信息 PostgreSQL 特性:

  • 支持的 PostgreSQL 功能:PostgreSQL 界面支持 PostgreSQL 的许多最常用功能。其中包括架构和类型系统的核心部分、许多常见的查询形状、各种函数和运算符,以及 PostgreSQL 系统目录的关键方面。应用可以通过 Spanner 实现的 PostgreSQL 传输协议连接,从而使用许多 PostgreSQL 客户端。
  • 某些 PostgreSQL 语言功能不受支持:扩展程序、 用户定义的数据类型、用户定义的存储过程以及其他功能 不受支持。有关完整列表,请参阅 Spanner 中的 PostgreSQL 语言。 PostgreSQL 中还有一些功能的行为与开源 PostgreSQL 不同。如需了解详情,请参阅 Spanner 的 PostgreSQL 页面中的已知问题
  • Spanner 和 Spanner 控制平面:具有 PostgreSQL 页面的数据库使用 Spanner 和 Google Cloud 工具来预配、保护、监控和优化实例。Spanner 不支持 pgAdmin 等工具 活动。
  • 客户端和线路协议支持:Spanner 支持核心 使用 PGAdapter,后者是一个轻量级代理,与您的 应用。这使得许多 Spanner 客户端可以按原样使用 Spanner PostgreSQL 页面数据库,而 利用 Spanner 的全球端点和连接管理 IAM 身份验证。Google 的内部基准比较显示, 相较于 与 Spanner 内置端点的直接连接。

行政和管理

PostgreSQL 界面支持通过以下功能管理 Spanner 数据库:

  • 统一体验:使用 Spanner 的现有控制台、API 和 Google Cloud CLI 等工具预配、管理和监控启用了 PostgreSQL 页面的数据库。
  • 灵活配置:您可以 每个数据库的 PostgreSQL 页面。单个 Spanner 实例可以同时容纳 GoogleSQL 和 PostgreSQL 页面数据库。
  • 共同优势:两种数据库方言共享相同的底层 分布式数据库引擎,确保一致性、一致性和 性能和安全性

特性

Spanner 的 PostgreSQL 页面提供两个主要 可实现与 PostgreSQL 生态系统集成的功能:

  • PostgreSQL 方言支持

    Spanner 提供了 PostgreSQL SQL 的子集, 方言,包括数据查询语言 (DQL)、数据操纵语言 (DML) 和数据定义语言 (DDL)。此外,它还包括 这些扩展程序可支持 Spanner 特有功能,例如 交错表 存留时间 (TTL)查询提示

    如需详细了解支持的 PostgreSQL 语言元素,请参阅 Spanner 中的 PostgreSQL 语言。接收者 了解如何将 Spanner 功能与 PostgreSQL 方言,请参阅相关文档,了解 功能。

  • PostgreSQL 客户端支持

    借助 Spanner,您可以通过各种客户端连接到数据库:

    • PostgreSQL 生态系统工具:您可以使用 PostgreSQL JDBC 驱动程序PostgreSQL pgx 驱动程序等熟悉的工具将应用连接到 PostgreSQL 页面数据库。如需查看受支持的驱动程序、ORM 和工具的列表,请参阅 PostgreSQL 驱动程序和 ORM

    • psql 命令行工具:比较常见的 psql 互动环境 可让您运行查询、探索元数据以及加载数据 。

    • PGAdapter:这种轻量级代理简化了连接 管理和身份验证。有关详情,请参阅 PGAdapter 概览

    • Spanner 客户端:Spanner 提供 适用于各种编程的开源 Spanner 客户端 (Java、Go、Python、Node.js、Ruby、PHP、C#、C++)以及 Spanner JDBC 驱动程序Go 的 SQL 软件包的驱动程序。 Spanner 客户端直接连接到 没有代理的 Spanner 全球端点。不过, Spanner 客户端不支持现有的 PostgreSQL 客户端、ORM 或工具。

使用 PostgreSQL 页面的最佳做法

使用 PostgreSQL 页面时,请遵循以下最佳实践:

  1. 连接应用:使用一组受支持的 PostgreSQL 工具,实现高效连接。
  2. 与数据库交互:对于交互式工作,请选择 之间:

后续步骤