Compartir a través de

Azure Cosmos DB for PostgreSQL 中的 PostgreSQL 扩展

适用对象: Azure Cosmos DB for PostgreSQL(由 PostgreSQL 的 Citus 数据库扩展提供支持)

通过使用扩展,PostgreSQL 可以扩展数据库功能。 扩展允许在单个包中将多个相关 SQL 对象捆绑在一起,可以使用单个命令在数据库中加载或删除该包。 在数据库中加载后,扩展可以像内置功能那样运行。 有关 PostgreSQL 扩展的详细信息,请参阅将相关对象打包到扩展中

使用 PostgreSQL 扩展

必须先在数据库中安装 PostgreSQL 扩展,然后才能使用它们。 若要安装特定扩展,请通过 psql 工具运行 CREATE EXTENSION 命令,将打包的对象加载到数据库中。

注意

如果 CREATE EXTENSION 失败并出现权限被拒绝错误,请改为尝试 create_extension() 函数。 例如:

SELECT create_extension('postgis');

若要删除以这种方式安装的扩展,请使用 drop_extension()

Azure Cosmos DB for PostgreSQL 目前支持部分关键扩展(已在此处列出)。 所列扩展以外的扩展不受支持。 不能使用 Azure Cosmos DB for PostgreSQL 创建自己的扩展。

Azure Cosmos DB for PostgreSQL 支持的扩展

下表列出了 Azure Cosmos DB for PostgreSQL 上支持的标准 PostgreSQL 扩展。 还可以通过运行 SELECT * FROM pg_available_extensions; 获取此信息。

群集中安装的每个扩展的版本有时会因 PostgreSQL(11、12、13、14、15 或 16)的版本而异。 下表按数据库版本列出了扩展版本。

Citus 扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
citus Citus 分布式数据库。 9.5 10.2 11.3 12.1 12.1 12.1

数据类型扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
citext 提供不区分大小写的字符串类型。 1.5 1.6 1.6 1.6 1.6 1.6
cube 提供用于多维数据集的数据类型。 1.4 1.4 1.4 1.5 1.5 1.5
hll 提供 HyperLogLog 数据结构。 2.18 2.18 2.18 2.18 2.18 2.18
hstore 提供用于存储键值对集的数据类型。 1.5 1.6 1.7 1.8 1.8 1.8
isn 提供用于国际产品编号标准的数据类型。 1.2 1.2 1.2 1.2 1.2 1.2
lo 大型对象维护。 1.1 1.1 1.1 1.1 1.1 1.1
ltree 提供用于分层树形结构的数据类型。 1.1 1.1 1.2 1.2 1.2 1.2
seg 用于表示线段或浮点间隔的数据类型。 1.3 1.3 1.3 1.4 1.4 1.4
tdigest 用于基于排名的统计信息(如分位数和剪裁方式)在线累积的数据类型。 1.4.1 1.4.1 1.4.1 1.4.1 1.4.1 1.4.1
topn Top-n JSONB 的类型。 2.6.0 2.6.0 2.6.0 2.6.0 2.6.0 2.6.0

全文搜索扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
dict_int 提供用于整数的文本搜索字典模板。 1.0 1.0 1.0 1.0 1.0 1.0
dict_xsyn 用于扩展同义词处理的文本搜索字典模板。 1.0 1.0 1.0 1.0 1.0 1.0
unaccent 删除了词素中重音(附加符号)的文本搜索字典。 1.1 1.1 1.1 1.1 1.1 1.1

函数扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 15
autoinc 用于自动增加字段的函数。 1.0 1.0 1.0 1.0 1.0 1.0
earthdistance 提供一种计算地球表面上的大圆距离的方法。 1.1 1.1 1.1 1.1 1.1 1.1
fuzzystrmatch 提供多个函数,用于确定字符串间的相似性和差异。 1.1 1.1 1.1 1.1 1.1 1.2
insert_username 用于跟踪表更改者的函数。 1.0 1.0 1.0 1.0 1.0 1.0
intagg 整数聚合器和枚举器(已过时)。 1.1 1.1 1.1 1.1 1.1 1.1
intarray 提供用于操作无 null 整数数组的函数和运算符。 1.2 1.2 1.3 1.5 1.5 1.5
moddatetime 用于跟踪上次修改时间的函数。 1.0 1.0 1.0 1.0 1.0 1.0
orafce 函数和运算符,用于模拟 Oracle RDBMS 提供的部分函数和包。 4.9 4.9 4.9
pg_partman 按时间或 ID 管理已分区表。 4.7.4 4.7.4 4.7.4 5.1.0 5.1.0 5.1.0
pg_surgery 用于对受损关系执行手术的函数。 1.0 1.0 1.0
pg_trgm 提供函数和运算符,用于基于三元匹配确定字母数字文本的相似性。 1.4 1.4 1.5 1.6 1.6 1.6
pgcrypto 提供加密函数。 1.3 1.3 1.3 1.3 1.3 1.3
refint 用于实现引用完整性的函数(已过时)。 1.0 1.0 1.0 1.0 1.0 1.0
tablefunc 提供可操作整个表(包括交叉表)的函数。 1.0 1.0 1.0 1.0 1.0 1.0
tcn 触发了更改通知。 1.0 1.0 1.0 1.0 1.0 1.0
timetravel 用于实现按时间顺序查看的函数。 1.0
uuid ossp 生成全局唯一标识符 (UUID)。 1.1 1.1 1.1 1.1 1.1 1.1

