Important
Azure Cosmos DB for PostgreSQL 处于停用路径,不再建议用于新项目。 请改用以下两个服务之一:
对于 PostgreSQL 工作负载:使用 Azure Database For PostgreSQL 的弹性群集功能 ,以使用开源 Citus 扩展中包含的横向扩展和分布式 PostgreSQL 功能。 有关迁移指南,请参阅 使用弹性群集迁移到 Azure Database for PostgreSQL。
对于 NoSQL 工作负荷,请使用 Azure Cosmos DB for NoSQL 作为分布式数据库解决方案,该解决方案包括 99.999% 可用性服务级别协议 (SLA)、即时自动缩放和跨多个区域的自动故障转移。
“复制”命令用于在文件和数据表之间移动数据。 “COPY”是基于服务器的命令,需要访问磁盘,通常仅限服务器管理员使用。 不过,Azure Cosmos DB for PostgreSQL 作为平台即服务 (PaaS) 解决方案运行,这意味着不会为用户授权超级用户权限。 因此,该平台并不完全支持“COPY”命令。
作为替代办法,\COPY 和其他客户端接口中提供 psql 命令来帮助用户与执行命令所在的计算机的本地文件系统直接进行交互。
Azure Blob 存储支持
pg_azure_storage 扩展将 Azure Blob 存储作为数据源来突破磁盘访问限制。 启用后,该扩展还通过 Azure Blob 存储支持增强了内置 COPY 命令。
使用 github_users 命令将数据加载到 COPY 表中:
COPY github_users
FROM 'https://pgquickstart.blob.core.windows.net/github/users.csv.gz';
目前,该扩展支持以下文件格式:
| 格式 | 说明 |
|---|---|
| csv | PostgreSQL COPY 使用的逗号分隔值格式 |
| tsv | 制表符分隔值,默认 PostgreSQL COPY 格式 |
| 二进制 | 二进制 PostgreSQL COPY 格式 |
| 文本消息 | 包含单个文本值的文件(例如大型 JSON 或 XML) |
注释
Postgres Native COPY 命令仍支持语法和选项,但以下例外:
FREEZE [ boolean ]HEADER MATCH
尚不支持
COPY TO语法。\COPY是基于psql的命令,不支持 Azure Blob 存储集成。\COPY虽然允许在群集上执行导入/导出,但需要在整个网络中移动/复制文件。
后续步骤
详细了解如何使用 pg_azure_storage 扩展。