Como 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

  • O arquivo de despejo SQL não precisa conter acionadores, visualizações ou procedimentos armazenados. Se o banco de dados exigir esses componentes, você precisará excluí-los do arquivo de despejo e recriá-los depois de importar os dados.

    Para ajuda na criação de um arquivo de despejo SQL que possa ser importado para o Cloud SQL, consulte Como exportar dados para importação para o Cloud SQL. Se já tiver criado um arquivo de despejo que contenha esses componentes, edite manualmente o arquivo para removê-los ou crie outro arquivo de despejo.

  • 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. Crie seu arquivo de despejo SQL, se você ainda não fez isso, usando os parâmetros necessários para garantir que ele seja utilizável pelo Cloud SQL.

    Se precisar de ajuda para criar um arquivo de despejo SQL, consulte Como criar um arquivo de despejo 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. Faça upload do arquivo CSV para o intervalo.

    Se precisar de ajuda com 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. Clique em Importar para iniciar a importação.

gcloud (Segunda geração)

  1. Crie seu arquivo de despejo SQL, se você ainda não fez isso, usando os parâmetros necessários para garantir que ele seja utilizável pelo Cloud SQL.

    Se precisar de ajuda para criar um arquivo de despejo SQL, consulte Como criar um arquivo de despejo 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. Faça upload do arquivo CSV para o intervalo.

    Se precisar de ajuda com 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 saber 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]
    

gcloud (primeira geração)

  1. Crie seu arquivo de despejo SQL, se você ainda não fez isso, usando os parâmetros necessários para garantir que ele seja utilizável pelo Cloud SQL.

    Se precisar de ajuda para criar um arquivo de despejo SQL, consulte Como criar um arquivo de despejo 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. Faça upload do arquivo CSV para o intervalo.

    Se precisar de ajuda com o upload de arquivos para intervalos, consulte Como fazer o upload de um objeto.

  4. Importe o banco de dados:

    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    

    Se você receber um erro como "ERROR_RDBMS", é possível que não tenha as permissões adequadas para importar desse intervalo. Verifique se você tem pelo menos as permissões "WRITER" (gravação) no intervalo e "READER" (leitura) no arquivo de exportação. Para saber mais sobre como configurar o controle de acesso no Cloud Storage, consulte Criar e gerenciar Access Control Lists.

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

cURL

  1. Crie seu arquivo de despejo SQL, se você ainda não fez isso, usando os parâmetros necessários para garantir que ele seja utilizável pelo Cloud SQL.

    Se precisar de ajuda para criar um arquivo de despejo SQL, consulte Como criar um arquivo de despejo 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. Faça upload do arquivo CSV para o intervalo.

    Se precisar de ajuda com 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 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

  • O banco de dados e a tabela em que você está importando já precisam existir em sua instância do Cloud SQL. Para receber ajuda sobre a criação de um banco de dados, consulte Como criar um banco de dados. Para criar uma tabela, use a instrução SQL CREATE TABLE no cliente mysql.

  • O arquivo CSV precisa estar de acordo com os requisitos de formato de arquivo CSV abaixo.

    Se o arquivo não atender a esses requisitos, também é possível usar a instrução LOAD DATA LOCAL INFILE no cliente mysql, que carrega um arquivo local no banco de dados. Isso requer o uso da opção --local-infile para o cliente mysql.

Requisitos do formato de arquivo CSV

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

O formato de arquivos CSV aceitos pelo Cloud SQL equivale a usar as seguintes instruções do MySQL:

  LOAD DATA INFILE ... CHARACTER SET 'utf8mb4'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"'.

Ao preparar um arquivo CSV para importação, verifique se a instrução select inclui essas instruções. Para mais informações, consulte a página Sintaxe da instrução SELECT na documentação do MySQL.

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 (segunda geração)

  1. Crie um bloco 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 saber 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]
    

gcloud (primeira geração)

gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/csvfile.gz \
                            --database=[DATABASE_NAME] --table=[TABLE_NAME]

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

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. Faça upload do arquivo CSV para o intervalo.

    Se precisar de ajuda com 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 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 MySQL