索引类型扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
bloom Bloom 访问方法 - 基于签名文件的索引。 1.0 1.0 1.0 1.0 1.0 1.0
btree_gin 提供示例 GIN 运算符类,该类对特定数据类型实现类似 B-tree 的行为。 1.3 1.3 1.3 1.3 1.3 1.3
btree_gist 提供实施 B-tree 的 GiST 索引运算符类。 1.5 1.5 1.5 1.6 1.7 1.7

语言扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
plpgsql PL/pgSQL 可加载过程语言。 1.0 1.0 1.0 1.0 1.0 1.0

其他扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
amcheck 用于验证关系完整性的函数。 1.1 1.2 1.2 1.3 1.3 1.3
dblink 一个支持从数据库会话中连接到其他 PostgreSQL 数据库的模块。 有关此扩展的信息,请参阅“dblink and postgres_fdw”部分。 1.2 1.2 1.2 1.2 1.2 1.2
old_snapshot 允许检查用于实现 old_snapshot_threshold 的服务器状态。 1.0 1.0 1.0
pageinspect 在较低级别检查数据库页的内容。 1.7 1.7 1.8 1.9 1.11 1.12
pg_azure_storage 适用于 PostgreSQL 的 Azure 集成。 1.3 1.3 1.3 1.3
pg_buffercache 提供一种方法用于实时检查共享缓冲区缓存的当前状况。 1.3 1.3 1.3 1.3 1.3 1.4
pg_cron PostgreSQL 的作业计划程序。 1.5 1.6 1.6 1.6 1.6 1.6
pg_freespacemap 检查可用空间映射 (FSM)。 1.2 1.2 1.2 1.2 1.2 1.2
pg_prewarm 提供一种方法用于将相关数据加载到缓冲区缓存中。 1.2 1.2 1.2 1.2 1.2 1.2
pg_stat_statements 提供一种方法用于跟踪服务器执行的所有 SQL 语句的执行统计信息。 有关此扩展的信息,请参阅“pg_stat_statements”部分。 1.6 1.7 1.8 1.9 1.10 1.10
pg_visibility 检查可见性映射 (VM) 和页面级别的可见性信息。 1.2 1.2 1.2 1.2 1.2 1.2
pgrowlocks 提供一种显示行级锁定信息的方法。 1.2 1.2 1.2 1.2 1.2 1.2
pgstattuple 提供一种显示元组级别统计信息的方法。 1.5 1.5 1.5 1.5 1.5 1.5
postgres_fdw 外部数据包装器,用于访问外部 PostgreSQL 服务器中存储的数据。 有关此扩展的信息,请参阅“dblink and postgres_fdw”部分。 1.0 1.0 1.0 1.1 1.1 1.1
sslinfo 有关 TLS/SSL 证书的信息。 1.2 1.2 1.2 1.2 1.2 1.2
tsm_system_rows TABLESAMPLE 方法,接受行数作为限制。 1.0 1.0 1.0 1.0 1.0 1.0
tsm_system_time TABLESAMPLE 方法,接受以毫秒为时间单位的限制。 1.0 1.0 1.0 1.0 1.0 1.0
xml2 XPath 查询和 XSLT。 1.1 1.1 1.1 1.1 1.1 1.1

Pgvector 扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
pgvector Postgres 的开源矢量相似性搜索 0.5.1 0.7.0 0.7.0 0.7.0 0.7.0 0.7.0

PostGIS 扩展

扩展名 说明 PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
PostGIS PostgreSQL 的空间和地理对象。 3.3.4 3.4.1 3.4.1 3.4.1 3.4.1 3.4.1
address_standardizer 用于将地址分析成构成元素。 用于支持地理编码地址规范化步骤。 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2
postgis_sfcgal PostGIS SFCGAL 函数。 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2
postgis_topology PostGIS 拓扑空间类型和函数。 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2

pg_stat_statements

pg_stat_statements 扩展已预加载到每个 Azure Cosmos DB for PostgreSQL 群集上,以便为你提供跟踪 SQL 语句执行统计信息的方法。

设置 pg_stat_statements.track 控制扩展要计数的语句。 其默认值为 top,这意味着要跟踪客户端直接发出的所有语句。 另外两个跟踪级别为 noneall

查询执行信息 pg_stat_statements 提供的权限与记录每个 SQL 语句时对服务器性能的影响之间存在权衡。 如果不经常使用 pg_stat_statements 扩展,则建议将 pg_stat_statements.track 设置为 none。 部分第三方监视服务可能依靠 pg_stat_statements 来提供查询性能见解,因此请确认这是否适合你。

可以使用 dblink 和 postgres_fdw 从一台 PostgreSQL 服务器连接到另一台服务器,或者连接到同一服务器中的另一个数据库。 接收服务器需要允许来自发送服务器的连接通过其防火墙。 如果要使用这些扩展通过公共访问在 Azure Cosmos DB for PostgreSQL 群集之间进行连接,请将“允许 Azure 服务和资源访问此群集(或服务器)”设置为“开”。 如果要使用这些扩展来循环回到同一服务器,则也需要启用此设置。 “允许 Azure 服务和资源访问此群集”设置可在针对群集的“Azure 门户”页中的“网络”下找到。 目前,不支持来自 Azure Cosmos DB for PostgreSQL 的出站连接。

orafce 扩展

orafce 扩展中禁用了 utl_file 函数。

后续步骤