Compartilhar via


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 em psql 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.