Importar dados para o Cloud SQL

Nesta página, descrevemos como importar dados para o Cloud SQL. Para práticas recomendadas de importação de dados, consulte Práticas recomendadas para importação e exportação de dados.

Como importar arquivos de despejo SQL para o Cloud SQL

Antes de começar

  • Crie os arquivos de despejo SQL com os parâmetros corretos.

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

  • O banco de dados em que você está importando já precisa existir na instância do Cloud SQL.

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

Como importar um arquivo de despejo SQL

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

Console

  1. Se você ainda não fez isso, crie seu arquivo de despejo SQL usando as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  2. Crie um intervalo do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um intervalo, consulte Como criar intervalos do Storage.

  3. Carregue o arquivo no seu intervalo.

    Para ajuda sobre o upload de arquivos para intervalos, consulte Como fazer o upload de um objeto.

  4. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud Platform.

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

  5. Selecione a instância para abrir a respectiva página Detalhes da instância.
  6. Clique em Importar na barra de botões.
  7. Insira o caminho do intervalo e arquivo de despejo SQL que você enviou. Se preferir, procure esse caminho clicando em Procurar e clique duas vezes no nome do intervalo, selecione o arquivo e clique em Selecionar.

    Você pode usar um arquivo compactado (.gz) ou descompactado (.sql).

  8. Em Formato, selecione SQL.
  9. Selecione o banco de dados em que você quer que os dados sejam importados.

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

  10. 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.

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

gcloud

  1. Se você ainda não fez isso, crie seu arquivo de despejo SQL usando as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  2. Crie um intervalo do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um intervalo, consulte Como criar intervalos do Storage.

  3. Carregue o arquivo no seu intervalo.

    Para ajuda sobre o upload de arquivos para intervalos, consulte Como fazer o upload de um objeto.

  4. Descreva a instância para a qual está fazendo a importação:
    gcloud sql instances describe [INSTANCE_NAME]
    
  5. Copie o campo serviceAccountEmailAddress.
  6. Adicione a conta de serviço ao intervalo ACL como um gravador:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  7. Adicione a conta de serviço ao arquivo de importação como leitor:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:R gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    
  8. Importe o banco de dados:
    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                                --database=[DATABASE_NAME]
    

    Para mais 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.

  9. Caso não seja necessário manter as permissões fornecidas pelas Access Control Lists definidas anteriormente, remova-as agora:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

cURL

  1. Se você ainda não fez isso, crie seu arquivo de despejo SQL usando as instruções em Como exportar dados para garantir que ele seja utilizável pelo Cloud SQL.

  2. Crie um intervalo do Cloud Storage, caso ainda não tenha feito isso.

    Se precisar de ajuda para criar um intervalo, consulte Como criar intervalos do Storage.

  3. Carregue o arquivo no seu intervalo.

    Para ajuda sobre o upload de arquivos para intervalos, consulte Como fazer o upload de um objeto.

  4. Forneça à instância permissões de gravação no intervalo e acesso de leitura ao arquivo.

    Para ajuda sobre a definição de ACLs, consulte Como definir ACLs.

  5. Importe seu arquivo de despejo:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"importContext":
                    {"fileType": "SQL",
                     "uri": "gs://[BUCKET_NAME]/[PATH_TO_DUMP_FILE]",
                     "database": "[DATABASE_NAME]" }}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/import
    

    Para utilizar 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.
  6. Caso não seja necessário manter as permissões fornecidas pelas Access Control Lists definidas anteriormente, remova-as agora:

Como importar arquivos CSV para o Cloud SQL

Antes de começar

Requisitos do formato de 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 Platform.

    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 para onde quer importar o arquivo CSV.
  7. Você pode, opcionalmente, especificar um usuário para usar na importação.
  8. Clique em Importar para iniciar a importação.

gcloud

  1. Crie um intervalo 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 acesso a outros dados.

  2. Faça upload do arquivo CSV para o intervalo.
  3. Descreva a instância usada para exportar:
    gcloud sql instances describe [INSTANCE_NAME]
    
  4. Copie o campo serviceAccountEmailAddress.
  5. Adicione a conta de serviço ao intervalo ACL como um gravador:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  6. Adicione a conta de serviço ao arquivo de importação como leitor:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:R gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    
  7. Importe o arquivo:
    gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                --database=[DATABASE_NAME] --table=[TABLE_NAME]
    

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

  8. Caso não seja necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

cURL

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

    Se precisar de ajuda para criar um intervalo, consulte Como criar intervalos do Storage.

  2. Carregue o arquivo no seu intervalo.

    Para ajuda sobre o upload de arquivos para intervalos, consulte Como fazer o upload de um objeto.

  3. Forneça à instância permissões para ler no intervalo.

    Para ajuda sobre a definição de ACLs, consulte Como definir ACLs.

  4. Importe o arquivo:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"importContext":
                      {"fileType": "CSV",
                       "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                       "database": "<DATABASE_NAME>",
                       "csvImportOptions":
                            {"table": "<TABLE_NAME>"}}}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/import
    

    Para utilizar 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 não for necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:

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

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para PostgreSQL