Azure Cosmos DB for PostgreSQL 上的“复制”命令
“复制”命令用于在文件和数据表之间移动数据。 “COPY
”是基于服务器的命令,需要访问磁盘,通常仅限服务器管理员使用。 不过,Azure Cosmos DB for PostgreSQL 作为平台即服务 (PaaS) 解决方案运行,这意味着不会为用户授权超级用户权限。 因此,该平台并不完全支持“COPY
”命令。
作为替代办法,psql
和其他客户端接口中提供 \COPY
命令来帮助用户与执行命令所在的计算机的本地文件系统直接进行交互。
Azure Blob 存储支持
pg_azure_storage
扩展将 Azure Blob 存储作为数据源来突破磁盘访问限制。 启用后,该扩展还通过 Azure Blob 存储支持增强了内置 COPY
命令。
使用 COPY
命令将数据加载到 github_users
表中:
COPY github_users
FROM 'https://pgquickstart.blob.core.chinacloudapi.cn/github/users.csv.gz';
目前,该扩展支持以下文件格式:
format | description |
---|---|
csv | PostgreSQL COPY 使用的逗号分隔值格式 |
tsv | 制表符分隔值,默认 PostgreSQL COPY 格式 |
binary | 二进制 PostgreSQL COPY 格式 |
text | 包含单个文本值的文件(例如大型 JSON 或 XML) |
注意
Postgres Native COPY 命令仍支持语法和选项,但以下例外:
FREEZE [ boolean ]
HEADER MATCH
尚不支持
COPY TO
语法。\COPY
是基于psql
的命令,不支持 Azure Blob 存储集成。\COPY
虽然允许在群集上执行导入/导出,但需要在整个网络中移动/复制文件。
后续步骤
详细了解如何使用 pg_azure_storage 扩展。