Como importar dados para o Cloud SQL

Clique no link a seguir e conheça as Práticas recomendadas para importar e exportar dados.

Para importar dados do Cloud Storage, a conta de serviço da instância precisa ter o papel storage.objectAdmin do Cloud IAM definido no projeto. Para mais informações, consulte Cloud Identity and Access Management para Cloud Storage.

Como importar arquivos dump SQL para o Cloud SQL

Antes de começar

  • Crie os arquivos dump SQL com os parâmetros corretos.

    Para ajuda na criação de arquivos dump SQL prontos para importação no Cloud SQL, consulte Como exportar dados.

  • O banco de dados que receberá a importação precisa existir na instância do Cloud SQL e estar vazio. Não é possível substituir dados atuais.

    Para ajuda sobre a criação de um banco de dados, consulte Como criar um banco de dados.

  • Antes de importar um dump SQL, todos os usuários que têm objetos ou receberam permissões em objetos no banco de dados com dump já precisam existir. Caso contrário, a importação não recriará os objetos com a propriedade e/ou as permissões originais. Às vezes, é isso que você quer, mas geralmente não é.

    Para ajuda com a criação de usuários, consulte Como criar usuários.

Como importar um arquivo dump SQL

Para importar um arquivo dump SQL para uma instância do Cloud SQL:

Console

    Crie um arquivo dump SQL seguindo as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  1. Crie um bucket do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um bucket, consulte Como criar buckets do Storage.

  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  4. Selecione a instância para abrir a respectiva página Detalhes da instância.
  5. Clique em Importar na barra de botões.
  6. Insira o caminho do bucket e do arquivo dump SQL enviado ou, se preferir, procure esse caminho. Para isso, clique em Procurar, clique duas vezes no nome do bucket e, em seguida, selecione o arquivo e clique em Selecionar.

    Escolha entre usar um arquivo compactado (.gz) ou descompactado (.sql).

  7. Em Formato, selecione SQL.
  8. Selecione o banco de dados que receberá os dados importados.

    Isso faz com que o Cloud SQL execute a instrução USE DATABASE antes da importação.

  9. Se você quiser especificar um usuário do PostgreSQL para realizar a importação, selecione o usuário.

    Se o arquivo de importação contiver instruções que precisem ser realizadas por um usuário específico do PostgreSQL, use este campo para especificar esse usuário.

  10. Clique em Importar para iniciar a importação.

gcloud

    Crie um arquivo dump SQL seguindo as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  1. Crie um bucket do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um bucket, consulte Como criar buckets do Storage.

  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Descreva a instância para a qual você está importando:
    gcloud sql instances describe [INSTANCE_NAME]
    
  4. Copie o campo serviceAccountEmailAddress.
  5. Use gsutil iam para conceder o papel do Cloud IAM storage.objectAdmin à conta de serviço do bucket. Para receber ajuda com a configuração de permissões do Cloud IAM, consulte Como usar as permissões do Cloud IAM.
  6. Importe o banco de dados:
    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                                --database=[DATABASE_NAME]
    

    Para informações sobre como usar o comando import sql, consulte a página de referência do comando sql import sql.

    Se o comando retornar um erro como `ERROR_RDBMS`, analise as permissões. Esse erro costuma surgir de problemas de permissões.

  7. Se não for necessário manter as permissões do Cloud IAM definidas anteriormente, remova-as usando gsutil iam.

REST

    Crie um arquivo dump SQL seguindo as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  1. Crie um bucket do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um bucket, consulte Como criar buckets o Storage.

  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Forneça à instância o papel do Cloud IAM storage.objectAdmin no seu bucket. Para receber ajuda com a configuração de permissões do Cloud IAM, consulte Como usar as permissões do Cloud IAM.
  4. Importe seu arquivo dump:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • bucket_name: o nome do bucket do Cloud Storage
    • path_to_dump_file: o caminho para o arquivo de despejo SQL
    • database_name: o nome de um banco de dados dentro da instância do Cloud SQL

    Método HTTP e URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corpo JSON da solicitação:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_dump_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Para usar um usuário diferente para a importação, especifique a propriedade importContext.importUser.

    Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:import.
  5. Se você não precisar manter as permissões do Cloud IAM definidas anteriormente, remova-as agora.

