Importar um arquivo CSV

Esta página descreve como importar um arquivo CSV para um banco de dados do AlloyDB.

O procedimento para realizar a importação envolve estas tarefas:

  1. Faça upload do arquivo CSV em um bucket do Cloud Storage.

  2. Prepare um host de cliente para realizar a operação de importação.

  3. Importe o arquivo CSV para o banco de dados.

  4. Limpe os recursos criados para realizar o procedimento.

Antes de começar

  • É necessário ter a função básica de proprietário (roles/owner) ou editor (roles/editor) do IAM no projeto do Google Cloud que você está usando ou ter estes papéis predefinidos do IAM:
    • Administrador do AlloyDB (roles/alloydb.admin) ou leitor do AlloyDB (roles/alloydb.viewer)
    • Administrador do Storage (roles/storage.admin)
    • Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1)

Fazer o upload do arquivo CSV

Para enviar o arquivo CSV, crie um bucket do Cloud Storage e envie o arquivo CSV para ele.

  1. Crie um bucket de armazenamento regional padrão no projeto e na região em que está localizado o banco de dados AlloyDB.

  2. Faça upload do arquivo CSV no bucket de armazenamento criado.

Preparar um host de cliente

Para preparar um host de cliente para realizar a operação de importação, crie uma VM do Compute Engine que possa se conectar à instância principal do AlloyDB onde seu banco de dados está localizado e instale a ferramenta psql e a Google Cloud CLI nessa VM.

  1. Siga as instruções Conectar um cliente psql a uma instância para criar uma VM do Compute Engine com a conectividade adequada e a ferramenta psql instalada. Ao seguir estas instruções, aloque armazenamento local suficiente para a VM do Compute Engine e para acomodar o arquivo CSV que você está importando.

  2. Instale a gcloud CLI para fornecer acesso de linha de comando ao arquivo CSV no bucket do Cloud Storage.

Importar o arquivo CSV

Para importar o arquivo CSV, você recebe o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado e usa a ferramenta psql para criar uma tabela que contenha os dados CSV e, em seguida, importar.

  1. Acesse o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado confira os detalhes.
  2. Conecte-se por SSH à VM do Compute Engine.

    Console

    1. No console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância que você criou.

      Botão "SSH" ao lado do nome da instância.

    gcloud

    Use o comando gcloud compute ssh para se conectar à instância criada.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Substitua:

    • PROJECT_ID: o ID do projeto que contém a instância.
    • ZONE: o nome da zona em que a instância está localizada.
    • VM_NAME: o nome da instância
  3. Copie o arquivo CSV para o sistema de arquivos local do host do cliente:
    gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
  4. Importe o arquivo CSV:
    1. Execute a ferramenta de cliente psql e, no prompt do psql, conecte-se ao banco de dados:
      psql -h IP_ADDRESS -U postgres
      \c DB_NAME
      

      Será necessário inserir a senha do usuário postgres.

      • IP_ADDRESS: o endereço IP da instância principal.
      • DB_NAME: o nome do banco de dados em que você quer armazenar os dados CSV.
    2. Crie uma tabela para conter os dados CSV. Por exemplo:
      CREATE TABLE weather (
        city     varchar(80),
        temp_lo  int,
        temp_hi  int,
        prcp     real,
        date     date
      );

      A instrução CREATE TABLE acima é apenas para fins de ilustração. Crie uma tabela com colunas que correspondam aos dados do CSV.

    3. Importe os dados do arquivo CSV:
    \copy TABLE_NAME(COLUMN_LIST)
      FROM 'CSV_FILE_NAME'
      DELIMITER ','
      CSV HEADER
    ;
    • TABLE_NAME: o nome da tabela que você criou na etapa anterior.
    • (COLUMN_LIST): uma lista separada por vírgulas dos nomes das colunas da tabela para importar dados, na ordem em que os dados aparecem no arquivo CSV.
    • CSV_FILE_NAME: o arquivo CSV.
    • HEADER: indicação de que o arquivo CSV contém uma linha de cabeçalho a ser ignorada. Caso contrário, omita esse parâmetro.

    O comando \copy em psql usa as mesmas opções e argumentos do comando COPY do PostgreSQL para controlar a operação de importação de dados.

Limpar recursos

Depois de importar o arquivo CSV, você pode excluir o bucket do Cloud Storage e a VM do Compute Engine usada durante o procedimento de importação.