您可以将 SQL 对象捆绑到一个软件包中并将其作为一个单元使用,从而扩展 PostgreSQL。本页面介绍如何配置 Cloud SQL 支持的 PostgreSQL 扩展程序。
使用 PostgreSQL 扩展程序
您只能安装 Cloud SQL 支持的扩展程序。如需了解详情,请参阅 Cloud SQL 支持的 PostgreSQL 扩展程序。
安装扩展程序
在使用扩展程序之前,请先安装:
- 在 psql 工具中,运行 CREATE EXENDSION 命令。
超级用户权限的要求
在 Cloud SQL 中,只能由属于 cloudsqlsuperuser
角色的用户创建扩展程序。创建新的 PostgreSQL 实例时,系统会为您创建默认 postgres
用户(但您必须设置用户的密码)。默认 postgres
用户属于 cloudsqlsuperuser
角色。如需了解详情,请参阅 PostgreSQL 用户简介。
数据库间连接
连接的目标实例和连接实例必须位于同一 VPC 网络中。
对于集群实例,您无法在 Google Cloud 控制台中选择需要受信任的客户端证书选项。此外,如需连接同一实例中的数据库,则不能将主机设置为 localhost 或 127.0.0.1
。而是需要使用针对 Google Cloud 控制台中的实例显示的 IP 地址。
请求对新扩展程序的支持
您无法在 Cloud SQL 中自行创建扩展程序。
如需请求对扩展程序的支持,请点击待解决的问题上的 +1,或创建一个新问题。如需查看待解决的 Cloud SQL 问题列表以及有关如何创建新问题的信息,请参阅按产品搜索或创建问题和功能请求。
Cloud SQL 支持的 PostgreSQL 扩展程序
如需了解如何使用特定扩展程序,请参阅以下某个表中的文档链接。
Cloud SQL 对 PostgreSQL 扩展程序的支持可分为以下几个类别:
PostGIS
所有主要版本的 Cloud SQL for PostgreSQL 均支持 PostGIS 3.2 扩展程序。
下表包含每个 Cloud SQL for PostgreSQL 版本的 PostGIS 扩展程序版本:
Cloud SQL for PostgreSQL 版本 | PostGIS 扩展程序 |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.2.5 |
PostgreSQL 13 | 3.2.5 |
PostgreSQL 14 | 3.2.5 |
PostgreSQL 15 | 3.2.5 |
对于特定 PostgreSQL 主要版本,您可以在 CREATE EXTENSION 命令中使用 VERSION
子句指定 PostGIS 扩展程序版本。
PostGIS 扩展程序包括以下内容:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
如需了解详情,请参阅 PostGIS 安装。
此外,Cloud SQL for PostgreSQL 还包含 3.3.0 版 pgRouting 扩展程序(该扩展程序在 PostGIS 的基础上进行了扩展)。pgRouting 扩展程序通过网络路由和分析增强了地理空间处理。
您可以手动将 PostGIS 及其相关扩展程序升级到最新版本。如需详细了解如何升级 PostGIS 扩展程序,请参阅升级 PostGIS。
数据类型扩展程序
扩展程序 | 说明 |
btree_gin | 提供实现 B 树等效行为的 GIN 运算符类示例。 Cloud SQL for PostgreSQL 9.6 使用 1.0 版。PostgreSQL 10 使用 1.2 版。所有其他版本都使用 1.3 版。 |
btree_gist | 提供实现 B 树等效行为的 GiST 索引运算符类。 Cloud SQL for PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12 和 13 使用 1.5 版。PostgreSQL 14 使用 1.6 版。 |
chkpass | 实现专用于存储加密密码的 chkpass 数据类型。Cloud SQL for PostgreSQL 9.6 和 10 使用 1.0 版。不支持其他版本。 |
citext | 提供不区分大小写的字符串类型 citext 。Cloud SQL for PostgreSQL 9.6 使用 1.3 版。PostgreSQL 10 使用 1.4 版。PostgreSQL 11 使用 1.5 版。PostgreSQL 12、13 和 14 使用 1.6 版。 |
cube | 实现 cube 数据类型,用于表示多维数据集。Cloud SQL for PostgreSQL 9.6 和 10 使用 1.2 版。PostgreSQL 11 使用 1.3 版。PostgreSQL 12 和 13 使用 1.4 版。 PostgreSQL 14 使用 1.5 版。 |
hstore | 实现 hstore 数据类型,用于在单一 PostgreSQL 值内存储键值对集合。Cloud SQL for PostgreSQL 9.6 和 10 使用 1.4 版。PostgreSQL 11 使用 1.5 版。PostgreSQL 12 使用 1.6 版。PostgreSQL 13 使用 1.7 版。PostgreSQL 14 使用 1.8 版。 |
isn | 提供用于某些国际产品编号标准的数据类型。 Cloud SQL for PostgreSQL 9.6 和 10 使用 1.1 版。所有其他版本都使用 1.2 版。 |
ip4r | 提供 IPv4/v6 地址的数据类型、地址范围以及索引支持。 Cloud SQL for PostgreSQL 使用 2.4.2 版。 |
ltree | 实现 ltree 数据类型,用于表示采用分层树状结构存储的数据的标签。Cloud SQL for PostgreSQL 9.6、10、11 和 12 使用 1.1 版。PostgreSQL 13 和 14 使用 1.2 版。 |
lo | 支持管理大对象(也称为 LO 或 BLOB)。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
postgresql-hll | 引入了一种新的数据类型 hll ,它是一个 HyperLogLog 数据结构。另请参阅本文档中的 postgresql-hll。Cloud SQL for PostgreSQL 使用 2.16 版。 |
prefix | 提供前缀匹配以及索引支持。 Cloud SQL for PostgreSQL 使用 1.2.0 版。 |
语言扩展程序
扩展程序 | 说明 |
plpgsql | 一种可加载的过程语言,用于创建函数、过程和触发器。您还可以使用此语言直接执行 DO 代码块中的代码。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
plv8 | 提供可启用 JavaScript 的过程语言。 Cloud SQL for PostgreSQL 使用 3.2.0 版,后者又使用 V8 JavaScript 引擎 11.5 版。 |
其他扩展程序
扩展程序 | 说明 |
amcheck | 提供用于验证关系结构的逻辑一致性的函数,使 pg_amcheck 应用能够检查损坏情况。 |
auto_explain | 启用慢速语句执行计划的自动日志记录功能,以便进行问题排查等。提供执行 EXPLAIN 命令功能的自动化方法。另请参阅本文档中的 auto_explain。 |
autoinc | 提供用于自动递增字段的函数。此触发器会将序列的下一个值存储到整数字段中。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
bloom | 提供一种基于布隆过滤器访问索引的方法。布隆过滤器是一种节省空间的数据结构,可用于测试某个元素是否为集合成员。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
dblink | 提供从数据库会话连接到 PostgreSQL 数据库的功能。另请参阅本文档中的 dblink。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
decoderbufs | 一种 PostgreSQL 逻辑解码器,用于将输出数据作为协议缓冲区提供,并针对 Debezium 进行调整。 |
dict_int | 用于全文搜索的插件式字典模板,此搜索会控制整数的索引。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
earthdistance | 提供两种计算地球表面大圆距离的方法。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
fuzzystrmatch | 提供多种用于确定字符串之间的相似性和差异的函数。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
insert_username | 提供用于将当前用户的名称存储到文本字段中的函数。您可以使用此扩展程序来跟踪上次修改数据库表中的行的用户。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
intagg | 提供整数聚合器和枚举器。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
intarray | 提供一组函数和运算符,用于操控不含 null 的整数数组,并对其执行索引搜索操作。 Cloud SQL for PostgreSQL 9.6、10、11 和 12 使用 1.2 版。PostgreSQL 13 使用 1.3 版。PostgreSQL 14 使用 1.5 版。 |
moddatetime | 提供用于将当前时间存储到 timestamp 字段中的函数。您可以使用此扩展程序来跟踪上次修改数据库表中的行的时间。Cloud SQL for PostgreSQL 使用 1.0 版。 |
oracle_fdw | 提供外部数据封装容器 (fdw),用于轻松高效地访问 Oracle 数据库。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
orafce | 提供模拟 Oracle 数据库中的部分函数和软件包的函数和运算符。使用这些函数可以将 Oracle 应用移植到 PostgreSQL。 Cloud SQL for PostgreSQL 9.6 和 10 使用 4.6.1 版。PostgreSQL 11 及更高版本使用 4.7.0 版。 |
pageinspect | 在较低级别检查数据库页面的内容。另请参阅本文档中的 pageinspect。 Cloud SQL for PostgreSQL 9.6 使用 1.5 版。PostgreSQL 10 使用 1.6 版。PostgreSQL 11 和 12 使用 1.7 版。PostgreSQL 13 和 14 使用 1.8 版。 |
pgAudit | 收集审核数据。
所有 pgAudit 版本的审核日志文件可能设置的值为 如需详细了解如何将此扩展程序与 Cloud SQL 搭配使用,请参阅 使用 pgAudit 审核 PostgreSQL。 |
pg_background | 让您可以在后台工作器中运行任意命令。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
pg_bigm | 启用全文搜索,并允许二元语法索引以加快全文搜索速度。另请参阅本文档中的 pg_bigm。 |
pg_buffercache | 提供一种实时检查共享缓冲区缓存所发生情况的方法。 Cloud SQL for PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12、13 和 14 使用 1.3 版。 |
pg_cron | 提供基于 Cron 的作业调度器。此扩展程序允许 Cron 语法直接从数据库调度 PostgreSQL 命令。如需详细了解此扩展程序,请参阅本文档中的 pg_cron。 Cloud SQL for PostgreSQL 版本 10 及更高版本使用 1.6.0 版。 |
pgcrypto | 为 PostgreSQL 提供加密函数。 Cloud SQL for PostgreSQL 使用 1.3 版。 |
pglogical | 为 PostgreSQL 提供逻辑复制。请参阅设置逻辑复制和解码。 Cloud SQL for PostgreSQL 使用 2.4.3 版。 |
pgfincore | 一组函数,用于管理来自 PostgreSQL 的操作系统磁盘缓存内存中的页面。另请参阅本文档中的 pgfincore。 Cloud SQL for PostgreSQL 使用 1.3.1 版。 |
pg_freespacemap | 检查可用空间映射 (FSM)。
另请参阅本文档中的 pg_freespacemap。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
pg_hint_plan | 让您可以使用提示来改进 PostgreSQL 执行计划,提示是 SQL 注释中的简单说明。另请参阅本文档中的 pg_hint_plan。 |
pgoutput | 逻辑复制使用此插件进行变更数据捕获。
pgoutput 是一个默认插件,因此所有 Cloud SQL for PostgreSQL 版本都支持此插件。 |
pg_partman | 让您能够创建和管理基于时间的基于序列的表分区集。另请参阅本文档中的 pg_partman。 Cloud SQL for PostgreSQL 使用 4.7.4 版。 |
pg_prewarm | 提供一种将关系数据加载到操作系统缓冲区缓存或 PostgreSQL 缓冲区缓存的便捷方式。 Cloud SQL for PostgreSQL 9.6 和 10 使用 1.1 版。PostgreSQL 11、12、13 和 14 使用 1.2 版。 |
pg_proctab | 让您可以将 pg_top 与 Cloud SQL for PostgreSQL 搭配使用,并从操作系统进程表中生成报告。另请参阅本文档中的 pg_proctab。 |
pg_repack | 可让您消除表和索引中的臃肿。
(可选)可让您执行在线集群(按集群索引对表排序)。另请参阅本文档中的 pg_repack。 Cloud SQL for PostgreSQL 使用 1.5.0 版。 |
pgrowlocks | 为指定表提供行锁定信息。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
pgstattuple | 提供各种函数来获取元组级统计信息。 Cloud SQL for PostgreSQL 9.6 使用 1.4 版。所有其他版本都使用 1.5 版。 |
pg_similarity | 提供对 PostgreSQL 上的相似度查询的支持。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
pg_squeeze | 从表中移除未使用的空间,并视需要使用索引对表的记录或行(元组)进行排序。如需详细了解此扩展程序,请参阅本文档中的 pg_squeeze。 Cloud SQL for PostgreSQL 版本 11 及更高版本使用 1.5 版。 |
pg_stat_statements | 提供一种跟踪所执行所有 SQL 语句的执行统计信息的方法。 Cloud SQL for PostgreSQL 9.6 使用 1.4 版。PostgreSQL 10 和 11 使用 1.6 版。PostgreSQL 12 使用 1.7。PostgreSQL 13 使用 1.8。 PostgreSQL 14 使用 1.9。 |
pgTAP | 为 PostgreSQL 提供使用 PL/pgSQL 和 PL/SQL 编写的单元测试框架。 Cloud SQL for PostgreSQL 使用 1.3.0 版。 |
pg_trgm | 提供多种函数和运算符(用于根据三元语法匹配来确定字母数字文本的相似性),以及索引运算符类(支持快速搜索类似字符串)。 Cloud SQL for PostgreSQL 9.6 和 10 使用 1.3 版。PostgreSQL 11 和 12 使用 1.4 版。 PostgreSQL 13 使用 1.5。 PostgreSQL 14 使用 1.6 版。 |
pgtt | 在 PostgreSQL 数据库中创建和管理 DB2 或 Oracle 样式的全局临时表。 |
pgvector |
一个开源扩展程序,用于在 PostgreSQL 数据库中存储和搜索矢量嵌入。 |
pg_visibility | 提供了一种方法来检查表的可见性映射 (VM) 和页面级可见性信息。另请参阅本文档中的 pg_visibility。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
pg_wait_sampling | 收集等待事件的采样统计信息,为服务器上的进程提供等待事件数据。Cloud SQL for PostgreSQL 使用 1.1.5 版。 |
PL/Proxy | 这是一个过程语言处理程序,其具有可选的分片功能并且允许在 PostgreSQL 数据库之间调用远程过程。
另请参阅本文档中的 PL/Proxy。 Cloud SQL for PostgreSQL 使用 2.11.0 版。 |
postgres_fdw | 允许在实例内或跨实例创建外部数据封装容器。另请参阅本文档中的 postgres_fdw。 Cloud SQL for PostgreSQL 9.6、10、11、12 和 13 使用 1.0 版。PostgreSQL 14 使用 1.1 版。 |
postgresql_anonymizer | 遮盖或替换 PostgreSQL 数据库中的个人身份信息 (PII) 或敏感数据。如需了解详情,请参阅 postgresql_anonymizer 部分。 Cloud SQL for PostgreSQL 使用 2.0.0 版。 |
postgresql_hll | 提供用于估算集合基数的 HyperLogLog ( Cloud SQL for PostgreSQL 使用 2.18 版。 |
rdkit | 化学信息学和机器学习软件的集合。您可以使用此扩展程序来比较、操纵和识别分子结构。 Cloud SQL for PostgreSQL 使用 4.2.0 版。 |
refint | 包含用于检查外键限制条件、引用表和被引用表的函数。此扩展程序还使用服务器编程接口 (SPI)。Cloud SQL for PostgreSQL 使用 1.0 版。 |
sslinfo | 提供当前客户端在连接到实例时所提供的 SSL 证书的相关信息。 Cloud SQL for PostgreSQL 使用 1.2 版。 |
tablefunc | 包括返回表(多行)的各种函数。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
tcn | 提供触发器函数,以通知监听器数据库表内容的更改。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
tsm_system_rows | 提供 SYSTEM_ROWS 表采样方法,该方法可用于 SELECT 命令的 TABLESAMPLE 子句。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
tsm_system_time | 提供 SYSTEM_TIME 表采样方法,该方法可用于 SELECT 命令的 TABLESAMPLE 子句。 Cloud SQL for PostgreSQL 使用 1.0 版。 |
unaccent | 这是一个文本搜索字典,用于从词素中移除重音符号(变音符号)。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
uuid-ossp | 提供用于使用若干标准算法之一生成通用唯一标识符 (UUID) 的函数。 Cloud SQL for PostgreSQL 使用 1.1 版。 |
详细了解一些 PostgreSQL 扩展程序
本节详细介绍了上面的表格中的一些受支持的 PostgreSQL 扩展程序。
auto_explain
要开始在实例上使用此扩展程序,请将 cloudsql.enable_auto_explain
标志设置为 on
。如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
或者,对于具有(仅具有)cloudsqlsuperuser
角色的用户,您可以使用 load
命令为一个会话加载此扩展程序。
dblink
在数据库会话中,您可以使用此扩展程序连接到 PostgreSQL 数据库并执行查询。
目前,此扩展程序适用于同一 VPC 网络中的两个 Cloud SQL 专用 IP 实例,也适合在同一实例中跨数据库使用。
如需了解详情,请参阅 PostgreSQL 文档中的 dblink。
使用 dblink 通过密码进行连接
要连接到数据库或者以其他用户身份连接到同一实例,您必须指定密码。为了举例说明(不用于生产目的),下面提供了一个代码段:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
或者,如需仅设置连接,以下是用于实现目的的代码段(不是为了生产目的):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
在不使用密码的情况下,使用 dblink 进行连接
如需以同一用户身份连接到同一实例,您可以在不使用密码的情况下进行连接。例如:
设置以下数据库标志,在不使用密码的情况下启用本地连接
cloudsql.allow_passwordless_local_connections
在不指定主机的情况下进行连接,这意味着连接到同一实例。示例如下:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
结果可能类似于以下内容:
income -------- 1000 (1 row)
如需连接同一实例中的数据库,则不能将主机设置为 localhost 或 127.0.0.1
。而是必须使用 Google Cloud 控制台中显示的实例 IP 地址。
另请参阅本文档中的 postgres_fdw 和 PL/Proxy。
pageinspect
此扩展程序会在较低级别检查数据库页面的内容。 如需了解详情,请参阅 PostgreSQL 文档中的 pageinspect。
pg_bigm
此扩展程序启用全文搜索,并允许二元语法索引以加快全文搜索速度。
要开始在实例上使用此扩展程序,请将 cloudsql.enable_pg_bigm
标志设置为 on
。此外,系统还支持以下标志:
pg_bigm.enable_recheck
pg_bigm.gin_key_limit
pg_bigm.similarity_limit
如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
pg_cron
要开始在实例上使用 pg_cron,请将 cloudsql.enable_pg_cron
标志设置为 on
。如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
这些作业配置为后台工作器,因此您可能需要使用标准 PostgreSQL 方法(例如 max_worker_processes
标志)来调整这些后台工作器的数量。
对于此扩展程序,Cloud SQL 支持后台工作器模式,但不支持 libpq 接口。因此,不需要直接涉及此扩展程序的信任身份验证。
pgfincore
此扩展程序包含多个函数,用于管理来自 PostgreSQL 的操作系统磁盘缓存内存中的页面。如需了解详情,请参阅 Terraform 文档。
pg_freespacemap
此扩展程序会检查可用空间映射 (FSM)。如需了解详情,请参阅 PostgreSQL 文档中的 pg_freespacemap。
pg_hint_plan
要开始在实例上使用此扩展程序,请将 cloudsql.enable_pg_hint_plan
标志设置为 on
。如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
或者,仅针对具有 cloudsqlsuperuser
角色的用户,您可以使用 load
命令为一项会话加载此扩展程序。
pg_partman
通过此扩展程序,您可以创建和管理基于时间的基于序列的表分区集。
在 Cloud SQL 中,此扩展程序不包括用于自动分区维护的后台工作器。例如,您可以使用 Cloud Scheduler,通过定期调用维护函数来驱动维护。
pg_proctab
以下是使用 pg_proctab 扩展程序启用 pg_top 实用程序的步骤:
- 在 psql 工具中,为 pg_proctab 运行 CREATE EXTENSION 命令。
- 下载并运行 pg_top。
- 连接到 Cloud SQL for PostgreSQL 实例时,请添加
-r
选项,用于连接到远程数据库以获取指标。
输出中包含的以下实例范围指标包括实例中其他支持代理和服务的使用情况:
- 负载平均值
- CPU 状态(% user、nice、system、idle 和 iowait)
- 内存(已用、空闲和已缓存)
pg_repack
借助此扩展程序,您可以消除表和索引中的臃肿。(可选)您可以使用此扩展程序执行在线集群(按集群索引对表排序)。如需了解详情,请参阅 pg_repack 文档。此外,要在 Cloud SQL 中使用此扩展程序,您需要执行一个特殊过程向用户添加权限。
如果 cloudsqlsuperuser
角色以外的用户想要使用扩展程序,您必须向该用户授予 cloudsqlsuperuser
权限。如需了解详情,请参阅本文档中的超级用户权限的要求。以下示例使用 GRANT
命令添加必要的权限。
添加权限示例
在下面的示例中,csuper1
是 cloudsqlsuperuser
,testdb
是 testuser
拥有的数据库。如需在 testdb
中创建 pg-repack 扩展程序,请先运行以下命令:
以
cloudsqlsuperuser
身份连接到testdb
:psql -U csuper1 -d testdb;
向
csuper1
授予数据库所有者testuser,
:GRANT testuser TO csuper1;
创建扩展程序:
CREATE EXTENSION pg_repack;
以
csuper1
的身份在表上运行pg_repack
命令,例如testdb
中的t1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
pg_repack 作业完成后,请撤销您在第 2 步中执行的授权:
REVOKE testuser FROM csuper1;
pg_repack
命令可能会失败,并显示以下错误:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
如果发生此错误,请尝试将 TCP Keepalive 设置为较小的值,然后运行 pg_repack
命令。如需了解详情,请参阅连接超时(来自 Compute Engine)。
pg_squeeze
此扩展程序会从表中移除未使用的空间,并视需要使用索引对表的元组进行排序。如需开始在实例上使用此扩展程序,请将 cloudsql.enable_pg_squeeze
标志设置为 on
。
此扩展程序还支持通过将更多信息写入预写式日志 (WAL) 进行逻辑解码。如需为该扩展程序启用此功能,请将 cloudsql.logical_decoding
标志设置为 on
,从而将 wal_level
配置参数设置为 logical
或更高级别。
该扩展程序需要为 max_replication_slots
标志设置值。如果您没有为此标志指定值,请将值设置为 1
。否则,请在为此标志设置的值的基础上增加 1。
如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
pgtt
要开始在实例上使用此扩展程序,请将 pgtt.enabled
标志设置为 on
。如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
pg_visibility
此扩展程序提供了一种方法来检查表的可见性映射 (VM) 和页面级可见性信息。如需了解详情,请参阅 PostgreSQL 文档中的 pg_visibility。
PL/Proxy
此扩展程序是一个过程语言处理程序,其具有可选的分片功能并且允许在 PostgreSQL 数据库之间调用远程过程。
如需了解详情,请参阅 PL/Proxy 文档。
连接的目标实例和连接实例必须位于同一 VPC 网络中。此外,您无法在 Google Cloud 控制台中为集群实例选择仅允许 SSL 连接按钮。
如需连接同一实例中的数据库,则不能将主机设置为 localhost 或 127.0.0.1
。而是必须使用 Google Cloud 控制台中显示的实例 IP 地址。
另请参阅本文档中的 postgres_fdw 和 dblink。
postgresql_anonymizer
要开始在实例上使用此扩展程序,请将 cloudsql.enable_anon
标志设置为 on
。如需了解如何设置标志并查看此扩展程序支持的标志,请参阅配置数据库标志。
postgres_fdw
此扩展程序允许来自其他(“外部”)PostgreSQL 数据库的表在当前数据库中公开显示为“外部”表。然后,这些表就可以使用了,就好像它们是本地表一样。如需了解详情,请参阅 PostgreSQL 文档中的 postgres_fdw。
此扩展程序适用于同一 VPC 网络中的两个 Cloud SQL 专用 IP 实例,也适合在同一实例中跨数据库使用。
如需连接同一实例中的数据库,则不能将主机设置为 localhost 或 127.0.0.1
。而是需要使用针对 Google Cloud 控制台中的实例显示的 IP 地址。
此外,对于存储外部数据的实例,您可以在 Google Cloud 控制台中选择仅允许 SSL 连接选项。您不能选择需要受信任的客户端证书选项。只有 cloudsqlsuperuser
可以是 postgres_fdw
外部数据封装容器的所有者。
postgresql-hll
此扩展程序引入了一种新的数据类型 hll
,它是一个 HyperLogLog 数据结构。如需了解详情,请参阅 postgresql-hll 文档。