Como importar dados usando o pg_restore

Use o utilitário pg_restore para importar um banco de dados para o Cloud SQL.

pg_restore -h [CLOUD_SQL_INSTANCE_IP] -U [USERNAME] --format=plain --no-owner --no-acl -d [DATABASE_NAME] [SQL_FILE].sql

Para importar em paralelo, use a sinalização -j NUM_CORES. NUM_CORES é o número de núcleos na instância de origem. Use a mesma sinalização com pg_dump para exportar em paralelo.

Como importar arquivos CSV para o Cloud SQL

Antes de começar

Requisitos de formato do arquivo CSV

Arquivos CSV precisam ter uma linha para cada linha de dados e campos separados por vírgula.

Para ver instruções de exportação para um arquivo CSV formatado para o Cloud SQL, consulte Como exportar dados para um arquivo CSV.

Como importar o arquivo CSV

Para importar dados para uma instância do Cloud SQL usando um arquivo CSV:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a respectiva página "Detalhes da instância".
  3. Clique em Importar na barra de botões.
  4. Escolha o arquivo CSV que você enviou para importação na sua instância do Cloud SQL.
  5. Em Formato, selecione CSV.
  6. Especifique o Banco de dados e a Tabela na instância do Cloud SQL em que você quer importar o arquivo CSV.
  7. Se quiser, especifique um usuário para usar na importação.
  8. Clique em Importar para iniciar a importação.

gcloud

  1. Crie um bucket para a importação:

    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra o acesso a outros dados.

  2. Faça upload do arquivo CSV para o bucket.
  3. Descreva a instância usada para exportar:
    gcloud sql instances describe [INSTANCE_NAME]
    
  4. Copie o campo serviceAccountEmailAddress.
  5. Use gsutil iam para conceder o papel do Cloud IAM storage.objectAdmin à conta de serviço do bucket. Para receber ajuda com a configuração de permissões do Cloud IAM, consulte Como usar as permissões do Cloud IAM.
  6. Importe o arquivo:
    gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                --database=[DATABASE_NAME] --table=[TABLE_NAME]
    

    Para informações sobre como usar o comando import csv, consulte a página de referência do comando sql import csv.

  7. Se não for necessário manter as permissões do Cloud IAM definidas anteriormente, remova-as usando gsutil iam.

REST

  1. Crie um bucket do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um bucket, consulte Como criar buckets o Storage.

  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Forneça à instância o papel do Cloud IAM storage.objectAdmin no seu bucket. Para receber ajuda com a configuração de permissões do Cloud IAM, consulte Como usar as permissões do Cloud IAM.
  4. Importe o arquivo:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • bucket_name: o nome do bucket do Cloud Storage
    • path_to_csv_file: o caminho para o arquivo CSV
    • database_name: o nome de um banco de dados dentro da instância do Cloud SQL
    • table_name: o nome da tabela do banco de dados

    Método HTTP e URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corpo JSON da solicitação:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name"
           }
       }
    }
    
    

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Para usar um usuário diferente na importação, especifique a propriedade importContext.importUser.

    Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:import.
  5. Se você não precisar manter as permissões do Cloud IAM definidas anteriormente, remova-as.

Se você receber um erro como ERROR_RDBMS, verifique se a tabela existe. Se a tabela existir, confirme se você tem as permissões corretas no bucket. Para mais informações sobre a configuração do controle de acesso no Cloud Storage, consulte Criar e gerenciar listas de controle de acesso.

Para ver como a solicitação da API REST subjacente é criada nesta tarefa, consulte APIs Explorer na página instances:import.

A seguir