Comando COPY no Azure Cosmos DB for PostgreSQL
O comando COPY é usado para mover dados entre arquivos e tabelas de banco de dados. COPY
é um comando baseado no servidor que exige acesso ao disco, geralmente limitado aos administradores do servidor. Entretanto, o Azure Cosmos DB for PostgreSQL opera como uma solução PaaS (Plataforma como Serviço), o que significa que os usuários não recebem privilégios de superusuário. Portanto, o comando COPY
não é totalmente compatível com a plataforma.
Como alternativa, \COPY
é um comando disponível em psql
e em outras interfaces do cliente o que facilita a interação direta com o sistema de arquivos local da máquina em que ele é executado.
Suporte para o Armazenamento de Blobs do Azure
A extensão pg_azure_storage
supera a limitação de acesso ao disco, aproveitando o Armazenamento de Blobs do Azure como uma fonte de dados. Quando habilitada, a extensão também melhora o comando COPY
interno com suporte para o Armazenamento de Blobs do Azure.
Carregue os dados na tabela github_users
usando o comando COPY
:
COPY github_users
FROM 'https://pgquickstart.blob.core.windows.net/github/users.csv.gz';
Atualmente, a extensão dá suporte aos seguintes formatos de arquivo:
format | descrição |
---|---|
csv | Formato de valores separados por vírgula usado pelo PostgreSQL COPY |
tsv | Valores separados por tabulação, o formato PostgreSQL COPY |
binary | Formato PostgreSQL COPY binário |
text | Um arquivo que contém um único valor de texto (por exemplo, JSON ou XML grande) |
Observação
A sintaxe e as opções suportadas permanecem igualmente no comando COPY do Postgres Native, com as seguintes exceções:
FREEZE [ boolean ]
HEADER MATCH
A sintaxe
COPY TO
ainda não é suportada.\COPY
é um comando baseado empsql
e não tem suporte para a integração do Armazenamento de Blobs do Azure.\COPY
permite executar a importação/exportação no cluster, mas exige a movimentação/cópia de arquivos pela rede.
Próximas etapas
Saiba mais sobre o uso da extensão pg_azure_storage.